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