1 |
On Thu, Aug 04, 2016 at 11:12:24PM +0300, Andrew Savchenko wrote: |
2 |
> Hi all, |
3 |
> |
4 |
> On Thu, 4 Aug 2016 11:24:43 -0500 William Hubbs wrote: |
5 |
> > I feel that our stable tree is so far behind on all |
6 |
> > architectures that we are doing our stable users a disservice, so I |
7 |
> > would like to open up a discussion here, and maybe some policy changes |
8 |
> > at the next meeting. |
9 |
> |
10 |
> Thank you for caring about this issue. I had similar thoughts |
11 |
> myself, but was too slow on writing e-mail :) IMO stable tree has |
12 |
> three problems: |
13 |
> 1) too old packages |
14 |
> 2) too few packages |
15 |
> 3) stabilization often takes too long, such stable packages are |
16 |
> broken or buggy, while their unstable versions are fixed and work |
17 |
> fine. (It is not possible to fix all bugs without version or |
18 |
> revision bump, thus stabilization is needed to fix many bugs.) |
19 |
|
20 |
"too few packages" doesn't really affect things much, I'm more |
21 |
concerned about 1 and 3. If packages are not stable in the first place, |
22 |
that is because the maintainer hasn't requested stabilization, and that |
23 |
is a separate issue. |
24 |
|
25 |
> > Ultimately, I think we need some form of automated stabilization, e.g. |
26 |
> > if a package version sits in ~ for 30 days and there are no blockers at |
27 |
> > that point, the new version should go automatically to stable on all |
28 |
> > architectures where there is a previous stable version. |
29 |
> |
30 |
> Automation should be possible only after rigorous testing. If this |
31 |
> will be implemented, than this may be done (as Brian pointed out in |
32 |
> another mail in this thread, there is an ongoing effort on this |
33 |
> matter as GSoC project, which is great). But I'd like to emphasize |
34 |
> that automated stabilization without: |
35 |
> a) build testing; |
36 |
> b) run-time testing; |
37 |
> c) fixing all serious open bugs affecting package being stabilized. |
38 |
> |
39 |
> Automation tests will definitely help here, but I'm not sure that |
40 |
> packages can be fully tested without human intervention: |
41 |
> - how to automatically test GUI app run-time? |
42 |
> - how to determine which open bugs from bugzilla are serious enough |
43 |
> to block stabilization, and which bugs shouldn't block the process? |
44 |
> |
45 |
> IMO automation can help with build tests, maybe limited run-time |
46 |
> testing, but no more. |
47 |
|
48 |
This is why there is a period for a package to be in ~ before it goes to |
49 |
stable. All of this rigorous testing you are talking about should be |
50 |
done by people who are running the ~ version of the package and bugs |
51 |
should be reported. Automated stabilization just refers to checking to |
52 |
see if there any bugs against the latest ~ version of a package that |
53 |
should block stabilization, and if there are not, maybe doing a build |
54 |
test then stabilizing. |
55 |
|
56 |
> |
57 |
> > The first issue is maintainers not filing stable requests for new |
58 |
> > versions of packages in a timely manor. I'm not sure how to get around |
59 |
> > this, but I feel that once a version of a package is stable, we are |
60 |
> > doing a disservice to our stable users by not keeping stable as current |
61 |
> > as possible. I am as bad as anyone; it is easy to forget to file |
62 |
> > stable requests until someone pings me or files the request |
63 |
> > themselves. |
64 |
> |
65 |
> We have another problem: arch teams often can't keep up with |
66 |
> stabilization requests, they are hanging for months, I even have |
67 |
> several bugs open for more than half a year. Storming arch teams |
68 |
> with stabilization requests will make things even worse. |
69 |
|
70 |
I'm not proposing storming the arch teams with stable requests, see |
71 |
below. |
72 |
|
73 |
> > I have heard other maintainers say specifically that they do not file |
74 |
> > stable requests unless a user asks them to, but Again, I do not feel |
75 |
> > comfortable with this arrangement if there is an old version of the |
76 |
> > package in stable. Users shouldn't have to ask for newer versions to be |
77 |
> > stabilized; this should be driven by the maintainers. |
78 |
> |
79 |
> I usually stabilize versions when they are too old or I have a user |
80 |
> request. The idea is not to stabilize as often as unstable version |
81 |
> is updated, since arch teams are unable to keep up even with |
82 |
> request rate they have now. |
83 |
|
84 |
My proposal is saying that if you have a version of a package in ~, |
85 |
testing is being done, and at the end of the testing period (30 days at |
86 |
most), that new version in ~ should move to stable if there are no |
87 |
blockers. It would be up to you, the maintainer, or any users running |
88 |
the ~ version, to test and file bugs that block stabilization. These |
89 |
bugs could be detected automatically. |
90 |
|
91 |
> > The second issue is slow arch teams. Again, by not moving packages from |
92 |
> > ~ to stable, we are doing a disservice to our stable users. |
93 |
> |
94 |
> And here comes my idea. We need an approved policy of how to remove |
95 |
> packages from stable (I'll name this procedure as "dekeywording" |
96 |
> below). Right now we only have a mention in the devmanual, that arch |
97 |
> teams must be informed via a bug [1] on dekeywording. But we have no |
98 |
> determined time frame, nor policy about reverse dependencies. |
99 |
|
100 |
We basically do. I don't have a link in front of me, but the council |
101 |
did make a decision allowing the removal of packages from the stable |
102 |
tree. It hasn't played out well though, because stable users expect |
103 |
that once a package is in the stable tree it will stay there until a |
104 |
newer version comes to the stable tree. |
105 |
|
106 |
My proposal doesn't apply to all packages that are in ~, only to |
107 |
packages that have a version in stable. |
108 |
|
109 |
I'm suggesting that once a package has a version in stable, newer |
110 |
versions need to be stabilized in a timely manor, e.g. 30 days at most |
111 |
after they enter the tree once all of their dependencies are stable. |
112 |
|
113 |
Here are the ways I would do this: |
114 |
|
115 |
1. First, this assumes that all reverse dependencies of the package in |
116 |
consideration are stable. It also assumes that the package in |
117 |
consideration has an older version in stable. |
118 |
|
119 |
2. if the package is all data files, or if it is written in an |
120 |
interpreted language e.g. python, perl, etc., Once the testing period |
121 |
has passed, the maintainer will be allowed to stabilize it on all arches |
122 |
that have a stable version without a stable request. |
123 |
|
124 |
2. For other packages , once the testing period is passed, a stable request |
125 |
will be filed for the new version. Once |
126 |
another 30 days has passed without a response from the arch teams, the |
127 |
maintainer would be allowed to stabilize the new version on all arches |
128 |
that have an older stable version. |
129 |
|
130 |
This would satisfy the expectation that a package version in the stable |
131 |
tree cannot be removed until there is a newer stable version. |
132 |
|
133 |
William |