1 |
On Friday, January 6, 2017 5:27:24 PM EST Kent Fredric wrote: |
2 |
> On Tue, 3 Jan 2017 10:23:02 -0500 |
3 |
> |
4 |
> Rich Freeman <rich0@g.o> wrote: |
5 |
> > I tend to be firmly in the camp that a package shouldn't be removed |
6 |
> > unless there is evidence of a serious bug (and that includes things |
7 |
> > blocking other Gentoo packages). |
8 |
> |
9 |
> I would probably go further and extend that argument to older versions |
10 |
> of packages, for similar reasons, at least in regards to older versions |
11 |
> with specific and exclusive APIs. |
12 |
> |
13 |
> Our duty as maintainers is to protect our users from the mistakes |
14 |
> upstream make as much as possible, not to protect ourselves as |
15 |
> maintainers from having difficult challenges. |
16 |
> |
17 |
> But our duty here doesn't extend to protecting users from problems the |
18 |
> user knows don't affect them. |
19 |
> |
20 |
> If for example, a media playback suite has a memory corruption bug when |
21 |
> playing media of a certain type, making it unusable when playing that |
22 |
> media, it does seem reasonable for us at first to kill that suite. |
23 |
> |
24 |
> However, if the user in question knows they're never going to play |
25 |
> that certain type of media, and only uses that media suite for a narrow |
26 |
> and specific kind of problem, then we're not serving them much utility, |
27 |
> or much freedom of choice by ripping this tool out of their hands for a |
28 |
> problem they'll never have. |
29 |
> |
30 |
> Maybe we need an intermediate option, where the sensible default when |
31 |
> we discover this kind of error is to remove it, but provide a way to |
32 |
> easily restore that package if the users are ok with it. |
33 |
> |
34 |
> Like, this is not my proposal, just an idea so you can see where I'm |
35 |
> headed with thoughts: |
36 |
> |
37 |
> If packages had a field called "BUGS=" it could contain an array of |
38 |
> bugs a package is known to contain, but can be conditionally avoided if |
39 |
> you're careful. |
40 |
> |
41 |
> Packages with non-empty BUGS= fields would be treated as hard-masked |
42 |
> for the purpose of repoman checks, and so packages that depend on |
43 |
> specific version ranges of packages with BUGS= fields are invalid, |
44 |
> and need their own BUGS= fields. |
45 |
> |
46 |
> Users get portage by default telling them "X package has to go away, |
47 |
> because it has bug #145 , #1286234, and #123756" |
48 |
> |
49 |
> And if this is not satisfactory, they can override portage with |
50 |
> |
51 |
> ACCEPT_BUGS="145 1286234 123756" |
52 |
> |
53 |
> You could even have |
54 |
> |
55 |
> BUGS=" x86? ( 112345 )" |
56 |
> |
57 |
> This to me sounds like a more user-empowering approach. |
58 |
|
59 |
I really like where this is going. |
60 |
|
61 |
> |
62 |
> The only questions to me are: |
63 |
> |
64 |
> - Do we have the resources to support this kind of strategy? |
65 |
|
66 |
How much of the work can be automated? I.e. can bugs on bgo be tagged such |
67 |
that a maintainer's script can scoop up the bugs and apply them, at least |
68 |
naively? Being able to express something like "x86? (!mmx)" clearly in a bgo |
69 |
ticket's metadata could well be useful, and would lend itself to something |
70 |
like this. |
71 |
|
72 |
The bigger resource drain, I suspect, will come from maintaining new ebuilds |
73 |
of old packages; as eclass development and maintenance seeks to eliminate old |
74 |
and buggy code, old ebuilds will need to be dragged along for the ride. |
75 |
|
76 |
> - How much additional complexity and confusion will this introduce for |
77 |
> users? |
78 |
|
79 |
I think you'd want autounmask to not support applying changes for |
80 |
automatically unmasking bugs. Apart from that, it shouldn't result in any |
81 |
additional complexity or confusion for users who aren't deliberately holding |
82 |
on to package versions that have known bugs. Most of the users I've seen who |
83 |
would be faced with this functionality are the users who will run a gymnastics |
84 |
course just to use a browser version that has an old, familiar interface. |
85 |
|
86 |
> - Is that additional complexity and confusion something users want to |
87 |
> indulge, or is our current feature set already too complex. |
88 |
|
89 |
So long as it stays out of a user's way until the user needs it, I wouldn't |
90 |
say it adds needless complexity from a user's perspective. |
91 |
|
92 |
> |
93 |
> That last one is pretty much the one that weighs most on my mind |
94 |
> lately, with users frequently stumped by handling subslot upgrades |
95 |
> and required-use conflicts. |
96 |
|
97 |
Choosing to engage with this functionality sounds like very much an opt-in |
98 |
experience for the user; the path of least resistance is to go ahead and |
99 |
update (and that will generally provide the best-tested global configuration), |
100 |
but if they wish to hold on to difficult configurations, they can at least do |
101 |
that. |
102 |
|
103 |
There is one other advantage to a system like this; it permits for a larger, |
104 |
deeper tree, with old versions more frequently available. That'll significantly |
105 |
assist the upgrade efforts of people who go ridiculous amounts of time between |
106 |
@world updates, people who are dusting off stowed systems, etc. |
107 |
|
108 |
> |
109 |
> Granted, this is just yet-another alternative flavour of hard-masking |
110 |
> things, so I'd rather we stick with careful use of hardmasks to inform |
111 |
> users of problems they might face, allowing them to contravene the hard |
112 |
> masks if they're feeling like they want to be adults. |