1 |
On Fri, 2020-06-26 at 22:02 +0100, Sergei Trofimovich wrote: |
2 |
> On Fri, 26 Jun 2020 13:41:13 -0400 |
3 |
> Aaron Bauman <bman@g.o> wrote: |
4 |
> |
5 |
> > On June 26, 2020 12:47:24 PM EDT, Sergei Trofimovich <slyfox@g.o> wrote: |
6 |
> > > On Fri, 26 Jun 2020 11:38:58 +0200 |
7 |
> > > Michał Górny <mgorny@g.o> wrote: |
8 |
> > > |
9 |
> > > > On Fri, 2020-06-26 at 09:51 +0100, Sergei Trofimovich wrote: |
10 |
> > > > > On Fri, 26 Jun 2020 07:29:45 +0000 |
11 |
> > > > > Michał Górny <mgorny@g.o> wrote: |
12 |
> > > > > |
13 |
> > > > > > Dnia June 26, 2020 6:42:57 AM UTC, Sergei Trofimovich |
14 |
> > > <slyfox@g.o> napisał(a): |
15 |
> > > > > > > On Sat, 20 Jun 2020 16:29:53 +0100 |
16 |
> > > > > > > Sergei Trofimovich <slyfox@g.o> wrote: |
17 |
> > > > > > > |
18 |
> > > > > > > > On Sat, 20 Jun 2020 16:05:38 +0200 |
19 |
> > > > > > > > Michał Górny <mgorny@g.o> wrote: |
20 |
> > > > > > > > |
21 |
> > > > > > > > > On Sat, 2020-06-20 at 14:57 +0100, Sergei Trofimovich |
22 |
> > > wrote: |
23 |
> > > > > > > > > > Give maintainers the chance to act and flag packages that |
24 |
> > > pull in |
25 |
> > > > > > > python:2.7. |
26 |
> > > > > > > > > > Signed-off-by: Sergei Trofimovich <slyfox@g.o> |
27 |
> > > > > > > > > > --- |
28 |
> > > > > > > > > > profiles/package.deprecated | 4 ++++ |
29 |
> > > > > > > > > > 1 file changed, 4 insertions(+) |
30 |
> > > > > > > > > > |
31 |
> > > > > > > > > > diff --git a/profiles/package.deprecated |
32 |
> > > > > > > b/profiles/package.deprecated |
33 |
> > > > > > > > > > index a756e845f47..bb661571962 100644 |
34 |
> > > > > > > > > > --- a/profiles/package.deprecated |
35 |
> > > > > > > > > > +++ b/profiles/package.deprecated |
36 |
> > > > > > > > > > @@ -17,6 +17,10 @@ |
37 |
> > > > > > > > > > |
38 |
> > > > > > > > > > #--- END OF EXAMPLES --- |
39 |
> > > > > > > > > > |
40 |
> > > > > > > > > > +# Sergei Trofimovich <slyfox@g.o> (2020-06-20) |
41 |
> > > > > > > > > > +# Deprecated. Consider poring to python 3 and drop |
42 |
> > > support for |
43 |
> > > > > > > python2. |
44 |
> > > > > > > > > > +dev-lang/python:2.7 |
45 |
> > > > > > > > > > + |
46 |
> > > > > > > > > > # Sergei Trofimovich <slyfox@g.o> (2020-02-22) |
47 |
> > > > > > > > > > # virtual/libstdc++ has only one sys-libs/libstdc++-v3 |
48 |
> > > provider. |
49 |
> > > > > > > > > > # Use that instead. Or even better use none of them. |
50 |
> > > It's a |
51 |
> > > > > > > > > |
52 |
> > > > > > > > |
53 |
> > > > > > > > > It will trigger the same for packages that support *only* |
54 |
> > > > > > > > > Python 2.7, as well as these that support 2.7 in addition |
55 |
> > > to 3 |
56 |
> > > > > > > because |
57 |
> > > > > > > > > they have 2.7 deps. |
58 |
> > > > > > > > |
59 |
> > > > > > > > If we expect actions by developers on both cases I don't see |
60 |
> > > a |
61 |
> > > > > > > problem with that. |
62 |
> > > > > > > |
63 |
> > > > > > > Pushed as: |
64 |
> > > > > > > |
65 |
> > > https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79d65d6641cfc0ef7b44df491c390e8c880e3049 |
66 |
> > > > > > > with full text being: |
67 |
> > > > > > > |
68 |
> > > > > > > +# Sergei Trofimovich <slyfox@g.o> (2020-06-26) |
69 |
> > > > > > > +# Deprecated. |
70 |
> > > > > > > +# - optional python:2.7 dependency should be dropped if no |
71 |
> > > reverse |
72 |
> > > > > > > +# dependencies are using it. |
73 |
> > > > > > > +# - mandatory python:2.7 depepndency will require package |
74 |
> > > porting |
75 |
> > > > > > > +# or package removal if no reverse dependencies are using |
76 |
> > > it. |
77 |
> > > > > > > +dev-lang/python:2.7 |
78 |
> > > > > > |
79 |
> > > > > > You've just introduced 829 CI warnings |
80 |
> > > > > |
81 |
> > > > > That's the intention. |
82 |
> > > > > |
83 |
> > > > > > effectively disabling the ability to distinguish *new* problems |
84 |
> > > in these packages. |
85 |
> > > > > Correct. Citing above: |
86 |
> > > > > |
87 |
> > > > > "If we expect actions by developers on both cases I don't see a |
88 |
> > > problem with that." |
89 |
> > > > > I assume we still do. |
90 |
> > > > |
91 |
> > > > Not exactly. You've pinpointed the wrong target. |
92 |
> > > > |
93 |
> > > > First of all, we want people to support Python 3. Removing support |
94 |
> > > for |
95 |
> > > > Python 2 is a secondary goal. |
96 |
> > > |
97 |
> > > What is the desired end state here? All packages that depend on |
98 |
> > > python should support python3? |
99 |
> > > |
100 |
> > > > Flagging packages that support Python 2 in addition to Python 3 |
101 |
> > > > and cause no trouble in py2 cleanup is doubtful. |
102 |
> > > |
103 |
> > > What is "py2 cleanup"? I still struggle to understand what packages |
104 |
> > > require change and which do not. Is there one pager doc that explains |
105 |
> > > a few things for me: |
106 |
> > > - How packages are picked for masking? Maybe we can deprecate them |
107 |
> > > instead? Or we (I) can write a bit of code that flags packages |
108 |
> > > requiring |
109 |
> > > maintainers' attention. |
110 |
> > > - What is the expected end state for the "py2 cleanup"? |
111 |
> > > |
112 |
> > > The doc would also be a good link to add to recently added "# Py2 only" |
113 |
> > > masks as well. |
114 |
> > > |
115 |
> > > > Flagging packages that support 2+3 because of their revdeps is not |
116 |
> > > > helpful at all. It's just noise to the maintainer who can't remove |
117 |
> > > py2 |
118 |
> > > > because of revdeps. |
119 |
> > > |
120 |
> > > I agree it can be spammy if we expect to have many packages with |
121 |
> > > python2 support for an extended period of time (3+ months). If it's |
122 |
> > > seen by others as too noisy I can revert the commit now. |
123 |
> > > |
124 |
> > > > Flagging dev-python/pypy* which needs py2 but is entirely outside |
125 |
> > > > the eclass system is not helpful at all. |
126 |
> > > |
127 |
> > > To pick a concrete example: from what I read above I don't see why |
128 |
> > > app-misc/golly was masked for removal. |
129 |
> > |
130 |
> > It was masked because it only supports Py2. The maintainer (you) decided to drop Python script support. Problem solved. Easy day. All done. |
131 |
> |
132 |
> A few points: |
133 |
> |
134 |
> 1. "only supports Py2" does not seem to warrant to mask leaf packages |
135 |
> and contradicts to Michał's explanation of cleanup effort: |
136 |
> See https://archives.gentoo.org/gentoo-dev/message/04d419ebef01e80a43fc3b301e11afb6 |
137 |
> Please reconcile the goals within the python@ team. Ask team lead |
138 |
> if not sure and provide clear guidance for others. "only supports Py2" |
139 |
> is not good enough explanation. |
140 |
> |
141 |
> Leaf packages should be able to stay up to 2021-01-01, no? I'd suggest |
142 |
> adding them to packages.deprecated instead. |
143 |
|
144 |
Important leaf packages, yes. However, we don't really want to |
145 |
'surprise' everyone by suddenly masking everything. Splitting it into |
146 |
smaller batches is better, as it gives people effectively more time to |
147 |
choose which packages to save. |
148 |
|
149 |
There's no clear criteria how to determine which packages go first. |
150 |
Some of the packages chosen here wouldn't be my first choice. However, |
151 |
if they were last rited already, I would focus on restoring only these |
152 |
that actually proved some demand. |
153 |
|
154 |
> 2. I decided to drop python support in a hurry to unbreak world upgrade |
155 |
> for users and myself. If I had some time I would prefer to do that in |
156 |
> higher confidence and have a chance to look at python3 support in the |
157 |
> package. |
158 |
> But now I chucked python2 scripting entirely probably breaking a few |
159 |
> users. I don't see it as a good thing. |
160 |
> |
161 |
> After Michał's explanation I am considering to restore python2 support |
162 |
> while I investigate python3 support feasibility. |
163 |
|
164 |
I might have missed a point there. While indeed it is possible to keep |
165 |
py2+py3 in various packages, I have myself been proactively removing py2 |
166 |
where py3 is already available. This is mostly a matter of convenience |
167 |
with the limited tooling we have. |
168 |
|
169 |
Long story short, in all the dependency/conflict mess, the simplest way |
170 |
forward is to iteratively try removing py2 everywhere. This way we |
171 |
slowly release deps. |
172 |
|
173 |
-- |
174 |
Best regards, |
175 |
Michał Górny |