Gentoo Archives: gentoo-dev

From: Alon Bar-Lev <alonbl@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Changing policy about -Werror
Date: Fri, 14 Sep 2018 20:15:47
Message-Id: CAOazyz226d03nj-LrkiN8tByaiHb3Gwt9j6P7ZM2b09MNpM03g@mail.gmail.com
In Reply to: Re: [gentoo-dev] Changing policy about -Werror by Sergei Trofimovich
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

Replies

Subject Author
Re: [gentoo-dev] Changing policy about -Werror Sergei Trofimovich <slyfox@g.o>