1 |
Dnia 2015-09-16, o godz. 17:49:24 |
2 |
"Andreas K. Huettel" <dilfridge@g.o> napisał(a): |
3 |
|
4 |
> Hi all, |
5 |
> |
6 |
> here's a quote from the Council 20140826 summary: |
7 |
> |
8 |
> > Dynamic dependencies in Portage |
9 |
> > =============================== |
10 |
> > During discussion, is was remarked that some changes, e.g. to |
11 |
> > dependencies in eclasses, could require mass rebuilds of packages. |
12 |
> > |
13 |
> > Vote: |
14 |
> > - "The council asks the Portage team to first outline their long-term |
15 |
> > plan regarding removal or replacement of dynamic dependencies, |
16 |
> > before they remove this feature. In particular, tree policies and |
17 |
> > the handling of eclasses and virtuals need to be clarified." |
18 |
> > Accepted unanimously. |
19 |
> |
20 |
> Since there seems to be interest in the Portage team to go ahead with that |
21 |
> plan, I'd like to ask about the tree policies and the handling of eclasses and |
22 |
> virtuals. |
23 |
> |
24 |
> I guess we'd appreciate this as a prerequisite for being able to give the plan |
25 |
> future council support. |
26 |
|
27 |
How about the usual 'common sense' policy? Assuming the developer |
28 |
understands the consequences of bumping and not bumping, and can see |
29 |
for himself if the latter breaks stuff (which would happen once portage |
30 |
finally changes the default behavior and makes failures non-random). |
31 |
|
32 |
As for virtuals and eclasses, I don't really understand why anyone |
33 |
thinks they are special in any regard. In both cases, we're talking |
34 |
about regular dependency change in metadata, and we need to understand |
35 |
the consequences. And they're going to be the same whether we change |
36 |
dep A to B, A to virtual, and whether we change it directly or via |
37 |
eclass. |
38 |
|
39 |
Long story short: |
40 |
|
41 |
1. Build-time dependency changes don't need revbump unless they |
42 |
resulted in broken built package. Pretty much like any other build-time |
43 |
fix. |
44 |
|
45 |
2. Dependency changes that don't need to apply immediately don't need |
46 |
revbump. For example, if foo.eclass raises minimal required version of |
47 |
a dependency but all packages built so far will work with the old one. |
48 |
|
49 |
3. For non-important fixes, a revbump is recommended. Like when |
50 |
the package rarely breaks due to missing dep, or the dependency is |
51 |
implicitly pulled in but should be listed explicitly for completeness. |
52 |
|
53 |
4. For any change that could result in conflicts or major problems for |
54 |
people who are stuck with old metadata, revbump is required. This for |
55 |
example applies to the Perl team virtuals which frequently make |
56 |
updating impossible. |
57 |
|
58 |
There are probably more common cases to be considered but that's |
59 |
the ones that immediately come to my mind. |
60 |
|
61 |
-- |
62 |
Best regards, |
63 |
Michał Górny |
64 |
<http://dev.gentoo.org/~mgorny/> |