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 |