Proposal to bring "bases" to the `charmcraft status` list

Currently, the status command shows which revision is released into each channel showing all risks in order (branches, if exist, after edge), grouped by track, including also the version and possibly resources, if associated to that revision.

This is a complex example of the described situation:

Track    Channel        Version    Revision    Resources       Expires at
latest   stable         v7         7           -
         candidate      v7         7           -
         beta           7.0.0      23          testres (r14)
         edge           ↑          ↑           ↑
         edge/mybranch  5.1        5           testres (r1)    2020-07-03T20:30:40+00:00
2.0      stable         -          -           -
         candidate      -          -           -
         beta           -          -           -
         edge           1          1           -

We shall also include the base of each revision. We could adopt a similar idea to what Snapcraft does:

$ snapcraft status fades
Track    Arch     Channel    Version    Revision
latest   amd64    stable     9.0        375
                  candidate  ↑          ↑
                  beta       9.0        375
                  edge       9.0        385
         arm64    stable     8.1        294
                  candidate  ↑          ↑
                  beta       ↑          ↑
                  edge       9.0        389

But instead of grouping by architecture, group by base between the track and risks. In other words, for each track show all bases; for each base show all risks, in each risk show what’s released there. Bases will be listed in alphabetical order.

One extra complexity is that base is composed of three values: architecture, platform name and channel (note that this channel is related to where the charm will run on, not where the charm was released to, which is shown in it’s own Channel column) . For example, a base can be: architecture ‘amd64’, name ‘ubuntu’, channel ‘20.04’.

To show the base in the list, we could compose one string with the three values, and show it under the new column. For example, we could separate the name and channel with a space, and include the architecture between parentheses.

The proposal will be (for a simple situation without branches nor resources):

Track    Base                   Channel        Version    Revision
latest   ubuntu 20.04 (amd64)   stable         -          -
                                candidate      -          -
                                beta           2.0.0      23      
                                edge           ↑          ↑
         ubuntu 18.04 (amd64)   stable         -          -
                                candidate      -          -
                                beta           2.0.0      24      
                                edge           ↑          ↑
         ubuntu 20.04 (i386)    stable         -          -
                                candidate      -          -
                                beta           2.0.0      25      
                                edge           ↑          ↑
1.0      ubuntu 20.04 (amd64)   stable         1.0.7      8
                                candidate      ↑          ↑
                                beta           ↑          ↑      
                                edge           ↑          ↑
         ubuntu 18.04 (amd64)   stable         1.0.7      9
                                candidate      ↑          ↑
                                beta           ↑          ↑      
                                edge           ↑          ↑
         ubuntu 20.04 (i386)    stable         1.0.7      10
                                candidate      ↑          ↑
                                beta           ↑          ↑      
                                edge           ↑          ↑
s/That is, group by “base” (not just “architecture”)/But instead of grouping by architecture, group by base,/
s/IOW/In other words/
s/no related/not related/

What does the last part of this sentence mean?

s/the new/a new/

But also, adding a column in the middle can break backwards compatibility with coreutils et. al. users: Tabular data - CLI Guidelines - Ubuntu Community Hub, in any case, the output carries the same issue as snapcraft status with whitespace columns so it might not be an issue (regardless of the plan for machine output).

Improved.

Improved.

There I tried to make it more straightforward in the text.