Skip to content

Conversation

@valeriupredoi
Copy link
Contributor

We can't support Python 3.10 due to dependency on cf-python, and the conda package is also built with python_min = 3.11.

@bnlawrence
Copy link
Contributor

Huh? Is cf-python not supporting 3.10 any more?

@valeriupredoi
Copy link
Contributor Author

Huh? Is cf-python not supporting 3.10 any more?

Nope, for a while now - two years? @davidhassell

@bnlawrence
Copy link
Contributor

I thought the done thing was to support versions for as long as they were live, which should be five years, which means I guess we could lose this in October, so being 9 months early is not the end of the world, so ok, here, now, but we need to have a chat about the principle.

@valeriupredoi
Copy link
Contributor Author

valeriupredoi commented Jan 21, 2026

I am but the messenger here, Bryan - we need to pin it here, otherwise a Python 3.10 env will fail solving with libmamba moaning it can't solve for cf-python. Having said that, I remember David had some good reasons why drop 3.10, alas, iris has too 😁

@davidhassell
Copy link

cf-python does indeed support Python 3.10, and I expect it to for some time yet. It only stopped supporting 3.9 when it was EoL, in October 2025

@valeriupredoi
Copy link
Contributor Author

cf-python does indeed support Python 3.10, and I expect it to for some time yet. It only stopped supporting 3.9 when it was EoL, in October 2025

Well then you have to change your conda recipe and build for and with 3.10 - but I have a hunch that won't work https://github.com/conda-forge/cf-python-feedstock/blob/main/recipe/meta.yaml

@valeriupredoi
Copy link
Contributor Author

@davidhassell the last cf-python tht had support for Python 3.10 was 3.17, and there are quite a few API changes since - @bnlawrence developed s3view/cfs3 against 3.18 or later (I think), that's why I got a few API barfs when I tried building cfs3 with Python 3.10 yesterday https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=1440378&view=logs&j=7b6f2c87-f3a7-5133-8d84-7c03a75d9dfc&t=9eb77fd2-8ddd-5444-8fc0-71cb28dcb736

At any rate, if you want to use Numpy 2.3 or newer, you ought to drop support for Python 3.10 anyway - so I reckon you did well back in April last year (sorry, not two years haha) when you dropped Python 3.10 🍺

@sadielbartholomew
Copy link
Member

the last cf-python tht had support for Python 3.10 was 3.17

What are you basing this statement on? It's incorrect, since I can install (as just tested) the latest (just released last week) cf-python, 3.19.0, on a Python 3.10 conda environment:

$ conda list | grep python
brotli-python             1.1.0           py310hf71b8c6_3    conda-forge
cf-python                 3.19.0                   pypi_0    pypi
dnspython                 2.7.0                    pypi_0    pypi
ipython                   8.30.0          py310h06a4308_0  
python                    3.10.18              h1a3bd86_0  
python-dateutil           2.9.0.post0        pyhe01879c_2    conda-forge
python-dotenv             1.0.1                    pypi_0    pypi
python-engineio           4.12.2                   pypi_0    pypi
python-fastjsonschema     2.20.0          py310h06a4308_0  
python-json-logger        3.2.1           py310h06a4308_0  
python-slugify            8.0.4                    pypi_0    pypi
python-socketio           5.13.0                   pypi_0    pypi
python_abi                3.10                    2_cp310    conda-forge
types-python-dateutil     2.9.0.20250809           pypi_0    pypi

The job log you link to is in Python 3,12, anyway and not failing because of cf-python dependencies.

@valeriupredoi
Copy link
Contributor Author

valeriupredoi commented Jan 21, 2026

@sadielbartholomew you have a mixed environment and you are installing cf-python from PyPI cf-python 3.19.0 pypi_0 pypi - try installing it from conda-forge and you'll see what I'm talking about (BTW be very careful with those mixed environments, they're rather dangerous). No, the conda build env is built with spec python_min that was set to 3.10, and the tests ran with platform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 - not failing bc of deps, failing bc tests fail since cf-python is old for Python 3.10 - did you read the log towards the bottom of it, that's where you should look

@valeriupredoi
Copy link
Contributor Author

valeriupredoi commented Jan 21, 2026

@sadielbartholomew here is your dependency table for the conda-forge cf-python:

    ├─ cf-python >3.17 * is installable with the potential options
    │  ├─ cf-python [3.18.0|3.18.1|3.18.2|3.19.0] would require
    │  │  ├─ python >=3.11,<3.12.0a0 *, which can be installed;
    │  │  └─ python_abi =3.11 *_cp311, which can be installed;
    │  ├─ cf-python [3.18.0|3.18.1|3.18.2|3.19.0] would require
    │  │  └─ python_abi =3.12 *_cp312, which requires
    │  │     └─ python =3.12 *_cpython, which can be installed;
    │  ├─ cf-python [3.18.1|3.18.2|3.19.0] would require
    │  │  └─ python_abi =3.13 *_cp313 with the potential options
    │  │     ├─ python_abi 3.13 would require
    │  │     │  └─ python =3.13 *_cpython, which can be installed;
    │  │     └─ python_abi 3.13 would require
    │  │        └─ python =3.13 *_cp313, which can be installed;
    │  └─ cf-python [3.18.2|3.19.0] would require
    │     └─ python_abi =3.14 *_cp314, which requires
    │        └─ python =3.14 *_cp314, which can be installed;

which is a solid approach - you installing the latest cf-python from PyPI in a Python 3.10 environment is bound to start a lot of corner case issues eg a numpy>2.3 from PyPI that is incompatible with Python 3.10, an old netCDF4 that may give a lot of headaches and you don't know why etc; as a rule: don't mix (as much as you can) conda-forge packages with PyPI packages, and always build a package against a tested version of Python - did you run the tests for the newly released cf-python 3.19 in a Python 3.10 environment, or at least, a pip check?

@davidhassell
Copy link

I'm somewhat bemused as to what's going on here.

  • cf-python is documented as working for Python 3.10, is tested against Python 3.10, and works for Python 3.10.
  • Python 3.10 is still nearly a year from EoL, and we will continue to support it until then, unless there's a really good reason not to (wanting to using numpy >= 2.3 is not a good reason - if you want to us that just use Python 3.11, of course!)
  • The conda-forge thing is not owned by us (NCAS). It was changed to Python >= 3.11 in June 2025 without consulting us (as far as I'm aware). What's the normal situation for things like this?

@valeriupredoi
Copy link
Contributor Author

Do you know why Filipe changed it? You can take ownership - and I can help you and Sadie with it - I maintain all the packages I work on, so I assumed you did the same, and changed it for a good reason.

@valeriupredoi
Copy link
Contributor Author

merging this via offline chat with @bnlawrence and @davidhassell = don't worry @sadielbartholomew - we started taking back ownership of the feedstock, see eg conda-forge/cf-python-feedstock#55 (David or I will add you there as well, after Filipe adds us), so we can rebuild the conda-forge package with Python 3.10 support 🍺

@valeriupredoi valeriupredoi merged commit d42926d into main Jan 22, 2026
4 checks passed
@valeriupredoi valeriupredoi deleted the change_python_min branch January 22, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants