Refreshing the packagesets before the release and how?

Iain Lane laney at ubuntu.com
Fri Apr 8 13:25:14 UTC 2022


welp, this turned out long, sorry about that

On Fri, Apr 08, 2022 at 08:46:05AM -0400, Jeremy Bicha wrote:
> I agree. Some of those component moves seem kinda wrong. For instance,
> I think webkit2gtk should stay in desktop-core (instead of
> ubuntu-desktop) and I think byobu should stay with ubuntu-server
> (instead of moving to core).

# What the script does

The DMB should use exceptions where it makes sense, where one team is 
the clear owner. The script basically has a priority list of seeds, 
something like this:

## rules

  If a package is seeded in 'core' or 'desktop-core' then it and all of 
  its dependencies go into that set. Packages in the sets change 
  dependencies *all the time* (remember this is transitive, the graphs 
  can get huge) so things get dragged in and out constantly, it's quite 
  normal.

  Some flavours are considered more 'top tier' than others, so if a 
  package is seeded in one of those then other flavour packagesets don't 
  get to have it.

The logic for this is here:

  https://git.launchpad.net/~developer-membership-board/+git/packageset/tree/pkgset-report.py#n317

# exceptions should work better

A good improvement - but hard, I think it would involve some state 
tracking - would be to print out *why* a move is happening ("Package was 
in XXX set due to being a dependcy of YYY but now it's not.")

One thing that the script should do but doesn't (didn't last time I 
looked): when you apply an exception, packages which were only moved due 
to that package should also not move sets. It would need some 
recursive/transitive processing of germinate's output. Hypothetical 
example:

  Package 'desktop' wants to move to 'desktop-core' because another 
  package in 'desktop-core' starts depending on it. In doing that it 
  takes its dependency 'desktop-dep1' with it. The script shows this as 
  both packages being removed from the 'desktop' packageset and moved to 
  'desktop-core'.

  Someone in the DMB decides that this is wrong and 'desktop' should be 
  maintained by the desktop team. They add 'desktop' to the exceptions 
  file.

  What should happen is that 'desktop-dep1' moves back too, but that 
  won't happen currently since the script only considers the exceptions 
  and not other things which only moved because of that exception.

# conclusion

Finally, the script becomes harder to run the longer the gaps between 
runs get, because the set of moves gets larger and larger and people 
naturally want to examine them all. That's not very feasible for more 
than a few moves. IME it was easiest to accept what the script proposes 
(each time I chased a move down, something which takes a lot of effort, 
I ended up finding it was doing the right thing according to its own 
rules), adding any really obvious exceptions, and then be fairly 
flexible when people come to you with change requests.

Hope this helps! There's definite improvements that could be made here 
for usability. It's a scary thing to run but it gets less scary the more 
you do it. And it would be great to get to a place where it's fully 
automated.

Cheers,

-- 
Iain Lane                                  [ iain at orangesquash.org.uk ]
Debian Developer                                   [ laney at debian.org ]
Ubuntu Developer                                   [ laney at ubuntu.com ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/devel-permissions/attachments/20220408/4935bbff/attachment.sig>


More information about the Devel-permissions mailing list