Deltares / xugrid

Xarray and unstructured grids
https://deltares.github.io/xugrid/
MIT License
64 stars 8 forks source link

add py3.9 to ci #256

Closed veenstrajelmer closed 3 months ago

veenstrajelmer commented 3 months ago

This is to test if xugrid still works on Python 3.9. I think it does.

There are 75 failing testcases when running it as is: https://github.com/Deltares/xugrid/actions/runs/9891762563/job/27322884959

When requiring numpy<2.0.0 there is 1 failing testcase: https://github.com/Deltares/xugrid/actions/runs/9891771516/job/27322914549

I could not get this to work in pixi, but I think it would be valuable to re-add py3.9 support since it will take >1 year before being EOL: https://endoflife.date/python. Also, if xugrid drops python 3.9 support, this means that all Deltares packages that use xugrid should drop python 3.9 support and it is still a bit early for that in my opinion.

Furthermore, I think this PR makes clear that xugrid does not support numpy>=2.0.0. This is typically an issue that does not show up when using a lockfile. I see the benefits of a lockfile, but I think it is wise to have a parallel pip-only testcase for say python 3.12 that checks with all latest dependency versions so you are always aware of new dependency versions that cause issues. Also, I think the numpy dependency restriction (upper limit) should be introduced. I consider upper limits very dangerous, but as long as it is temporary I guess it is fine.

Huite commented 3 months ago

Xarray still supports 3.9, that's convincing to me. I might have been a bit cavalier when bumping to 3.10 -- I must've had a reason, but I cannot recall at the moment...

Apparent numpy 2.0 failures seem to be indexing with a boolean array. That should be tedious but straightforward to fix, I guess.

The single failure for numpy < 2 looks like a weird numba failure. Tests do run with NUMBA_DISABLE_JIT, I guess.

Good call about the outdated lockfile. If we configure a bot to update it regularly, we have the best of all worlds. Pretty sure this works for the Ribasim repo, but I haven't quite found the option yet.

I'll take a look into the Python 3.9 pixi thing, it should just work.

Huite commented 3 months ago

Solved by #260