-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
Rebuild for numpy 2.0 #88
Rebuild for numpy 2.0 #88
Conversation
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: * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) * If upstream is not yet compatible with numpy 2.0, add `numpy <2` upper bound under `run:`. * If upstream is already compatible with numpy 2.0, nothing else should be necessary in most cases. * If upstream requires a minimum numpy version newer than 1.19, you can add `numpy >=x.y` under `run:`. * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. 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).
…nda-forge-pinning 2024.05.18.00.22.24
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 ( |
Depends on PR: yt-project/yt#4874 |
Actually maybe I'm mistaken and this already works: yt-project/yt#4859 @neutrinoceros what would you recommend we do here? Can this be merged or should we wait a bit? |
Yes, yt itself is already tested and works against numpy 2.0, the issue you mentioned is for tracking compatibility in optional dependencies, so it shouldn't be blocking, I think. |
Ok thanks Clément! 🙏 Sorry for the confusion. Will mark this ready for review again Should be mergeable by maintainers when they are able to look |
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 ( I do have some suggestions for making it better though... For recipe:
|
@conda-forge-admin , please re-render |
…nda-forge-pinning 2024.05.30.18.15.52
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 ( |
@conda-forge-admin , please re-render |
…nda-forge-pinning 2024.05.30.18.15.52
c_stdlib_version: # [osx and x86_64] | ||
- 10.11 # [osx and x86_64] | ||
MACOSX_DEPLOYMENT_TARGET: # [osx and x86_64] | ||
- 10.11 # [osx and x86_64] |
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.
AIUI macOS 10.11 was added as part of PR ( #69 ) to build with a newer macOS version than conda-forge used at the time (previously 10.9). Since then conda-forge has bumped the minimum macOS version to 10.13 ( conda-forge/conda-forge.github.io#1844 ), which means the 10.11 version used here is now old in comparison
Have made the necessary changes to keep macOS 10.11 working here ( particularly with the addition of {{ stdlib("c") }}
: conda-forge/conda-forge.github.io#2102 ). That said, maybe it is worth revisiting whether this 10.11 pin is still needed or if 10.13 would suffice, in which case this conda_build_config.yaml
file could be dropped entirely. This need not happen in this PR. Just mentioning it as the fixes needed to keep 10.11 working here are happening in this PR. Happy to move this discussion to an issue if preferred 🙂
This PR has been triggered in an effort to update numpy2.
Notes and instructions for merging this PR:
Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.
Here are some more details about this specific migrator:
If this PR was opened in error or needs to be updated please add the
bot-rerun
label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase@conda-forge-admin, please rerun bot
in a PR comment to have theconda-forge-admin
add it for you.This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/9138809699 - please use this URL for debugging.