I like the update Ismaël referenced [1], I think we should prepare a similar update for Beam users. I would propose the following: - Designate last LTS release that we will have in 2019 to be the last LTS release with Python 2 support. - Add a Beam-specific deprecation warning on Python 2 starting from the last LTS release, or last 2 releases of Beam in 2019, whichever happens earlier. - Remove Python 2 support starting from the first release in 2020.
The cost of maintaining Python 2.7 support is higher than 0. Some issues that come to mind: - Maintaining Py2.7 / Py 3+ compatibility of Beam codebase makes it difficult to use Python 3 syntax in Beam which may be necessary to support and test syntactic constructs introduced in Python 3. - Running additional test suites increases the load on test infrastructure and increases flakiness. [1] https://spark.apache.org/news/plan-for-dropping-python-2-support.html On Tue, Jun 11, 2019 at 7:57 AM Robert Bradshaw <rober...@google.com> wrote: > Sounds good. > > On Fri, Jun 7, 2019 at 8:28 PM Ahmet Altay <al...@google.com> wrote: > >> I agree with you. A more recent LTS release with python 2 support will be >> good. Cost of maintaining python 2 support is also fairly low (maybe zero >> actually besides keeping some pre-existing compatibility code). >> >> I believe we are referring to two separate things with support: >> - Supporting existing releases for patches - I agree that we need to give >> users a long enough window to upgrade. Great if it happens with an LTS >> release. Even if it does not, I think it will be fair to offer patches on >> the last python 2 supporting release during some part of 2020 if that >> becomes necessary. >> - Making new releases with python 2 support - Each new Beam release with >> python 2 support will implicitly extend the lifetime of beam's python 2 >> support. I do not think we need to extend this to beyond 2019. 2 releases >> (~ 3 months) after solid python 3 support will very likely put the last >> python 2 supporting release to last quarter of 2019 already. >> >> On Fri, Jun 7, 2019 at 2:15 AM Robert Bradshaw <rober...@google.com> >> wrote: >> >>> I don't think the second release with robust/recommended Python 3 >>> support should be the last release with Python 2 support--that is >>> simply not enough time for people to migrate. (Look at how long it >>> took us...) It does make a lot of sense to at least have one LTS >>> release with support for both. >>> >>> Regarding timeline, I think we could safely say we expect to support >>> Python 2 through 2019, likely for some of 2020 (possibly only via an >>> LTS release), and (very) unlikely beyond 2020. >>> >>> On Wed, Jun 5, 2019 at 6:34 PM Ahmet Altay <al...@google.com> wrote: >>> > >>> > I agree with the sentiment on this thread. Our priority needs to be >>> offering good python 3 support that we can comfortably recommend users to >>> switch. Progress on that so far has been promising and I do anticipate that >>> we will reach there in the near future. >>> > >>> > My proposal would be, once we reach to that state, we can mark the >>> first subsequent Beam release as the last Beam release that supports Python >>> 2. (Alternatively: in line with the previous experimental/deprecated >>> discussion we can make 2 more release with python 2 support rather than >>> just 1 more.) With the current state, we would not give users plenty of >>> time to upgrade python 3. So in addition, I would suggest we can consider >>> and upgrade relief by offering something like a 6-month support on the last >>> python 2 compatible release. We might do that in the context of an LTS >>> release. >>> > >>> > I do not believe we have a timeline we can share with users at this >>> point. However if we go with this suggestion, we will probably support >>> python 2 approximately until mid-2020. >>> > >>> > Ahmet >>> > >>> > On Wed, Jun 5, 2019 at 4:53 AM Tanay Tummalapalli <ttanay...@gmail.com> >>> wrote: >>> >> >>> >> We can support Python 2 for some time in 2020, but, we should target >>> a date no later than 2020 to drop support. >>> >> If we do plan to drop support for Python 2 in 2020, we should sign >>> the Python 3 statement[1], declaring that we will "drop support for Python >>> 2.7 no later than 2020". >>> >> >>> >> In addition to the statement, keeping a target release and date(if >>> possible) or timeline to drop support would also help users to decide when >>> they need to work on migrating to Python 3. >>> >> >>> >> Regards, >>> >> - TT >>> >> >>> >> [1] https://python3statement.org/ >>> >> >>> >> On Wed, Jun 5, 2019 at 4:37 PM Robert Bradshaw <rober...@google.com> >>> wrote: >>> >>> >>> >>> Until Python 3 support for Beam is officially out of beta and >>> >>> recommended, I don't think we can tell people to stop using Python 2. >>> >>> Given that 2020 is just over 6 months away, that seems a short >>> >>> transition time, so I would guess we'll have to continue supporting >>> >>> Python 2 sometime into 2020. >>> >>> >>> >>> A quick survey of users would be valuable here. But first priority is >>> >>> making Python 3 rock solid so we can unconditionally recommend it >>> over >>> >>> Python 2. >>> >>> >>> >>> On Wed, Jun 5, 2019 at 12:27 PM Ismaël Mejía <ieme...@gmail.com> >>> wrote: >>> >>> > >>> >>> > Python 2 won't be maintained after 2020 [1]. I was wondering what >>> will >>> >>> > be our (Beam) plan for this. Other projects [2] have started to >>> alert >>> >>> > users that support will be removed so maybe we should decide or >>> policy >>> >>> > for this too. >>> >>> > >>> >>> > [1] https://pythonclock.org/ >>> >>> > [2] >>> https://spark.apache.org/news/plan-for-dropping-python-2-support.html >>> >>