Monthly Updates versus Monthly Images
Scott Kitterman
ubuntu at kitterman.com
Tue Mar 5 23:20:14 UTC 2013
On Tuesday, March 05, 2013 06:34:29 AM Adam Conrad wrote:
> TL;DR summary: Monthly updates are harmful, monthly images are cool, let's
> do the latter without turning them into the former and all frolick happily
> in fields of time, money, and cheesecake.
>
> So, I'm intentionally breaking the thread here to shift gears slightly. I
> have no intention of discussing the merits of rolling versus not, of going
> on about whether now is the right time to switch, or if we need a year of
> discussion before we can consider it, or any such thing. This is purely
> on the topic of so-called "monthly updates" versus monthly images, and my
> position that the latter could prove quite useful, while the former could
> be actively harmful.
If one were going to do rolling, I mostly agree with this.
> We seem to be approaching this by conflating the two concepts of releases
> and images as if they're both the same thing and I think we can all take a
> step back and agree that, in fact, they're not. If we choose to have a
> monthly milestone planning cadence for work items and release a monthly
> image to wrap marketing and messaging around, there's definitely value in
> that. Being able to announce to the world that we had these seven major
> new features land in Xubuntu this month, these two awesome new things in
> Kubuntu, these three in Lubuntu, etc, is quite nice, and probably much less
> chaotic than having everyone plan to different cadences and sporadically
> tell the world about things as they happen. Keeping us all on a similar
> track has always proven quite helpful for interaction between teams and
> flavours, and I see significant value in that continuing.
>
> The above stated, I see no reason why this planning cadence and image cycle
> needs to, in any way, look like a "release", and I think it's actively
> harmful, both to our development velocity (hey look, a buzzword, you won't
> hold it against me, right?) and to our users.
>
> For starters, let's look at all the things I think this monthly image can't
> be, if we want to maintain a lightweight process that doesn't slow us all
> down and make small children weep:
>
> 1) We can't be doing mini freeze-and-release cycles before each image is
> released. I've seen it come up several times in the thread, and this
> suggestion will just slow us to a crawl. It's actively undoing any
> benefit we'd get from moving to a rolling release cycle.
We've done two day migration freezes for the relevant bits of the archive to
support Alpha 1 and Alpha 2 in this cycle. I think short migration freezes
like this (in contrast to the traditional upload freeze of 5 - 7 days) has had
almost no impact on development velocity. I've found it helpful in making
sure we're getting a good set of images for a milestone.
I think a one or two day migration freeze would be a useful thing that
wouldn't harm the goals associated with rolling in any meaningful way.
> 2) We can't be providing out-of-band critical bugfix support for these
> images. How they ship is how they are, and we need to trust that the
> preliminary smoketesting on them before they're released is enough to
> ensure an install/reboot cycle and that we won't be destroying people's
> hardware, but that's about as far as we can go.
>
> In short, we can't be wasting engineering time on the images themselves,
> or they become "releases", and everything that comes with that. The more
> time we spend on the images, the less time we spend on the rolling release
> itself, and the lower the quality of the LTS that comes out of the other
> end of this meat grinder.
>
> So, looking at various solutions proposed for this dilemma, we see people
> suggesting clever use of -updates and -security to attempt to simulate a
> monthly release, we see people suggesting phased updates dialed down to
> zero, and many other curious options. Each of these makes the assumption
> that monthly updates are a good thing. Each of these ignores the following
> facts, as far as I can tell:
>
> 1) If a nasty bug is discovered in the rolling release a day after we put
> out a monthly, we either need to revisit our "no SRUs to the monthlies"
> policy on a case-by-case basis, or we ask users to live with that bug
> for ~29 days until the tools say "hey, cool, you can upgrade now". In
> the current default setup, that bug would have been fixed in seven days
> or less, as that's the default update-manager nag frequency.
>
> 2) Security support either needs a stable base to build on (the "freeze
> the release pocket for a month" model), or it can't be provided out-of-
> band. Having the security pocket depend on things that we might need
> to remove from the release pocket is problematic.
>
> These two points feel like they're at odds to me, as freezing the world to
> allow an out-of-band security model means making users live with every non-
> security bug for a month until the next set of bugs are dropped on their
> heads. And, conversely, providing out-of-band security support without the
> freeze model (which has been suggested) is a bit of a nightmare from the
> archive management standpoint with, as far as I can tell, very little gain.
>
> All of these things in mind, I'd like to propose the following set of ideas,
> and see if we can massage them into something palatable to everyone's
> goals:
>
> 1) No freezes, no pre-release process, monthly images are merely a fully
> smoketested daily being released on a predetermined date, no better or
> worse than the previous or next smoketested daily, just what happens
> to be in the archive on that date. We target our work items to that
> date, and if they slip, so be it, the features that make it in can then
> be mentioned in messaging for 13.05, 13.06, etc, those that don't can
> be postponed for the next month.
I'd suggest a migration freeze from when the first image is built until testing
is done. These do need to actually support doing installs, not eat hardware,
etc. and so I think holding migrations to make it possible to address critical
issues (and mean critical), respin, and move on will be useful and minimally
invasive.
> 2) No out-of-band support at all, SRU or security. The only slight change
> from how we do things now would be that security updates destined for
> the development release would be built in the security PPA (which does
> not build against -proposed), so they don't pick up new dependencies
> and can then be copied to the archive and not accidentally get caught
> up in library transition snags that hinder their migration to the
> release pocket.
If this is going to be messaged as anything other than the development series,
I think that rolling needs to be included in USNs. I don't think it's
appropriate to leave rolling out and leave users with the impression it isn't
getting security fixes when we've told them it's ~safe to use.
> 3) We twiddle the phased-updates spec a teensy bit so that P-U-P values
> over 100 are treated by update-manager as security/critical updates,
> and offered immediately, rather than after the configured update delay,
> much as packages in the -security pockets are now offered. With this
> model, we can make the scripts that copy from the security PPA to the
> archive set the phased update probability to 101 for security uploads,
> and have them treated as "special" by update manager, without having to
> actually use the -security pocket and deal with the annoyance of a
> pocket that doesn't have a stable base to depend on.
>
> 4) We leave the update-manager default at seven days (which I feel is a
> perfectly sane compromise between "getting bugfixes out quickly" and
> "not bugging users constantly or eating their bandwidth"), but add an
> option for "every four weeks", for people who really feel that the
> current top-end value of two weeks is still too frequent for them.
>
> Again, I can't stress enough that I feel that artificially delaying updates
> to users to create the illusion that we're "releasing" once a month is not
> doing anyone any favours, not us or them. We'll be getting bug reports on
> "ancient" versions, and constantly asking people to muck with whatever
> config is necessary to get off the monthly track and on to the rolling one
> just to get their fix, we'll be asking users to run software that none of
> us will be running, because we all want/need to have up-to-date systems to
> develop against, and we'd have no one but ourselves to blame for this state
> of affairs, as we're the ones who created the belief that updates only
> happen once a month, and that bugs are just something you live with until
> the next magical code drop four weeks away.
>
> If we were going to freeze every month to stabilize, and offer proper SRU
> bugfixes to those mini releases, I'd be all for monthly updates, except for
> the part where our community, both paid and unpaid, would need to be about
> twice as large to accomodate such lofty goals. As it stands, I see no way
> that we can offer a monthly release without shafting both ourselves and our
> users.
>
> This may well read as a disjointed and potentially grumpy view of the world,
> and I imagine such an interpretation wouldn't be far off, but I feel quite
> strongly that the idea of withholding updates from users isn't just a poor
> decision but is, in fact, actively harmful. I know I have colleagues who
> agree with me on that point, and I've seen a few speak up in the previous
> threads.
>
> With that in mind, I'd like to ask that conversations around monthly updates
> shift from being "how do we provide monthly updates" to "how do we meet our
> needs without providing monthly updates". The two greatest needs I see are
> security support and giving users the option for lower frequency of less
> critical updates. I think leveraging phased-updates to that end is a
> fairly simple, lightweight, and elegant solution that completely avoids the
> harm and complexity of any of the proposed monthly updates schemes.
I think for phased updates to be meaningful in this context it would have to
be a bit different. As (IIRC) Highvoltage mentioned, he wants to be at the
back of the iceberg:
http://hellenicpolytheist.files.wordpress.com/2012/07/killer_whale_eating_penguins-
jump-in-air.jpg
What's needed is not only show me updates every X days, but only show me non-
critical updates that are at least X days old. I don't think we have a way to
express that.
Scott K
More information about the ubuntu-devel
mailing list