Skip to content
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

Test NumPy 2 migrator #106

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .ci_support/linux_64_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos6
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_64_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos6
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_64_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos6
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_64_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos6
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_64_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos6
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_aarch64_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cdt_arch:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_aarch64_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cdt_arch:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_aarch64_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cdt_arch:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_aarch64_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cdt_arch:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_aarch64_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cdt_arch:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_ppc64le_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_ppc64le_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_ppc64le_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_ppc64le_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/linux_ppc64le_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib_version:
cdt_name:
- cos7
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
85 changes: 85 additions & 0 deletions .ci_support/migrations/numpy2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
__migrator:
build_number: 1
kind: version
use_local: true
commit_message: |
Rebuild for numpy 2.0

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).

migration_number: 1
ordering:
# prefer channels including numpy_rc (otherwise smithy doesn't
# know which of the two values should be taken on merge)
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge

# we need to override the entire zip {python, python_impl, numpy}
# in order to change the length of it; that's the only way to migrate
# python 3.12 for numpy 2.0, as we cannot update the existing 3.12
# migrator without breaking already-migrated feedstocks immediately.
numpy:
- 1.22 # no py38 support for numpy 2.0
- 2.0
- 2.0
- 2.0
- 2.0
python:
- 3.8.* *_cpython
- 3.9.* *_cpython
- 3.10.* *_cpython
- 3.11.* *_cpython
- 3.12.* *_cpython
python_impl:
- cpython
- cpython
- cpython
- cpython
- cpython
channel_sources:
- conda-forge/label/numpy_rc,conda-forge
migrator_ts: 1713572489.295986

2 changes: 1 addition & 1 deletion .ci_support/osx_64_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '10.13'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_64_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '10.13'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_64_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '10.13'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_64_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '10.13'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_64_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '10.13'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ c_stdlib:
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/win_64_python3.10.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ c_compiler:
c_stdlib:
- vs
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/win_64_python3.11.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ c_compiler:
c_stdlib:
- vs
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/win_64_python3.12.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ c_compiler:
c_stdlib:
- vs
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/win_64_python3.8.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ c_compiler:
c_stdlib:
- vs
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/win_64_python3.9.____cpython.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ c_compiler:
c_stdlib:
- vs
channel_sources:
- conda-forge
- conda-forge/label/numpy_rc,conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
Expand Down