-
Notifications
You must be signed in to change notification settings - Fork 131
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
Support Python 3.13 #3805
base: main
Are you sure you want to change the base?
Support Python 3.13 #3805
Conversation
see main PR description |
environment.yml
Outdated
- pyproj >=2.1 | ||
- pys2index # only from conda-forge | ||
- python >=3.10,<3.13 | ||
# - pys2index # only from conda-forge # not py313 compat |
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.
It looks like this is solved, so now we're stuck on the psy-* packages and an unmaintained Julia installation, is that right?
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.
Or is NCL also an issue?
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.
yes and yes, and no - technically NCL is not a problem, but it brings down a bunch of deps to old versions (like esmpy/mf) so that may cause us headaches very soon, let me revive this PR now, bud 🍺
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.
well poop - now the env fails to solve again, at least this time it offers a clean fail for 3.13 - back to the drawing board see what's causing it 🤦♂️
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.
I'll be a monkey's uncle 🐵 Mamba is indeed correct:
---
name: testenv13
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.13
- cartopy
- esmvalcore 2.12*
- iris >=3.11
- shapely >=2.0.2
indeed fails to solve - what a PITA - I checked each of these deps and they should be fine individually wrt Python 3.13, time to get some butts kicked then 🛴
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.
the red bit (yes, locally, one gets stuff in green and red, which is handy) is this:
│ └─ cartopy 0.24.0 would require
│ ├─ python >=3.13.0rc3,<3.14.0a0 *, which conflicts with any installable versions previously reported;
I am absolutely baffled, since cartopy 0.24 is Py313ed since September conda-forge/cartopy-feedstock#160
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.
got it! It's something in esmvalcore that's preventing that mini-env to solve
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.
well this is the one - python >={{ python_min }},<3.13
- how the heck did this go through? Passed my review no less, but I suspect this is from a subsequent auto conda build 😠
@bouweandela in Borat's words - great success! Py313 env solves, and, bar Julia stuff (ours), and psy- stuff (theirs), all seems to be working well https://github.com/ESMValGroup/ESMValTool/actions/runs/14085944352/job/39515450772?pr=3805 |
Removing the upper pin on R makes the environment solve in about 80 seconds on my laptop, maybe it is time we fix those R recipes.. |
was just about to go there (the r-base pin) right now, after seeing that NCL is not really the main culprit |
the rbase pin does the trick for 3.13, lower Pythons still struggle - think this one really is NCL - lemme check https://github.com/ESMValGroup/ESMValTool/actions/runs/14109536639/job/39524308496?pr=3805 |
yup, it is NCL |
OK @bouweandela this is how it looks so far:
What say you? I am this close to saying we ought to keep just a pure Python environment, and let anyone else who needs R, NCL, nco etc get their own deps and install them 😁 |
also, the way we are trying to get all these elephants through a key hole is absolutely not sustainable, and in the future, we may have to do the same for, say, maybe, Python 3.14 etc |
Look at the jobs run with |
Description
Sister PR to ESMValGroup/ESMValCore#2566
so far the major bottleneck is ncl which has an autoPR for upgrade to newer proj conda-forge/ncl-feedstock#156 but that fails atm due to inconsistencies in conda-forgeFull list of incompatible dependencies (28/11/2024)
esmvalcore 2.11.* - we have support on branch, so v2.12 will be finenumba - imminent 0.61 will be finepys2index -> old and unmaintained3.13 support in Rebuild for python 3.13 conda-forge/pys2index-feedstock#24xesmf >=0.7.1 via Numba (see above)ncl >=6.6.2Curiously, the env fails to solve for Python <3.13, even though it solves reasonably fast for Python==3.13-> NCL's faultBefore you get started
Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.