Gentoo Archives: gentoo-devhelp

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-devhelp@l.g.o
Subject: [gentoo-devhelp] How to properly handle deps for stabilization or version bumps?
Date: Sat, 11 Apr 2015 23:20:40
Message-Id: 20150412022033.cce77bd0e70844d01d45a951@gentoo.org
1 Hello,
2
3 I have a couple of concerns about a proper way of handling
4 complicated dependencies during version bumps or stabilization.
5
6 I. With some USE flags combinations package foo depends on bar and
7 vice versa. While with a properly set deps (e.g. PDEPEND) this is
8 not a problem for users during updates; but this is a problem
9 during commits: repoman doesn't allow to commit multiple packages
10 at once, so for a short period of time deptree will be broken
11 during version bumps or stabilization.
12
13 E.g.:
14 sci-physics/root: PDEPEND on ~app-doc/root-docs
15 app-doc/root-docs[api] DEPEND on ~sci-physics/root
16
17 I see three possible solutions:
18
19 1) commit both packages with short window between (e.g. minute or
20 two);
21
22 2) ask infra to block cvs <-> rsync tree syncs for a while;
23
24 3) temporarily mask USE="api" for root-docs, commit root-docs,
25 commit root, unmask USE="api".
26
27 Second option looks like overkill and IMO should be used only for
28 large scale operations like mass eselect package moves.
29
30 Third option is formally correct, but it requires double
31 modification of tree-wide file where any mistake may broke the
32 whole tree. I think this approach brings more risks than benefits
33 for a simple issue described above.
34
35 Currently I use first option, since probability of broking deptree
36 is low and affected audience will be very limited.
37
38 Any idea how to handle this issue better?
39
40
41 II. What to do if package stabilization requires to stabilize deps
42 maintained by other devs?
43
44 Should I just file a bug with stabilization request to a
45 corresponding dev or team?
46
47 What to do if I have no version requirements for a
48 version to be stabilized? E.g. app-doc/root-docs needs
49 dev-haskell/pandoc-citeproc, but it seems to work with any version
50 in tree. Probably in will be the best for a relevant team to pick
51 up a stabilization candidate for their convenience.
52
53 Should I add arches there? Since I'm not a maintainer of a
54 dependency package I'm not sure if I can do that. Package may
55 require some dependencies to be stabilized as well...
56
57 If I'm sure that some package (e.g. dep of my package) works fine
58 and I see that it has no unstable deps or critical bugs, may I CC
59 arch teams and ask for stabilization myself? Pros here are that
60 this will speed up stabilization process and lower overhead for
61 other devs, cons are that package maintainer may be aware of some
62 issues preventing stabilization of this specific version.
63
64 Best regards,
65 Andrew Savchenko

Replies