1 |
On Fri, Sep 14, 2018 at 10:53 PM Sergei Trofimovich <slyfox@g.o> wrote: |
2 |
> |
3 |
> On Fri, 14 Sep 2018 19:40:13 +0300 |
4 |
> Alon Bar-Lev <alonbl@g.o> wrote: |
5 |
> |
6 |
> > |
7 |
> > No dependency of toolchain nor annotations. |
8 |
> > A strict policy of no warnings will require changes as dependencies |
9 |
> > including toolchain are progressing. |
10 |
> > This creates an overhead for selected packages. |
11 |
> > A maintainer and the non-stable team should be able to know the package status. |
12 |
> > Preferably this may be done by automation, I appreciate the work of |
13 |
> > Toralf Förster with tinderbox to automate check various cases. |
14 |
> > When a new slot of toolchain is available, maintainers should check |
15 |
> > their packages in any case, there are other issues and side affects |
16 |
> > that we experienced, especially in C++ packages. |
17 |
> > For these packages usually there are 3 for each slot: the current |
18 |
> > stable, the next stable and the non-stable, so the overhead is |
19 |
> > constrained. |
20 |
> |
21 |
> Sorry. I'm afraid I missed your answer. I'll restate the question again: |
22 |
> |
23 |
> If you do it then what is your workflow to fix breakages |
24 |
> appearing in stable packages caused by minor environment |
25 |
> changes like toolchain tweaks? |
26 |
> |
27 |
> I mean mechanically as a package maintainer. |
28 |
> |
29 |
> Since you did not mention it I see a few alternatives: |
30 |
> - revbump a package with a backport of a local fix and fast-track |
31 |
> stabilization without usual soak time in ~arch |
32 |
|
33 |
Fix in place if false positive. |
34 |
Revision bump if positive. |
35 |
|
36 |
> - pull new upstream version and fast-track stabilization without |
37 |
> usual soak time in ~arch |
38 |
|
39 |
No reason to wait for upstream if obvious positive just like any bug fix. |
40 |
|
41 |
> - no revbump, apply the patch as-is and hope it does not break |
42 |
> existing users. |
43 |
|
44 |
Correct. |
45 |
|
46 |
> - anything else? |
47 |
|
48 |
Patching the package (stable and unstable) to remove -Werror if too |
49 |
many of them and downstream maintainer reaches to a conclusion that |
50 |
the overhead is too high and benefit is little and provide this |
51 |
feedback to upstream to work together on a new release of upstream |
52 |
which resolves all warnings with newer toolchain. |
53 |
|
54 |
> |
55 |
> > > Unused variable is a good example of typical benign warning: |
56 |
> > > it was there all the time, it's not a new bug and does not |
57 |
> > > warrant need for an immediate fix. |
58 |
> > |
59 |
> > Unused variable is a good example of CRITICAL potential issue |
60 |
> |
61 |
> I understand you point. I disagree with it. |
62 |
> |
63 |
> My litmus test: if behaviour of the package did not change after |
64 |
> the fix then the issue was not real. |
65 |
|
66 |
But how can you get the report to evaluate if it is real or not? I |
67 |
fail to understand this argument that is repeated over and over. |
68 |
Everyone is smart after the did... while we are looking for the |
69 |
trigger to evaluate. |
70 |
|
71 |
> > > Toolchain just happend to get better at control flow graph |
72 |
> > > analysis. Fix can easily wait for next release and save |
73 |
> > > everyone's time. |
74 |
> > |
75 |
> > Once again, the number of permutation of build and architecture may |
76 |
> > reveal issues that are cannot be detected on maintainer machine. |
77 |
> > If a fix is a real issue that is found in stable package, do you |
78 |
> > suggest to wait for next release to save whose time? |
79 |
> |
80 |
> It's up to maintainer to decide on how to resolve the issue once |
81 |
> maintainer understands the scope of the problem. |
82 |
|
83 |
Correct. My believe is that it is up to maintainer to decide. |
84 |
|
85 |
> > Once again I outlined the cases in which -Werror can be preserved, I |
86 |
> > will repeat... (a) upstream has strict policy of no-warnings, (b) |
87 |
> > upstream added -Werror, (c) downstream opinion is that upstream is |
88 |
> > following the policy, (d) upstream is friendly, (e) downstream accepts |
89 |
> > the potential maintenance overhead. |
90 |
> |
91 |
> Your proposal is clear. Thanks for restating it. |
92 |
> |
93 |
> I still think keeping -Werror enabled by default makes more harm |
94 |
> than good. |
95 |
|
96 |
Yes, but we are not talking about by default, right? |
97 |
|
98 |
> > > Gentoo does not normally run tests on user's systems either. |
99 |
> > > Tests are arguably a lot more precise in pointing out real |
100 |
> > > problems in software. |
101 |
> > |
102 |
> > Correct. I believe that this may be revisit as well, for selected |
103 |
> > packages in which tests are stable run them on user machines. There is |
104 |
> > no reason why we cannot add a directive to ebuild to enable tests by |
105 |
> > default and let user to disable this to save CPU/time of build. |
106 |
> |
107 |
> Additional thanks for considering an option to disable tests back. |
108 |
> |
109 |
|
110 |
Any mechanism that is fully supported by upstream and downstream |
111 |
maintainer find it stable should be enabled by default. I do see the |
112 |
benefit of disabling tests not because they may break as per the same |
113 |
argument I would like to have these reported and investigated, but to |
114 |
save resources (time and CPU) which may be significant. |
115 |
|
116 |
Thanks, |
117 |
Alon |