conda-forge / pythran-feedstock

A conda-smithy repository for pythran.
BSD 3-Clause "New" or "Revised" License
1 stars 11 forks source link

Rebuild for numpy 2.0 #84

Closed h-vetinari closed 4 months ago

h-vetinari commented 5 months ago

Needed for https://github.com/conda-forge/scipy-feedstock/pull/274

Testing commit message formatting:


TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot PR has updated the recipe to account for the changes (see below for details). The numpy 2.0 package itself is currently only available from a special release channel (conda-forge/label/numpy_rc) and will not be available on the main conda-forge channel until the release of numpy 2.0 GA.

The biggest change is that we no longer need to use the oldest available numpy version at build time in order to support old numpy version at runtime - numpy will by default use a compatible ABI for the oldest still-supported numpy versions.

Additionally, we no longer need to use {{ pin_compatible("numpy") }} as a run requirement - this has been handled for more than two years now by a run-export on the numpy package itself. The migrator will therefore remove any occurrences of this.

However, by default, building against numpy 2.0 will assume that the package is compatible with numpy 2.0, which is not necessarily the case. You should check that the upstream package explicitly supports numpy 2.0, otherwise you need to add a - numpy <2 run requirement until that happens (check numpy issue 26191 for an overview of the most important packages).

Note that the numpy release candidate promises to be ABI-compatible with the final 2.0 release. This means that building against 2.0.0rc1 produces packages that can be published to our main channels.

If you already want to use the numpy 2.0 release candidate yourself, you can do

conda config --add channels conda-forge/label/numpy_rc

or add this channel to your .condarc file directly.

To-Dos:

PS. If the build does not compile anymore, this is almost certainly a sign that the upstream project is not yet ready for numpy 2.0; do not close this PR until a version compatible with numpy 2.0 has been released upstream and on this feedstock (in the meantime, you can keep the bot from reopening this PR in case of git conflicts by marking it as a draft).

conda-forge-webservices[bot] commented 5 months ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

h-vetinari commented 4 months ago

Alright, this is working now, in it goes.