From e9822f5cd76b854df52c0c56934ac11f0a583f79 Mon Sep 17 00:00:00 2001 From: John Blischak Date: Mon, 18 Nov 2024 14:00:27 -0500 Subject: [PATCH 1/2] Migrate to py312 and numpy 2 --- .ci_support/migrations/fmt11.yaml | 8 +++++ .ci_support/migrations/numpy2.yaml | 47 +++++++++++++++++++++++++++ .ci_support/migrations/spdlog114.yaml | 8 +++++ conda-forge.yml | 1 - recipe/conda_build_config.yaml | 27 --------------- recipe/meta.yaml | 5 +-- 6 files changed, 64 insertions(+), 32 deletions(-) create mode 100644 .ci_support/migrations/fmt11.yaml create mode 100644 .ci_support/migrations/numpy2.yaml create mode 100644 .ci_support/migrations/spdlog114.yaml diff --git a/.ci_support/migrations/fmt11.yaml b/.ci_support/migrations/fmt11.yaml new file mode 100644 index 0000000..03c4f7e --- /dev/null +++ b/.ci_support/migrations/fmt11.yaml @@ -0,0 +1,8 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for fmt 11 + kind: version + migration_number: 1 +fmt: +- '11' +migrator_ts: 1720374637.828791 diff --git a/.ci_support/migrations/numpy2.yaml b/.ci_support/migrations/numpy2.yaml new file mode 100644 index 0000000..98b5bb6 --- /dev/null +++ b/.ci_support/migrations/numpy2.yaml @@ -0,0 +1,47 @@ +__migrator: + build_number: 1 + kind: version + 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 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.0dev0` run requirement until that happens (check numpy + issue 26191 for an overview of the most important packages). + + ### 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.0dev0` 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 + +# needs to match length of zip {python, python_impl, numpy} +# as it is in global CBC in order to override it +numpy: + - 1.22 # no py38 support for numpy 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 +migrator_ts: 1713572489.295986 diff --git a/.ci_support/migrations/spdlog114.yaml b/.ci_support/migrations/spdlog114.yaml new file mode 100644 index 0000000..60ced9f --- /dev/null +++ b/.ci_support/migrations/spdlog114.yaml @@ -0,0 +1,8 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for spdlog 1.14 + kind: version + migration_number: 1 +migrator_ts: 1722204008.301365 +spdlog: +- '1.14' diff --git a/conda-forge.yml b/conda-forge.yml index 904a95b..3997bb2 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -6,7 +6,6 @@ build_platform: osx_arm64: osx_64 conda_forge_output_validation: false test: native_and_emulated -# build_with_mambabuild: false upload_on_branch: main azure: build_id: 43 diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 7a2e8ea..1e171f6 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -5,35 +5,8 @@ MACOSX_SDK_VERSION: # [osx and x86_64] c_stdlib_version: # [osx and x86_64] - 11.0 # [osx and x86_64] channel_sources: - - tiledb/label/for-cloud,conda-forge,tiledb # [linux] - conda-forge,tiledb channel_targets: - tiledb main channel_priority: - strict -# conda-forge has migrated to newer versions of fmt and spdlog. We need fmt 9 to -# install into our existing TileDB Cloud conda environments, so we build a -# special variant of fmt 9 and spdlog 1.11. And because this can no longer solve -# with conda-forge depedencies, we install the "for-cloud" tiledb binary from -# tiledb/label/for-cloud -fmt: # [linux] - - 9 # [linux] - - 11 # [linux] -spdlog: # [linux] - - 1.11 # [linux] - - 1.14 # [linux] -pyarrow: # [linux] - - 11 # [linux] - - 17 # [linux] -zip_keys: # [linux] - - channel_sources # [linux] - - fmt # [linux] - - spdlog # [linux] - - pyarrow # [linux] -# Because of the awkwardness required for the cloud variant above -# (fmt9+spdlog1.11), we also have to manually pin fmt/spdlog for the osx-* -# builds -fmt: # [not linux] - - 11 # [not linux] -spdlog: # [not linux] - - 1.14 # [not linux] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 52236ef..cd0f995 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -28,7 +28,7 @@ source: # # hoping to be 1.15.0rc3 <-- FILL IN HERE build: - number: 0 + number: 1 skip: true # [win or linux32 or py2k] # Important: set this back to 0 on a new release @@ -68,8 +68,6 @@ outputs: - name: tiledbsoma-py version: {{ version }} script: build-tiledbsoma-py.sh - build: - skip: true # [py == 312] requirements: build: - {{ compiler('cxx') }} @@ -93,7 +91,6 @@ outputs: - numpy - pyarrow run: - - {{ pin_compatible('numpy', lower_bound='1.16', upper_bound='1.27') }} - {{ pin_subpackage('libtiledbsoma', exact=True) }} - pandas - pyarrow From 7ad4cf0a7156391360978f2ddeccc9d8c92fa7c0 Mon Sep 17 00:00:00 2001 From: John Blischak Date: Mon, 18 Nov 2024 14:01:12 -0500 Subject: [PATCH 2/2] MNT: Re-rendered with conda-build 24.9.0, conda-smithy 3.44.6, and conda-forge-pinning 2024.11.18.16.56.22 --- .azure-pipelines/azure-pipelines-linux.yml | 8 +-- ...64_fmt11spdlog1.14.yaml => linux_64_.yaml} | 18 ++---- .ci_support/linux_64_fmt9spdlog1.11.yaml | 60 ------------------- .ci_support/osx_64_.yaml | 8 +-- .ci_support/osx_arm64_.yaml | 8 +-- README.md | 11 +--- 6 files changed, 17 insertions(+), 96 deletions(-) rename .ci_support/{linux_64_fmt11spdlog1.14.yaml => linux_64_.yaml} (81%) delete mode 100644 .ci_support/linux_64_fmt9spdlog1.11.yaml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index cbcd367..3a31156 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,12 +8,8 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_fmt11spdlog1.14: - CONFIG: linux_64_fmt11spdlog1.14 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_fmt9spdlog1.11: - CONFIG: linux_64_fmt9spdlog1.11 + linux_64_: + CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 diff --git a/.ci_support/linux_64_fmt11spdlog1.14.yaml b/.ci_support/linux_64_.yaml similarity index 81% rename from .ci_support/linux_64_fmt11spdlog1.14.yaml rename to .ci_support/linux_64_.yaml index b8078ec..ecc1177 100644 --- a/.ci_support/linux_64_fmt11spdlog1.14.yaml +++ b/.ci_support/linux_64_.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos7 +- conda channel_sources: - conda-forge,tiledb channel_targets: @@ -21,10 +21,10 @@ docker_image: fmt: - '11' numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' +- '2.0' pin_run_as_build: python: min_pin: x.x @@ -32,8 +32,6 @@ pin_run_as_build: r-base: min_pin: x.x max_pin: x.x -pyarrow: -- '17' python: - 3.10.* *_cpython - 3.11.* *_cpython @@ -50,11 +48,5 @@ tiledb: zip_keys: - - c_compiler_version - cxx_compiler_version -- - c_stdlib_version - - cdt_name -- - channel_sources - - fmt - - spdlog - - pyarrow - - python - numpy diff --git a/.ci_support/linux_64_fmt9spdlog1.11.yaml b/.ci_support/linux_64_fmt9spdlog1.11.yaml deleted file mode 100644 index e094903..0000000 --- a/.ci_support/linux_64_fmt9spdlog1.11.yaml +++ /dev/null @@ -1,60 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- tiledb/label/for-cloud,conda-forge,tiledb -channel_targets: -- tiledb main -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -fmt: -- '9' -numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x - r-base: - min_pin: x.x - max_pin: x.x -pyarrow: -- '11' -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.9.* *_cpython -r_base: -- '4.3' -spdlog: -- '1.11' -target_platform: -- linux-64 -tiledb: -- '2.26' -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - c_stdlib_version - - cdt_name -- - channel_sources - - fmt - - spdlog - - pyarrow -- - python - - numpy diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index b8b2a3e..879c95d 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -23,10 +23,10 @@ fmt: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 0ab5ccb..44a7586 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -23,10 +23,10 @@ fmt: macos_machine: - arm64-apple-darwin20.0.0 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/README.md b/README.md index 35ac1df..c437456 100644 --- a/README.md +++ b/README.md @@ -82,17 +82,10 @@ Current build status - + - - -
VariantStatus
linux_64_fmt11spdlog1.14linux_64 - variant - -
linux_64_fmt9spdlog1.11 - - variant + variant