-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
CI: Add pyarrow 11 to ci #51308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: Add pyarrow 11 to ci #51308
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we put a hold on this for now? I would like to discuss with Arrow folks about the best way to test between our two projects.
(Extended thoughts below)
Status Quo Currently, we test on pyarrow versions 8, 9, and 10 (IIRC because some version of pyarrow in between our min/latest version broke, but the min/latest version passed). This currently adds a lot of burden on our CI (builds are queueing for 2 hours again even though Github bumped up our concurrent runners), since the builds are created from the cross product of matrix parameters, and also hasn't really caught that many issues (which is expected, since failures would mean that pyarrow had a regression). IMO, we should share some of that testing burden between the two projects, both to reduce load on the pandas CI, and to ensure that pyarrow has enough testing coverage to catch its own bugs in Pandas/Pyarrow integration. Proposed changes
Alternatives Add the "arrow" mark on our side and only run those tests on the parametrized arrow build. I will open an issue on their side in a couple days if no objections. |
Generally I would support only testing pyarrow min + max again right away. pyarrow has seemed fairly stable within the past few versions and appears to be primarily additive in functionality. Especially since pyarrow functionality has been primarily opt-in-without-fallback, I don't see too much utility testing intermediate versions of pyarrow anymore. |
I am a bit hesitant about only testing min and max as long as we have the flags that control behavior dependent on the pyarrow version. Wdyt about testing 8 on python 3.8, 9 on python 3.9 and so on? |
FWIW I think since we bumped up the pyarrow version recently we only have version dependent fallback behavior in 2 spots, argsort and fillna in special cases. (They appear to also be or versions < 7 which we recently made our min version) argsort
fillna
|
I don't fully understand why we at some point moved towards parametrizing the build matrix on all supported versions of pyarrow. Personally, I would keep testing all versions of pyarrow (at least if we currently only support the latest 4 versions that seem doable), but that doesn't mean that we have to build every possible combination of python version and single-cpu / non-single-cpu with every version of pyarrow? We could also generally run one version of pyarrow per version of Python? (roughly speaking) That gives 8 builds (4*2) instead of 32 (4*4*2) |
Indeed, we already have a build with pandas nightly (which regularly catches some changes/regressions)
Yes, this is indeed something we could do. I am not actually sure why we don't do that for pandas, as we do exactly that for dask (run a subset of dask's tests using the nightly arrow) I think starting with specifically running a few files/directories (parquet and csv tests, the arrow extension arrays) might be a good enough start (not necessarily needing a mark, although if we start with marking a few whole files, that's also easy to add)
I would emphasize this a bit more, and it should actually be easy to add (we already have a build with upstream dev versions, and we can add pyarrow nightly to the same build?) |
The pyaarrow CSV engine tests are marked as |
Cool. I'll open up an issue on the Arrow side then.
I can add this if you give me a link. Googling only gives me the R nightlies. |
Yes, but what I mentioned was running each combo of python version and single/non-single CPU just with 1 version of pyarrow instead of 4. That still runs the csv tests with pyarrow for single-cpu. |
@lithomas1 see https://arrow.apache.org/docs/dev/developers/python.html#installing-nightly-packages (it's indeed a bit hidden in the development section instead of having it on the install page). |
Right that's fair. I think I would still prefer to test the min & max version of pyarrow. Anecdotally, pyarrow development has notably affected the minimum pyarrow version build or all builds affecting all Pyarrow versions. |
This pull request is stale because it has been open for thirty days with no activity. Please update and respond to this comment if you're still interested in working on this. |
Sorry, this slipped off my radar for a bit. Right now, I'm currently working on getting rid of all hanging tests for read_csv with pyarrow. Then, we should be able to get rid of the single_cpu pyarrow builds. I'm holding off on adding pyarrow nightlies, until we can first reduce the CI matrix first. |
I stumbled upon this on the desk side today, what are your thoughts on adding the arrow nightly to the numpy nightly build? |
I don't think they test with Cython 3 ATM, so it wouldn't be practical (They currently do support the latest beta as of a couple of days ago, but it is untested in their CI). |
IMO I think we could already:
That would be a net of -3 jobs in the workflow while testing pyarrow nightly which is probably more valuable than testing intermediate versions of pyarrow |
I think we can close this as we cleaned up some of the Arrow testing in the CI as apart of #52211 |
doc/source/whatsnew/vX.X.X.rst
file if fixing a bug or adding a new feature.