Thank you all for the questions/suggestions! After some questions/clarifications there are only +1 on the discussion. Unless there are further questions/objections I'm intended to merge the related PR in 24 hours: https://github.com/apache/flink/pull/23359
G On Wed, Sep 6, 2023 at 10:53 AM Gabor Somogyi <gabor.g.somo...@gmail.com> wrote: > Hi Xingbo, > > Thanks for your support! > > I agree that multi-platform in general is a good idea. We start with ARM > but this opens the door for all others. > > G > > > On Wed, Sep 6, 2023 at 10:46 AM Xingbo Huang <hxbks...@gmail.com> wrote: > >> Hi Gabor, >> >> Thanks a lot for the detailed explanation. Building a test environment >> with >> multi-platforms is indeed what we have been lacking, >> not only for M1 users, but also for Windows users. At 1.16, I remember >> that >> Azure did not provide the m1 environment, >> and the github action just planned m1 in the annual plan at that >> time[1][2]. >> >> +1 for drop 3.7 support in 1.19 >> >> [1] https://github.com/actions/runner-images/issues/2187 >> [2] https://github.com/github/roadmap/issues/528 >> >> Best, >> Xingbo >> >> Gabor Somogyi <gabor.g.somo...@gmail.com> 于2023年9月6日周三 16:07写道: >> >> > Hi Xingbo, >> > >> > > So I guess you want to run ci tests on the m1 >> > > environment, but the current version of miniconda cannot meet this >> > > requirement, so there is a pre-step that must drop python 3.7? >> > >> > In short yes + local wheel build fix on the M1. In a bit more detailed >> > please let me elaborate. >> > >> > You're right about the arm64 build creation, Flink is doing that for >> quite >> > some time already and wheels are running fine. >> > There are gaps however. >> > >> > From user perspective: >> > * we're building wheels for ARM64 but we're not executing any python >> tests >> > on ARM64 but only on X64. >> > I think it's a must to test platform packages on the related platform >> since >> > not all python packages are ARM compatible or must be built/used in a >> > different way. >> > >> > From dev perspective: >> > * Local MacOs M1 wheel or python source distro builds are simply failing >> > with error messages. >> > Just to give an example GRPC pip install is failing and require the >> > following changes: >> > >> > >> https://github.com/apache/flink/pull/23359/files#diff-c4c4916cd6ab7f87a4b154ef9603f9ba6d3b74a00096be9adacb7df363b5efcfR28-R32 >> > I can't really imagine how Azure is able to build MacOS ARM64 wheels... >> > * Python tests are not running on any kind of ARM CPUs which makes any >> bug >> > hunting/development hard or nearly impossible >> > >> > In order to give ARM support with local development + test execution >> > possibility new miniconda is needed. New miniconda runs 3.8+. >> > >> > There is already a PR which is under development: >> > https://github.com/apache/flink/pull/23359 >> > This fills all the mentioned gaps: local test/development/test >> execution on >> > ARM CPUs + the previously mentioned 3+ years not actively supported >> python >> > eliminated. >> > >> > Hope this helps. >> > >> > G >> > >> > >> > On Wed, Sep 6, 2023 at 9:00 AM Xingbo Huang <hxbks...@gmail.com> wrote: >> > >> > > Hi Gyala and Gabor, >> > > >> > > Pyflink has provided arm64 wheel packages for Apple silicon since >> > 1.16[1]. >> > > The use of Miniconda is only related to ci testing and packaging on >> linux >> > > platform, and building mac platform wheels are dependent on >> > > cibuildwheel[2]. So I guess you want to run ci tests on the m1 >> > > environment, but the current version of miniconda cannot meet this >> > > requirement, so there is a pre-step that must drop python 3.7? >> > > >> > > [1] https://pypi.org/project/apache-flink/1.16.2/#files >> > > [2] >> > > >> > > >> > >> https://github.com/apache/flink/blob/master/tools/azure-pipelines/build-python-wheels.yml#L30 >> > > >> > > Best, >> > > Xingbo >> > > >> > > Gabor Somogyi <gabor.g.somo...@gmail.com> 于2023年9月6日周三 14:36写道: >> > > >> > > > Hi Xingbo, >> > > > >> > > > *Constraint:* >> > > > I personally not found any miniconda version which provides arm64 >> > support >> > > > together with python 3.7. >> > > > [image: image.png] >> > > > >> > > > At the moment I think new platform support means 3.7 drop. >> > > > >> > > > I fully to agree with Gyula, if we start now maybe we can release >> it in >> > > > half a year however *3.7 active support already ended in 27 Jun >> 2020*. >> > > > At the moment any python development/test execution on MacOS M1 is >> just >> > > > not working as-is just like any kind of python test execution on any >> > ARM >> > > > CPU. >> > > > >> > > > Gains: >> > > > * We can release a working version in half a year hopefully and not >> > > > shifting support to 1+ year >> > > > * MacOS M1 local development would work finally which is essential >> for >> > > > user engagement >> > > > * It would be possible to execute python tests on ARM64 machines >> > > > * We can shake up the python development story because it's not the >> > most >> > > > loved area >> > > > >> > > > BR, >> > > > G >> > > > >> > > > >> > > > On Wed, Sep 6, 2023 at 8:06 AM Gyula Fóra <gyula.f...@gmail.com> >> > wrote: >> > > > >> > > >> Hi Xingbo! >> > > >> >> > > >> I think we have to analyze what we gain by dropping 3.7 and >> upgrading >> > > to a >> > > >> miniconda version with a multiarch support. >> > > >> >> > > >> If this is what we need to get Apple silicon support then I think >> it's >> > > >> worth doing it already in 1.19. Keep in mind that 1.18 is not even >> > > >> released >> > > >> yet so if we delay this to 1.20 that is basically 1 year from now. >> > > >> Making this change can increase the adoption instantly if we enable >> > new >> > > >> platforms. >> > > >> >> > > >> Cheers, >> > > >> Gyula >> > > >> >> > > >> On Wed, Sep 6, 2023 at 4:46 AM Xingbo Huang <hxbks...@gmail.com> >> > wrote: >> > > >> >> > > >> > Hi Gabor, >> > > >> > >> > > >> > Thanks for bringing this up. In my opinion, it is a bit >> aggressive >> > to >> > > >> > directly drop Python 3.7 in 1.19. Python 3.7 is still used a >> lot[1], >> > > >> and as >> > > >> > far as I know, many Pyflink users are still using python 3.7 as >> > their >> > > >> > default interpreter. I prefer to deprecate Python 3.7 in 1.19 >> just >> > > like >> > > >> we >> > > >> > deprecated Python 3.6 in 1.16[2] and dropped Python 3.6 in >> 1.17[3]. >> > > >> > >> > > >> > For the support of Python 3.11, I am very supportive of the >> > > >> implementation >> > > >> > in 1.19 (many users have this appeal, and I originally wanted to >> > > >> support it >> > > >> > in 1.18). >> > > >> > >> > > >> > Regarding the miniconda upgrade, I tend to upgrade miniconda to >> the >> > > >> latest >> > > >> > version that can support python 3.7 to 3.11 at the same time. >> > > >> > >> > > >> > [1] https://w3techs.com/technologies/history_details/pl-python/3 >> > > >> > [2] https://issues.apache.org/jira/browse/FLINK-28195 >> > > >> > [3] https://issues.apache.org/jira/browse/FLINK-27929 >> > > >> > >> > > >> > Best, >> > > >> > Xingbo >> > > >> > >> > > >> > Jing Ge <j...@ververica.com.invalid> 于2023年9月5日周二 04:10写道: >> > > >> > >> > > >> > > +1 >> > > >> > > >> > > >> > > @Dian should we add support of python 3.11 >> > > >> > > >> > > >> > > Best regards, >> > > >> > > Jing >> > > >> > > >> > > >> > > On Mon, Sep 4, 2023 at 3:39 PM Gabor Somogyi < >> > > >> gabor.g.somo...@gmail.com> >> > > >> > > wrote: >> > > >> > > >> > > >> > > > Thanks for all the responses! >> > > >> > > > >> > > >> > > > Based on the suggestions I've created the following jiras and >> > > >> started >> > > >> > to >> > > >> > > > work on them: >> > > >> > > > * https://issues.apache.org/jira/browse/FLINK-33029 >> > > >> > > > * https://issues.apache.org/jira/browse/FLINK-33030 >> > > >> > > > >> > > >> > > > The reason why I've split them is to separate the concerns >> and >> > > >> reduce >> > > >> > the >> > > >> > > > amount of code in a PR to help reviewers. >> > > >> > > > >> > > >> > > > BR, >> > > >> > > > G >> > > >> > > > >> > > >> > > > >> > > >> > > > On Mon, Sep 4, 2023 at 12:57 PM Sergey Nuyanzin < >> > > >> snuyan...@gmail.com> >> > > >> > > > wrote: >> > > >> > > > >> > > >> > > > > +1, >> > > >> > > > > Thanks for looking into this. >> > > >> > > > > >> > > >> > > > > On Mon, Sep 4, 2023 at 8:38 AM Gyula Fóra < >> > gyula.f...@gmail.com >> > > > >> > > >> > > wrote: >> > > >> > > > > >> > > >> > > > > > +1 >> > > >> > > > > > Thanks for looking into this. >> > > >> > > > > > >> > > >> > > > > > Gyula >> > > >> > > > > > >> > > >> > > > > > On Mon, Sep 4, 2023 at 8:26 AM Matthias Pohl < >> > > >> > matthias.p...@aiven.io >> > > >> > > > > > .invalid> >> > > >> > > > > > wrote: >> > > >> > > > > > >> > > >> > > > > > > Thanks Gabor for looking into it. It sounds reasonable >> to >> > me >> > > >> as >> > > >> > > well. >> > > >> > > > > > > >> > > >> > > > > > > +1 >> > > >> > > > > > > >> > > >> > > > > > > On Sun, Sep 3, 2023 at 5:44 PM Márton Balassi < >> > > >> > > > > balassi.mar...@gmail.com> >> > > >> > > > > > > wrote: >> > > >> > > > > > > >> > > >> > > > > > > > Hi Gabor, >> > > >> > > > > > > > >> > > >> > > > > > > > Thanks for bringing this up. Similarly to when we >> > dropped >> > > >> > Python >> > > >> > > > 3.6 >> > > >> > > > > > due >> > > >> > > > > > > to >> > > >> > > > > > > > its end of life (and added 3.10) in Flink 1.17 >> [1,2], it >> > > >> makes >> > > >> > > > sense >> > > >> > > > > to >> > > >> > > > > > > > proceed to remove 3.7 and add 3.11 instead. >> > > >> > > > > > > > >> > > >> > > > > > > > +1. >> > > >> > > > > > > > >> > > >> > > > > > > > [1] >> https://issues.apache.org/jira/browse/FLINK-27929 >> > > >> > > > > > > > [2] https://github.com/apache/flink/pull/21699 >> > > >> > > > > > > > >> > > >> > > > > > > > Best, >> > > >> > > > > > > > Marton >> > > >> > > > > > > > >> > > >> > > > > > > > On Fri, Sep 1, 2023 at 10:39 AM Gabor Somogyi < >> > > >> > > > > > gabor.g.somo...@gmail.com >> > > >> > > > > > > > >> > > >> > > > > > > > wrote: >> > > >> > > > > > > > >> > > >> > > > > > > > > Hi All, >> > > >> > > > > > > > > >> > > >> > > > > > > > > I've analyzed through part of the pyflink code and >> > found >> > > >> some >> > > >> > > > > > > improvement >> > > >> > > > > > > > > possibilities. >> > > >> > > > > > > > > I would like to hear voices on the idea. >> > > >> > > > > > > > > >> > > >> > > > > > > > > Intention: >> > > >> > > > > > > > > * upgrade several python related versions to >> eliminate >> > > >> > > > end-of-life >> > > >> > > > > > > issues >> > > >> > > > > > > > > and keep up with bugfixes >> > > >> > > > > > > > > * start to add python arm64 support >> > > >> > > > > > > > > >> > > >> > > > > > > > > Actual situation: >> > > >> > > > > > > > > * Flink supports the following python versions: >> 3.7, >> > > 3.8, >> > > >> > 3.9, >> > > >> > > > 3.10 >> > > >> > > > > > > > > * We use miniconda 4.7.10 (python package >> management >> > > >> system >> > > >> > and >> > > >> > > > > > > > environment >> > > >> > > > > > > > > management system) which supports the following >> python >> > > >> > > versions: >> > > >> > > > > 3.7, >> > > >> > > > > > > > 3.8, >> > > >> > > > > > > > > 3.9, 3.10 >> > > >> > > > > > > > > * Our python framework is not supporting anything >> but >> > > >> x86_64 >> > > >> > > > > > > > > >> > > >> > > > > > > > > Issues: >> > > >> > > > > > > > > * Python 3.7.17 is the latest security patch of the >> > 3.7 >> > > >> line. >> > > >> > > > This >> > > >> > > > > > > > version >> > > >> > > > > > > > > is end-of-life and is no longer supported: >> > > >> > > > > > > > > >> https://www.python.org/downloads/release/python-3717/ >> > > >> > > > > > > > > * Miniconda 4.7.10 is released on 2019-07-29 which >> is >> > 4 >> > > >> years >> > > >> > > old >> > > >> > > > > > > already >> > > >> > > > > > > > > and not supporting too many architectures (x86_64 >> and >> > > >> > ppc64le) >> > > >> > > > > > > > > * The latest miniconda which has real multi-arch >> > feature >> > > >> set >> > > >> > > > > supports >> > > >> > > > > > > the >> > > >> > > > > > > > > following python versions: 3.8, 3.9, 3.10, 3.11 >> and no >> > > 3.7 >> > > >> > > > support >> > > >> > > > > > > > > >> > > >> > > > > > > > > Suggestion to solve the issues: >> > > >> > > > > > > > > * In 1.19 drop python 3.7 support and upgrade >> > miniconda >> > > to >> > > >> > the >> > > >> > > > > latest >> > > >> > > > > > > > > version which opens the door to other platform + >> > python >> > > >> 3.11 >> > > >> > > > > support >> > > >> > > > > > > > > >> > > >> > > > > > > > > Please note python 3.11 support is not >> > > initiated/discussed >> > > >> > > here. >> > > >> > > > > > > > > >> > > >> > > > > > > > > BR, >> > > >> > > > > > > > > G >> > > >> > > > > > > > > >> > > >> > > > > > > > >> > > >> > > > > > > >> > > >> > > > > > >> > > >> > > > > >> > > >> > > > > >> > > >> > > > > -- >> > > >> > > > > Best regards, >> > > >> > > > > Sergey >> > > >> > > > > >> > > >> > > > >> > > >> > > >> > > >> > >> > > >> >> > > > >> > > >> > >> >