Ubuntu Monthly Update Cadence Proposal

Xen list at xenhideout.nl
Thu Feb 1 10:38:35 UTC 2018


Hi Bryan,

Pardon me if my opinion is not worth much here, but I would still like 
to offer some five points.



1. The lack of staging in Linux makes it rather hard as mr. Basak points 
out, there are few foundations of stable libraries; Linux would need 4 
layers of stability in the sense of layer 1 (glibc) remaining stable 
over the longest period, layer 2 remaining stable for half that period, 
layer 3 for half that, and layer 4 can do whatever it wants.

I mean that if glibc remained stable for 4 years, the next layer for 2 
years, the next for 1 year, then layer 2 could depend on layer 1, and 
layer 3 could depend on layer 2, and layer 4 could depend on layer 3.

Stability means: no changes in functionality.

2. If any such stability was achieved upstream it would make it easier 
to achieve your goal here; it tends to be the case that newest libraries 
constantly depend on newest libraries, newer versions breaking older 
programs.

3. If regardless you accomplish identifying sets, it would lead to my 
next point.

4. Apt is geared towards advancement, not retreat. Meta packages can't 
be used to uninstall, and rarely to downgrade. Any component grouping 
would benefit from being real atomic entities that can be removed as a 
whole as well.

5. My main point is that components could introduce new apt jargon in 
the sense that:

      "apt groups" would list all components
      "apt list <group>" would list the packages for that component
      other apt commands remain the same, but might have slightly 
different operation.

Once this tooling is in place management of these components would 
become a lot easier.





Additionally with respect to point 4, I think it is essential that 
people can also downgrade to a previous 'Monthly'.

This means that all the library versions of that monthly still have to 
be available in the repos essentially creating 'frozen' sets for each 
month.

Also, if meta packages (or new "groups") pull in the upgrades they must 
be specified on exact versions so that pervious meta packages can 
downgrade what was upgraded.

Ie. the meta package "monthly-latest" pulls in "monthly-18.10.4", with 
"monthly-18.10.4" pulling in the changes, but "monthly-18.10.3" would be 
able to undo all of that.

This would imply that those monthly metas do not only indicate what they 
upgrade, but also what they didn't upgrade.

The monthly metas then indicate the exact versions of all core 
components.



As an additional colloquium:

   Core components might also need to specify ALL libraries being pulled 
in by their upgrade, and might require those libraries to be split off 
into components of their own if these libraries are shared between core 
components.

   At the same time this creates inflexibility; you cannot keep using an 
older version of udev if it breaks some device.




More information about the Ubuntu-devel-discuss mailing list