Gentoo Archives: gentoo-dev

From: Sergei Trofimovich <slyfox@g.o>
To: "Michał Górny" <mgorny@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] profiles/package.deprecated: deprecate python:2.7
Date: Fri, 26 Jun 2020 17:51:39
Message-Id: 20200626185117.693f4399@sf
In Reply to: Re: [gentoo-dev] [PATCH] profiles/package.deprecated: deprecate python:2.7 by "Michał Górny"
1 On Fri, 26 Jun 2020 19:17:50 +0200
2 Michał Górny <mgorny@g.o> wrote:
3
4 > On Fri, 2020-06-26 at 17:47 +0100, Sergei Trofimovich wrote:
5 > > On Fri, 26 Jun 2020 11:38:58 +0200
6 > > Michał Górny <mgorny@g.o> wrote:
7 > >
8 > > > On Fri, 2020-06-26 at 09:51 +0100, Sergei Trofimovich wrote:
9 > > > > On Fri, 26 Jun 2020 07:29:45 +0000
10 > > > > Michał Górny <mgorny@g.o> wrote:
11 > > > >
12 > > > > > Dnia June 26, 2020 6:42:57 AM UTC, Sergei Trofimovich <slyfox@g.o> napisał(a):
13 > > > > > > On Sat, 20 Jun 2020 16:29:53 +0100
14 > > > > > > Sergei Trofimovich <slyfox@g.o> wrote:
15 > > > > > >
16 > > > > > > > On Sat, 20 Jun 2020 16:05:38 +0200
17 > > > > > > > Michał Górny <mgorny@g.o> wrote:
18 > > > > > > >
19 > > > > > > > > On Sat, 2020-06-20 at 14:57 +0100, Sergei Trofimovich wrote:
20 > > > > > > > > > Give maintainers the chance to act and flag packages that pull in
21 > > > > > > python:2.7.
22 > > > > > > > > > Signed-off-by: Sergei Trofimovich <slyfox@g.o>
23 > > > > > > > > > ---
24 > > > > > > > > > profiles/package.deprecated | 4 ++++
25 > > > > > > > > > 1 file changed, 4 insertions(+)
26 > > > > > > > > >
27 > > > > > > > > > diff --git a/profiles/package.deprecated
28 > > > > > > b/profiles/package.deprecated
29 > > > > > > > > > index a756e845f47..bb661571962 100644
30 > > > > > > > > > --- a/profiles/package.deprecated
31 > > > > > > > > > +++ b/profiles/package.deprecated
32 > > > > > > > > > @@ -17,6 +17,10 @@
33 > > > > > > > > >
34 > > > > > > > > > #--- END OF EXAMPLES ---
35 > > > > > > > > >
36 > > > > > > > > > +# Sergei Trofimovich <slyfox@g.o> (2020-06-20)
37 > > > > > > > > > +# Deprecated. Consider poring to python 3 and drop support for
38 > > > > > > python2.
39 > > > > > > > > > +dev-lang/python:2.7
40 > > > > > > > > > +
41 > > > > > > > > > # Sergei Trofimovich <slyfox@g.o> (2020-02-22)
42 > > > > > > > > > # virtual/libstdc++ has only one sys-libs/libstdc++-v3 provider.
43 > > > > > > > > > # Use that instead. Or even better use none of them. It's a
44 > > > > > > > >
45 > > > > > > >
46 > > > > > > > > It will trigger the same for packages that support *only*
47 > > > > > > > > Python 2.7, as well as these that support 2.7 in addition to 3
48 > > > > > > because
49 > > > > > > > > they have 2.7 deps.
50 > > > > > > >
51 > > > > > > > If we expect actions by developers on both cases I don't see a
52 > > > > > > problem with that.
53 > > > > > >
54 > > > > > > Pushed as:
55 > > > > > > https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79d65d6641cfc0ef7b44df491c390e8c880e3049
56 > > > > > > with full text being:
57 > > > > > >
58 > > > > > > +# Sergei Trofimovich <slyfox@g.o> (2020-06-26)
59 > > > > > > +# Deprecated.
60 > > > > > > +# - optional python:2.7 dependency should be dropped if no reverse
61 > > > > > > +# dependencies are using it.
62 > > > > > > +# - mandatory python:2.7 depepndency will require package porting
63 > > > > > > +# or package removal if no reverse dependencies are using it.
64 > > > > > > +dev-lang/python:2.7
65 > > > > >
66 > > > > > You've just introduced 829 CI warnings
67 > > > >
68 > > > > That's the intention.
69 > > > >
70 > > > > > effectively disabling the ability to distinguish *new* problems in these packages.
71 > > > >
72 > > > > Correct. Citing above:
73 > > > >
74 > > > > "If we expect actions by developers on both cases I don't see a problem with that."
75 > > > >
76 > > > > I assume we still do.
77 > > >
78 > > > Not exactly. You've pinpointed the wrong target.
79 > > >
80 > > > First of all, we want people to support Python 3. Removing support for
81 > > > Python 2 is a secondary goal.
82 > >
83 > > What is the desired end state here? All packages that depend on
84 > > python should support python3?
85 >
86 > Yes, or be masked for removal. The desired result is that at some point
87 > in time we can disable py2 target in eclass without anything breaking.
88
89 That helps. Thanks.
90
91 > > > Flagging packages that support Python 2 in addition to Python 3
92 > > > and cause no trouble in py2 cleanup is doubtful.
93 > >
94 > > What is "py2 cleanup"? I still struggle to understand what packages
95 > > require change and which do not. Is there one pager doc that explains
96 > > a few things for me:
97 >
98 > Some of this is mentioned in Python Guide [1].
99 >
100 > [1] https://dev.gentoo.org/~mgorny/python-guide/package-maintenance.html#support-for-python-2
101 >
102 > > - How packages are picked for masking? Maybe we can deprecate them
103 > > instead? Or we (I) can write a bit of code that flags packages requiring
104 > > maintainers' attention.
105 >
106 > This is really decided by humans, and I don't think it can be trivially
107 > automated. So far we've focused on masking packages that are either
108 > a. unlikely to be ported (e.g. dead upstream), b. have no Gentoo
109 > maintainers.
110
111 I see. That will probably mean package masking confusion will be
112 brought up again and again.
113
114 Well, so be it. It least I'll hopefully be aware of it next time :)
115
116 > > - What is the expected end state for the "py2 cleanup"?
117 >
118 > Not sure if I understand right but I think the answer is: we can disable
119 > py2 support via eclass and nothing breaks.
120
121 The question does not make much sense if the set of affected packages
122 is not clearly defined. Longer term full python3 support is a good enough
123 answer.
124
125 > > The doc would also be a good link to add to recently added "# Py2 only"
126 > > masks as well.
127 > >
128 > > > Flagging packages that support 2+3 because of their revdeps is not
129 > > > helpful at all. It's just noise to the maintainer who can't remove py2
130 > > > because of revdeps.
131 > >
132 > > I agree it can be spammy if we expect to have many packages with
133 > > python2 support for an extended period of time (3+ months). If it's
134 > > seen by others as too noisy I can revert the commit now.
135 >
136 > The 'early' py2 removal date is set for 2021-01-01 AFAIR (I'm yet to
137 > publish the timeline I've RFC-ed earlier). Not sure if it's possible.
138 > One thing I'm sure of is that py2 support is becoming harder
139 > and harder.
140
141 I reverted the deprecation change as:
142 https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf062e6a3aa0c5850909a277f8fbe2ed7f5ebc70
143
144 --
145
146 Sergei