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
>>>
>>

Reply via email to