+1 for removing Python 2.7 support sooner than later.

I recently added a small feature in Beam Python and I found that having to
write code that worked with Python2 was quite awkward and time consuming
(needing to make sure code works for both 2 and 3 and doubling the Jenkins
running time), and I can imagine that may hinder or even discourage new
contributions.

On Thu, Jun 18, 2020 at 5:12 PM Ahmet Altay <al...@google.com> wrote:

> Good to hear from you and good to hear the news. Release branch cut date
> for 2.24 is 8/12.
>
> On Thu, Jun 18, 2020 at 5:01 PM Chad Dombrova <chad...@gmail.com> wrote:
>
>> Hi all,
>> Sorry I've been AWOL.  I've been pulled in a number of different
>> directions.
>>
>> We are still increasing our use of Beam, and I have it on my todo list to
>> reach out to Kenneth about how Beam could be expanded into the VFX /
>> Animation industries.
>>
>> Our industry uses a number of specialized applications with embedded
>> python interpreters.  We run Beam inside these interpreters, so we're
>> waiting for them to switch to python3.
>>
>> Here's the status report for python3 adoption in our key applications:
>>
>> *Maya*:  In Beta
>> *Houdini*:  Released
>> *Nuke*: In Beta
>> *Katana*:  Not started (Alpha?)
>>
>> I hate to be the one holding the project back, and I understand if you
>> all ultimately decide it's untenable to wait any longer.  The good news is
>> 3 out of 4 applications should be ready in the next 2-3 months.  I can do
>> some investigation into what workarounds might look like for Katana, or
>> maybe we can use the Beta version once python3 support arrives, which would
>> move our schedule forward.
>>
>> When would 2.24 release?
>>
>> -chad
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Jun 18, 2020 at 4:33 PM Ahmet Altay <al...@google.com> wrote:
>>
>>> OK, tweeted the message. Could you share on Slack?
>>>
>>> On Thu, Jun 18, 2020 at 4:28 PM Valentyn Tymofieiev <valen...@google.com>
>>> wrote:
>>>
>>>> Alright, let's publish the message on Twitter and echo on Slack once
>>>> that's done.
>>>> Thank you!
>>>>
>>>> On Tue, Jun 16, 2020 at 5:31 PM Ahmet Altay <al...@google.com> wrote:
>>>>
>>>>> That sounds reasonable to me. I agree, it is better to get specific
>>>>> reasons rather than a yes/no answer.
>>>>>
>>>>> On Tue, Jun 16, 2020 at 1:50 PM Valentyn Tymofieiev <
>>>>> valen...@google.com> wrote:
>>>>>
>>>>>> After thinking about it for a bit, I am not sure whether a poll would
>>>>>> be actionable. For example, if 1000 users provide a positive response 
>>>>>> and 5
>>>>>> users provide a negative response, how do we interpret that and  where do
>>>>>> we draw a line? How about instead we encourage users to reach out, and 
>>>>>> tell
>>>>>> what is not working for them? For example:
>>>>>>
>>>>>> Beam is considering making 2.23.0 a final release supporting Py2. If
>>>>>> you are not able to switch to Python 3, please let us know why: [short 
>>>>>> link
>>>>>> to user@ thread] [1].
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>> [1]
>>>>>> https://lists.apache.org/thread.html/r0de71d98d98b213dd1d0c45c1f5642135116f25def5637a5f41c8d29%40%3Cuser.beam.apache.org%3E
>>>>>>
>>>>>> On Tue, Jun 16, 2020 at 11:50 AM Ahmet Altay <al...@google.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 16, 2020 at 11:38 AM Valentyn Tymofieiev <
>>>>>>> valen...@google.com> wrote:
>>>>>>>
>>>>>>>> I have reached out to user@ for feedback on Python 3 migration[1].
>>>>>>>>
>>>>>>>
>>>>>>> Maybe also ask on slack? There are quite a bit of users there as
>>>>>>> well.
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Could somebody from PMC please help with Twitter poll?
>>>>>>>>
>>>>>>>
>>>>>>> I can try to do this. What question would you like to ask? I do not
>>>>>>> know much about twitter polls but I assume they have character limits
>>>>>>> similar to regular tweets.
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Technically, we can proceed with the change between 2.23.0 and
>>>>>>>> 2.24.0, so that's after 2.23.0 is cut and we give sufficient time for 
>>>>>>>> users
>>>>>>>> to respond.
>>>>>>>>
>>>>>>>> [1]
>>>>>>>> https://lists.apache.org/thread.html/r0de71d98d98b213dd1d0c45c1f5642135116f25def5637a5f41c8d29%40%3Cuser.beam.apache.org%3E
>>>>>>>> On Tue, Jun 16, 2020 at 9:22 AM Ismaël Mejía <ieme...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Yes we need to poll this outside as Robert proposed.
>>>>>>>>>
>>>>>>>>> The proposed last support version corresponds with the next
>>>>>>>>> release that will be
>>>>>>>>> cut in two weeks. Sounds a bit short if we count the time to poll
>>>>>>>>> people on this
>>>>>>>>> subject but still could be.
>>>>>>>>
>>>>>>>> Technically, we can proceed with the change between 2.23.0 and
>>>>>>>> 2.24.0, so that's after 2.23.0 is cut and we give sufficient time for 
>>>>>>>> users
>>>>>>>> to respond.
>>>>>>>>
>>>>>>>>
>>>>>>>>> I remember Chad mentioned in this thread the impossibility to get
>>>>>>>>> support for
>>>>>>>>> python 2 in his industry until the end of the year, Maybe things
>>>>>>>>> have improved.
>>>>>>>>> Have they?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Jun 16, 2020 at 6:10 PM Robert Bradshaw <
>>>>>>>>> rober...@google.com> wrote:
>>>>>>>>> >
>>>>>>>>> > I like that option as a concrete proposal. I think we should
>>>>>>>>> circulate it more widely (the users list, twitter poll, at least a new
>>>>>>>>> thread...), maybe phrasing it as "is there any reason you couldn't 
>>>>>>>>> migrate
>>>>>>>>> to Python 3 (or stick with an older version of Beam) after 2.23 (due 
>>>>>>>>> to be
>>>>>>>>> cut here in a couple of weeks)?" If there is strong concern/pushback, 
>>>>>>>>> we
>>>>>>>>> could consider holding on for one more release.
>>>>>>>>> >
>>>>>>>>> > On Tue, Jun 16, 2020 at 8:54 AM David Cavazos <
>>>>>>>>> dcava...@google.com> wrote:
>>>>>>>>> >>
>>>>>>>>> >> +1
>>>>>>>>> >>
>>>>>>>>> >> On Mon, Jun 15, 2020 at 6:52 PM Udi Meiri <eh...@google.com>
>>>>>>>>> wrote:
>>>>>>>>> >>>
>>>>>>>>> >>> +1
>>>>>>>>> >>>
>>>>>>>>> >>> On Mon, Jun 15, 2020 at 4:27 PM Ahmet Altay <al...@google.com>
>>>>>>>>> wrote:
>>>>>>>>> >>>>
>>>>>>>>> >>>> As a concrete proposal, could we commit to removing python 2
>>>>>>>>> support by 2.24? In other words, mark the next release 2.23 as the 
>>>>>>>>> last
>>>>>>>>> python 2 compatible Beam version.
>>>>>>>>> >>>>
>>>>>>>>> >>>> On Mon, Jun 15, 2020 at 2:09 PM Valentyn Tymofieiev <
>>>>>>>>> valen...@google.com> wrote:
>>>>>>>>> >>>>>
>>>>>>>>> >>>>> Another input here:
>>>>>>>>> >>>>>
>>>>>>>>> >>>>> If you opened a Python PR in the last few days, you probably
>>>>>>>>> noticed that our test suites were broken by a transitive dependency 
>>>>>>>>> of Beam
>>>>>>>>> that dropped python 2 support, but did not declare python_requires>=3 
>>>>>>>>> in
>>>>>>>>> its setup.py [1]. This temporarily broke a subset of Beam Py2 users 
>>>>>>>>> (who
>>>>>>>>> did not explicitly pin the 'rsa' dependency), and still affects Beam
>>>>>>>>> development[2].
>>>>>>>>> >>>>>
>>>>>>>>> >>>>> This is the second time[3] Beam is affected with an issue of
>>>>>>>>> this kind, so support of Python 2 starts to slow down our 
>>>>>>>>> development, and
>>>>>>>>> add toil for maintainers of packages we depend on (both directly and
>>>>>>>>> transitively).
>>>>>>>>> >>>>>
>>>>>>>>> >>>>> [1] https://github.com/sybrenstuvel/python-rsa/issues/152
>>>>>>>>> >>>>> [2]
>>>>>>>>> https://lists.apache.org/thread.html/r9993b40b0c1cb8682ce56013165d4b80fdde0ee469a73bcb9466ddfb%40%3Cdev.beam.apache.org%3E
>>>>>>>>> >>>>> [3] https://github.com/hamcrest/PyHamcrest/issues/131
>>>>>>>>> >>>>>
>>>>>>>>> >>>>> On Tue, Jun 9, 2020 at 4:06 PM Ahmet Altay <al...@google.com>
>>>>>>>>> wrote:
>>>>>>>>> >>>>>>
>>>>>>>>> >>>>>> Thank you for re-opening this Valentyn. I am in favor of
>>>>>>>>> EOLing py2 support sooner than later. The reality is that we will not 
>>>>>>>>> be
>>>>>>>>> effectively supporting beam python 2 for a long time while the 
>>>>>>>>> ecosystem
>>>>>>>>> already EOLed python 2. That said, a significant chunk (but no longer 
>>>>>>>>> a
>>>>>>>>> majority) of our users are still using python 2. Upgrades are 
>>>>>>>>> painful, it
>>>>>>>>> might be especially painful nowadays. It would be good to hear 
>>>>>>>>> counter view
>>>>>>>>> points, user voices related to this.
>>>>>>>>> >>>>>>
>>>>>>>>> >>>>>> On Thu, Jun 4, 2020 at 4:53 PM Valentyn Tymofieiev <
>>>>>>>>> valen...@google.com> wrote:
>>>>>>>>> >>>>>>>
>>>>>>>>> >>>>>>> Back at the end of February we decided to revisit this
>>>>>>>>> conversation in 3 months. Do folks on this thread have any new input 
>>>>>>>>> or
>>>>>>>>> perspective regarding us balancing "user pain/contributor pain/our 
>>>>>>>>> ability
>>>>>>>>> to continuously test with python 2 in a shifting environment"?
>>>>>>>>> >>>>>>>
>>>>>>>>> >>>>>>> Some new information on my end is that we have been seeing
>>>>>>>>> steady adoption of Python 3 among Beam Python users in Dataflow,
>>>>>>>>> particularly strong adoption among streaming users, and Dataflow is
>>>>>>>>> sunsetting Python 2 support for all released Beam SDKs later this 
>>>>>>>>> year [1].
>>>>>>>>> We will have to remove Python 2 Beam test suites that use Dataflow  
>>>>>>>>> when
>>>>>>>>> Dataflow runner disables Py2 support if this happens before Beam Py2 
>>>>>>>>> EOL
>>>>>>>>> (when we have to remove all Py2 suites), including performance tests 
>>>>>>>>> that
>>>>>>>>> still use Dataflow on Python 3.
>>>>>>>>> >>>>>>>
>>>>>>>>> >>>>>>> I am curious how much motivation there is in the community
>>>>>>>>> at this moment to continue Py2 support in Beam,  whether any previous 
>>>>>>>>> Py3
>>>>>>>>> migration blockers were resolved or any new blockers discovered among 
>>>>>>>>> Beam
>>>>>>>>> users.
>>>>>>>>> >>>>>>>
>>>>>>>>> >>>>>>> [1]
>>>>>>>>> https://cloud.google.com/python/docs/python2-sunset/#dataflow
>>>>>>>>> >>>>>>>
>>>>>>>>> >>>>>>> On Fri, May 8, 2020 at 3:52 PM Valentyn Tymofieiev <
>>>>>>>>> valen...@google.com> wrote:
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> That's good news! Thanks for sharing.
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> Another datapoint, here are a few of Beam's dependencies
>>>>>>>>> that no longer release new py2 artifacts (I looked at 
>>>>>>>>> REQUIRED_PACKAGES +
>>>>>>>>> aws, gcp, and interactive extras):
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> hdfs
>>>>>>>>> >>>>>>>> numpy
>>>>>>>>> >>>>>>>> pyarrow
>>>>>>>>> >>>>>>>> ipython
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> There are more if we include transitive dependencies and
>>>>>>>>> test-only packages. I also remember encountering one issue last month 
>>>>>>>>> that
>>>>>>>>> was broken only on Py2, which we had to go back and fix.
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> If others have noticed frictions related to ongoing Py2
>>>>>>>>> support or have updates on previously mentioned Py3 migration 
>>>>>>>>> blockers,
>>>>>>>>> feel free to post them.
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>> On Fri, May 8, 2020 at 9:19 AM Robert Bradshaw <
>>>>>>>>> rober...@google.com> wrote:
>>>>>>>>> >>>>>>>>>
>>>>>>>>> >>>>>>>>> It hasn't been 3 months yet, but I wanted to call out a
>>>>>>>>> milestone that
>>>>>>>>> >>>>>>>>> Python 3 downloads crossed the 50% threshold on pypi, if
>>>>>>>>> just briefly.
>>>>>>>>> >>>>>>>>>
>>>>>>>>> >>>>>>>>> On Thu, Feb 13, 2020 at 12:40 AM Ismaël Mejía <
>>>>>>>>> ieme...@gmail.com> wrote:
>>>>>>>>> >>>>>>>>> >
>>>>>>>>> >>>>>>>>> > > I would suggest re-evaluating this within the next 3
>>>>>>>>> months again. We need to balance between user pain/contributor 
>>>>>>>>> pain/our
>>>>>>>>> ability to continuously test with python 2 in a shifting environment.
>>>>>>>>> >>>>>>>>> >
>>>>>>>>> >>>>>>>>> > Good idea for the in 3 months evaluation, at that
>>>>>>>>> point also distributions will probably be phasing out python2 by 
>>>>>>>>> default
>>>>>>>>> which definitely help in this direction.
>>>>>>>>> >>>>>>>>> > Thanks for updating the roadmap Ahmet
>>>>>>>>> >>>>>>>>> >
>>>>>>>>> >>>>>>>>> >
>>>>>>>>> >>>>>>>>> > On Thu, Feb 13, 2020 at 2:49 AM Ahmet Altay <
>>>>>>>>> al...@google.com> wrote:
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >> On Wed, Feb 12, 2020 at 1:29 AM Ismaël Mejía <
>>>>>>>>> ieme...@gmail.com> wrote:
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>> I am with Chad on this, we should probably extend it
>>>>>>>>> a bit more, even if it
>>>>>>>>> >>>>>>>>> >>> makes us struggle a bit at least we have some
>>>>>>>>> workarounds as Robert suggests,
>>>>>>>>> >>>>>>>>> >>> and as Chad said there are still many people playing
>>>>>>>>> the python 3 catchup game,
>>>>>>>>> >>>>>>>>> >>> so worth to support those users.
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>> But maybe it is worth to evaluate the current state
>>>>>>>>> later in the year.
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >> I would suggest re-evaluating this within the next 3
>>>>>>>>> months again. We need to balance between user pain/contributor 
>>>>>>>>> pain/our
>>>>>>>>> ability to continuously test with python 2 in a shifting environment.
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>> In the
>>>>>>>>> >>>>>>>>> >>> meantime can someone please update our Roadmap in
>>>>>>>>> the website with this info and
>>>>>>>>> >>>>>>>>> >>> where we are with Python 3 support (it looks not up
>>>>>>>>> to date).
>>>>>>>>> >>>>>>>>> >>> https://beam.apache.org/roadmap/
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >> I made a minor change to update that page (
>>>>>>>>> https://github.com/apache/beam/pull/10848). A more comprehensive
>>>>>>>>> update to that page and linked (
>>>>>>>>> https://beam.apache.org/roadmap/python-sdk/#python-3-support)
>>>>>>>>> would still be welcome.
>>>>>>>>> >>>>>>>>> >>
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>> - Ismaël
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>>
>>>>>>>>> >>>>>>>>> >>> On Tue, Feb 4, 2020 at 10:49 PM Robert Bradshaw <
>>>>>>>>> rober...@google.com> wrote:
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>>  On Tue, Feb 4, 2020 at 12:12 PM Chad Dombrova <
>>>>>>>>> chad...@gmail.com> wrote:
>>>>>>>>> >>>>>>>>> >>>> >>
>>>>>>>>> >>>>>>>>> >>>> >>  Not to mention that all the nice work for the
>>>>>>>>> type hints will have to be redone in the for 3.x.
>>>>>>>>> >>>>>>>>> >>>> >
>>>>>>>>> >>>>>>>>> >>>> > Note that there's a tool for automatically
>>>>>>>>> converting type comments to annotations:
>>>>>>>>> https://github.com/ilevkivskyi/com2ann
>>>>>>>>> >>>>>>>>> >>>> >
>>>>>>>>> >>>>>>>>> >>>> > So don't let that part bother you.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> +1, I wouldn't worry about what can be easily
>>>>>>>>> automated.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> > I'm curious what other features you'd like to be
>>>>>>>>> using in the Beam source that you cannot now.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> I hit things occasionally, e.g. I just ran into
>>>>>>>>> wanting keyword-only
>>>>>>>>> >>>>>>>>> >>>> arguments the other day.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> >> It seems the faster we drop support the better.
>>>>>>>>> >>>>>>>>> >>>> >
>>>>>>>>> >>>>>>>>> >>>> >
>>>>>>>>> >>>>>>>>> >>>> > I've already gone over my position on this, but a
>>>>>>>>> refresher for those who care:  some of the key vendors that support my
>>>>>>>>> industry will not offer python3-compatible versions of their software 
>>>>>>>>> until
>>>>>>>>> the 4th quarter of 2020.  If Beam switches to python3-only before that
>>>>>>>>> point we may be forced to stop contributing features (note: I'm the 
>>>>>>>>> guy who
>>>>>>>>> added the type hints :).   Every month you can give us would be 
>>>>>>>>> greatly
>>>>>>>>> appreciated.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> As another data point, we're still 80/20 on Py2/Py3
>>>>>>>>> for downloads at
>>>>>>>>> >>>>>>>>> >>>> PyPi [1] (which I've heard should be taken with a
>>>>>>>>> grain of salt, but
>>>>>>>>> >>>>>>>>> >>>> likely isn't totally off). IMHO that ratio needs to
>>>>>>>>> be way higher for
>>>>>>>>> >>>>>>>>> >>>> Python 3 to consider dropping Python 2. It's pretty
>>>>>>>>> noisy, but say it
>>>>>>>>> >>>>>>>>> >>>> doubles every 3 months that would put us at least
>>>>>>>>> mid-year before we
>>>>>>>>> >>>>>>>>> >>>> hit a cross-over point. On the other hand Q4 2020
>>>>>>>>> is probably a
>>>>>>>>> >>>>>>>>> >>>> stretch.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> We could consider whether it needs to be an
>>>>>>>>> all-or-nothing thing as
>>>>>>>>> >>>>>>>>> >>>> well. E.g. perhaps some features could be Python 3
>>>>>>>>> only sooner than
>>>>>>>>> >>>>>>>>> >>>> the whole codebase. (This would have to be well
>>>>>>>>> justified.) Another
>>>>>>>>> >>>>>>>>> >>>> mitigation is that it is possible to mix Python 2
>>>>>>>>> and Python 3 in the
>>>>>>>>> >>>>>>>>> >>>> same pipeline with portability, so if there's a
>>>>>>>>> library that you need
>>>>>>>>> >>>>>>>>> >>>> for one DoFn it doesn't mean you have to hold back
>>>>>>>>> your whole
>>>>>>>>> >>>>>>>>> >>>> pipeline.
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> - Robert
>>>>>>>>> >>>>>>>>> >>>>
>>>>>>>>> >>>>>>>>> >>>> [1] https://pypistats.org/packages/apache-beam ,
>>>>>>>>> and that 20% may just
>>>>>>>>> >>>>>>>>> >>>> be a spike.
>>>>>>>>>
>>>>>>>>

Reply via email to