diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index c6aefc2..be472af 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -20,6 +20,10 @@ jobs: CONFIG: linux_64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_python3.14.____cp314: + CONFIG: linux_64_python3.14.____cp314 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 linux_aarch64_python3.11.____cpython: CONFIG: linux_aarch64_python3.11.____cpython UPLOAD_PACKAGES: 'True' @@ -32,6 +36,10 @@ jobs: CONFIG: linux_aarch64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_python3.14.____cp314: + CONFIG: linux_aarch64_python3.14.____cp314 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 linux_ppc64le_python3.11.____cpython: CONFIG: linux_ppc64le_python3.11.____cpython UPLOAD_PACKAGES: 'True' @@ -44,6 +52,10 @@ jobs: CONFIG: linux_ppc64le_python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_ppc64le_python3.14.____cp314: + CONFIG: linux_ppc64le_python3.14.____cp314 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 7b5eb13..6f88a1e 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -17,6 +17,9 @@ jobs: osx_64_python3.13.____cp313: CONFIG: osx_64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' + osx_64_python3.14.____cp314: + CONFIG: osx_64_python3.14.____cp314 + UPLOAD_PACKAGES: 'True' osx_arm64_python3.11.____cpython: CONFIG: osx_arm64_python3.11.____cpython UPLOAD_PACKAGES: 'True' @@ -26,6 +29,9 @@ jobs: osx_arm64_python3.13.____cp313: CONFIG: osx_arm64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' + osx_arm64_python3.14.____cp314: + CONFIG: osx_arm64_python3.14.____cp314 + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: {} diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml index d0e6225..3a58289 100644 --- a/.ci_support/linux_64_python3.11.____cpython.yaml +++ b/.ci_support/linux_64_python3.11.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_64_python3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml index cf62d5d..8bdefb3 100644 --- a/.ci_support/linux_64_python3.12.____cpython.yaml +++ b/.ci_support/linux_64_python3.12.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_64_python3.13.____cp313.yaml b/.ci_support/linux_64_python3.13.____cp313.yaml index 1c818d0..c4402a6 100644 --- a/.ci_support/linux_64_python3.13.____cp313.yaml +++ b/.ci_support/linux_64_python3.13.____cp313.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_64_python3.14.____cp314.yaml b/.ci_support/linux_64_python3.14.____cp314.yaml new file mode 100644 index 0000000..df41a3a --- /dev/null +++ b/.ci_support/linux_64_python3.14.____cp314.yaml @@ -0,0 +1,22 @@ +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.14.* *_cp314 +target_platform: +- linux-64 diff --git a/.ci_support/linux_aarch64_python3.11.____cpython.yaml b/.ci_support/linux_aarch64_python3.11.____cpython.yaml index 52ac1fa..7f300aa 100644 --- a/.ci_support/linux_aarch64_python3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_python3.11.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_aarch64_python3.12.____cpython.yaml b/.ci_support/linux_aarch64_python3.12.____cpython.yaml index 6e153aa..3a80991 100644 --- a/.ci_support/linux_aarch64_python3.12.____cpython.yaml +++ b/.ci_support/linux_aarch64_python3.12.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_aarch64_python3.13.____cp313.yaml b/.ci_support/linux_aarch64_python3.13.____cp313.yaml index 3351e9e..f5b50f9 100644 --- a/.ci_support/linux_aarch64_python3.13.____cp313.yaml +++ b/.ci_support/linux_aarch64_python3.13.____cp313.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_aarch64_python3.14.____cp314.yaml b/.ci_support/linux_aarch64_python3.14.____cp314.yaml new file mode 100644 index 0000000..7177be1 --- /dev/null +++ b/.ci_support/linux_aarch64_python3.14.____cp314.yaml @@ -0,0 +1,22 @@ +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.14.* *_cp314 +target_platform: +- linux-aarch64 diff --git a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml index 7ca3eeb..ce9e844 100644 --- a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml index 69e4895..aff8fea 100644 --- a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.13.____cp313.yaml b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml index 18c7870..4409028 100644 --- a/.ci_support/linux_ppc64le_python3.13.____cp313.yaml +++ b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml @@ -2,8 +2,6 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.14.____cp314.yaml b/.ci_support/linux_ppc64le_python3.14.____cp314.yaml new file mode 100644 index 0000000..3fa5bfc --- /dev/null +++ b/.ci_support/linux_ppc64le_python3.14.____cp314.yaml @@ -0,0 +1,22 @@ +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.14.* *_cp314 +target_platform: +- linux-ppc64le diff --git a/.ci_support/migrations/python314.yaml b/.ci_support/migrations/python314.yaml new file mode 100644 index 0000000..e382cc9 --- /dev/null +++ b/.ci_support/migrations/python314.yaml @@ -0,0 +1,41 @@ +# this is intentionally sorted before the 3.13t migrator, because that determines +# the order of application of the migrators; otherwise we'd have to add values for +# is_freethreading and is_abi3 keys here, since that migration extends the zip; +migrator_ts: 1724712607 +__migrator: + commit_message: Rebuild for python 3.14 + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython + - 3.12.* *_cpython + - 3.13.* *_cp313 + - 3.13.* *_cp313t + - 3.14.* *_cp314 # new entry + paused: false + longterm: true + pr_limit: 5 + max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + # Manually migrated (e.g. were blocked on missing dev dependencies) + - pyarrow + exclude_pinned_pkgs: false + ignored_deps_per_node: + matplotlib: + - pyqt + +python: +- 3.14.* *_cp314 +# additional entries to add for zip_keys +is_python_min: +- false diff --git a/.ci_support/osx_64_python3.14.____cp314.yaml b/.ci_support/osx_64_python3.14.____cp314.yaml new file mode 100644 index 0000000..f42bcdb --- /dev/null +++ b/.ci_support/osx_64_python3.14.____cp314.yaml @@ -0,0 +1,26 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '19' +macos_machine: +- x86_64-apple-darwin13.4.0 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.14.* *_cp314 +target_platform: +- osx-64 diff --git a/.ci_support/osx_arm64_python3.14.____cp314.yaml b/.ci_support/osx_arm64_python3.14.____cp314.yaml new file mode 100644 index 0000000..2b4d128 --- /dev/null +++ b/.ci_support/osx_arm64_python3.14.____cp314.yaml @@ -0,0 +1,26 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '19' +macos_machine: +- arm64-apple-darwin20.0.0 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.14.* *_cp314 +target_platform: +- osx-arm64 diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 361edeb..bac7141 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -63,6 +63,25 @@ if [[ "${sha:-}" == "" ]]; then sha=$(git rev-parse HEAD) fi +if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + if [[ "${CI:-}" == "" ]]; then + echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting" + exit 1 + else + export OSX_SDK_DIR=/opt/conda-sdks + /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}" + /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}" + fi +else + if tmpf=$(mktemp -p "$OSX_SDK_DIR" tmp.XXXXXXXX 2>/dev/null); then + rm -f "$tmpf" + echo "OSX_SDK_DIR is writeable without sudo, continuing" + else + echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting" + exit 1 + fi +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup diff --git a/README.md b/README.md index 4e90eae..19ab1ac 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,13 @@ Current build status variant + + linux_64_python3.14.____cp314 + + + variant + + linux_aarch64_python3.11.____cpython @@ -68,6 +75,13 @@ Current build status variant + + linux_aarch64_python3.14.____cp314 + + + variant + + linux_ppc64le_python3.11.____cpython @@ -89,6 +103,13 @@ Current build status variant + + linux_ppc64le_python3.14.____cp314 + + + variant + + osx_64_python3.11.____cpython @@ -110,6 +131,13 @@ Current build status variant + + osx_64_python3.14.____cp314 + + + variant + + osx_arm64_python3.11.____cpython @@ -131,6 +159,13 @@ Current build status variant + + osx_arm64_python3.14.____cp314 + + + variant + + @@ -215,12 +250,12 @@ it is possible to build and upload installable packages to the [conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) channel for Linux, Windows and OSX respectively. -To manage the continuous integration and simplify feedstock maintenance +To manage the continuous integration and simplify feedstock maintenance, [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. -For more information please check the [conda-forge documentation](https://conda-forge.org/docs/). +For more information, please check the [conda-forge documentation](https://conda-forge.org/docs/). Terminology =========== @@ -247,7 +282,7 @@ merged, the recipe will be re-built and uploaded automatically to the everybody to install and use from the `conda-forge` channel. Note that all branches in the conda-forge/primecountpy-feedstock are immediately built and any created packages are uploaded, so PRs should be based -on branches in forks and branches in the main repository should only be used to +on branches in forks, and branches in the main repository should only be used to build distinct package versions. In order to produce a uniquely identifiable distribution: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 013bdc1..5a2cd45 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,7 +7,7 @@ stages: jobs: - job: Skip pool: - vmImage: 'ubuntu-22.04' + vmImage: 'ubuntu-latest' variables: DECODE_PERCENTS: 'false' RET: 'true' diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 18769ef..f70c902 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -13,7 +13,7 @@ build: skip: true # [py<311] skip: true # [win] script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 requirements: build: