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