1 |
The following is some thoughts on how to provide the stability that I |
2 |
think most users really want while keeping the bleeding edge ones happy. |
3 |
This was promped by the IRC discussion I posted to the list earlier today. |
4 |
|
5 |
The problem with a stability metric on each pacakge as described in the |
6 |
channel is it doesn't describe the stability of the interaction of the |
7 |
packages between each other. It would not have solved the libpng |
8 |
problems many users had. Becuase I'm sure libpng-1.2.* is a solid |
9 |
package and each other package that linked against libpng-1.0.* would |
10 |
have had a reasonable stability metric from it's use before |
11 |
libpng-1.2.* was released. |
12 |
|
13 |
What I think would work well is a checkpoint system where every other |
14 |
month or so we have a package freeze for about a week or less. Then what |
15 |
I call a update.mask is generated based on the newest versions of all |
16 |
working packages out there. I originally thought of checkpoints as |
17 |
milestones like the mozilla guys use but a milestone is a goal, this is |
18 |
more like a saved state in a game. |
19 |
|
20 |
This update.mask is a lot like the package.mask in format but instead of |
21 |
disabling packages it defines a leading edge of packages that are not |
22 |
`emerge --update world` past. Kinda like drawing a line in the sand and |
23 |
saying all packages on one side of the line are reasonably tested to |
24 |
work well together. If the user wants to he can explictly emerge a |
25 |
package that is on the other side of that line but it would require him |
26 |
to type the version he wants. |
27 |
|
28 |
Also, I think this would obsolete the "world favorites" list that is |
29 |
maintained for a system. As I understand this feature it is to prevent |
30 |
the endless recompiling of point release of dependicies. |
31 |
|
32 |
I envision an option added to emerge that is like the `java-config |
33 |
--list-available-vms` but it would be `emerge |
34 |
--list-available-checkpoints`. The user can then select the desired |
35 |
checkpoint with something like `emerge --set-checkpoint gentoo-YYYY-MM` |
36 |
which then updated a symlink or something to the selected update.mask |
37 |
file. Also it would be nice to have a bleeding edge update.mask that |
38 |
doens't draw any leading edge. |
39 |
|
40 |
One thing I haven't figured out is how to deal with new packages added |
41 |
after the update.mask. The update.mask wouldn't know about the new |
42 |
package and I think updating old check points should be advoided. |
43 |
Suggestions welcome. |
44 |
|
45 |
Feed back welcomed. |
46 |
|
47 |
Sandy McArthur |