Friday 18 March 2016

Re: Archive Reorg Episode VII: Follow Build-Depends

Hi all,

On Fri, Feb 12, 2016 at 04:03:37PM +0100, Martin Pitt wrote:
> Steve Langasek [2016-02-11 20:29 -0800]:
> > There is a third option here, which I discussed with Colin and Adam and that
> > (I think) we agree is workable: enable inclusion of universe in the image
> > builds during development, turning this off only once we are in the final
> > freeze for release.

> A big and strong NACK from my side. 10 years of experience in doing
> releases have shown that this just plain doesn't work. In the end the
> release team is forced to force-push all the universe stragglers to
> main against our better judgement, as really nobody outside the
> release team cares and right before a release there's no practical way
> to revert/drop the features or new packages that caused this.

> This would encourage the "throw it over the fence and make fixing it
> an SEP" behaviour happen even more often. This isn't really meant to
> be a personal blame to anyone -- people do what they get rewarded for,
> and developers of new features or uploaders of new package versions
> usually don't get rewarded (or even get time allocated) for fixing
> issues like this unless they aren't able to land their feature.

> Please let's keep the responsibility where it belongs.

> Sorry for the strong words, but if we do this we can just as well stop
> having a main/universe split completely. If that's the desire, then
> let's rather be honest about it.

FWIW I don't agree; we already have component-mismatches which we have a
committment to drive to zero for release, and the teams that have introduced
the new dependencies are responsible for driving the MIRs for those
packages. So I believe that we would be no worse off by letting images
build with universe enabled than we are today, since
components-mismatches-zero is already a requirement for release and we would
be reducing the overall workload related to this.

However, thanks to Dimitri's patch to proposed-migration, which has been
landed[1], it seems we don't have to come to an agreement on this point to
unblock this change.

I believe this means the only blocker for effecting this change is to update
the behavior of germinate itself. The MP that Dimitri raised against
germinate has seen some testing; in addition to the germinate output, I've
done a full components-mismatches run with the new behavior. The output can
be found here:

http://people.canonical.com/~vorlon/components-mismatches-builddeps/

This looks to be working, giving us the desired behavior. Highlights:

- The number of packages pending promotion drops from 59 to 33, a reduction
of 44%. Notably, it does remove nodejs from the list of pending
promotions, which is good since we know we cannot provide security
support for nodejs.

- The number of source packages demoted to universe is 693. This is only
about 11% of the source packages in main (6250). Quite a bit lower than
the original estimate, but still worthwhile and unblocks us for reducing
deltas for other packages.

- Roughly 100 python2 module packages move to universe with this change.
Unfortunately, as python2 has roughly 350 reverse-dependencies in main in
xenial, this seems unlikely to let us completely eliminate python2 from
main for 16.04.


Provided the germinate change lands early next week, and we get the
necessary changes implemented in Launchpad (Dimitri, is this part in
progress?) we should be on track to implement the changes to the archive
well before release.

Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org

[1] https://lists.ubuntu.com/archives/ubuntu-release/2016-March/003659.html