From 3ad8eaf530b9115618f4c43a42c078f4c6c8cc53 Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 12:04:38 -0500 Subject: [PATCH 1/6] Add Python 3.12 builds The migrator seems confused by another package from a split feedstock that also produces non-Python packages that qiskit-aer depends on not having Python 3.12 builds yet, so this is a manual migration attempt. --- .azure-pipelines/azure-pipelines-linux.yml | 12 ++++++ .azure-pipelines/azure-pipelines-osx.yml | 6 +++ .azure-pipelines/azure-pipelines-win.yml | 3 ++ ...sion12numpy1.26python3.12.____cpython.yaml | 40 ++++++++++++++++++ ...sion11numpy1.26python3.12.____cpython.yaml | 40 ++++++++++++++++++ ...sion11numpy1.26python3.12.____cpython.yaml | 40 ++++++++++++++++++ .ci_support/migrations/python312.yaml | 38 +++++++++++++++++ ...sx_64_numpy1.26python3.12.____cpython.yaml | 37 ++++++++++++++++ ...arm64_numpy1.26python3.12.____cpython.yaml | 37 ++++++++++++++++ ...onNonenumpy1.26python3.12.____cpython.yaml | 31 ++++++++++++++ README.md | 42 +++++++++++++++++++ recipe/meta.yaml | 2 +- 12 files changed, 327 insertions(+), 1 deletion(-) create mode 100644 .ci_support/linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython.yaml create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython.yaml create mode 100644 .ci_support/linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython.yaml create mode 100644 .ci_support/migrations/python312.yaml create mode 100644 .ci_support/osx_64_numpy1.26python3.12.____cpython.yaml create mode 100644 .ci_support/osx_arm64_numpy1.26python3.12.____cpython.yaml create mode 100644 .ci_support/win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython.yaml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 9e73269..7b8ceeb 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -24,6 +24,10 @@ jobs: CONFIG: linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython: + CONFIG: linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.22python3.10.____cpython: CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -40,6 +44,10 @@ jobs: CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython: CONFIG: linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -56,6 +64,10 @@ jobs: CONFIG: linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython: + CONFIG: linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 2e1f707..fc75a05 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -20,6 +20,9 @@ jobs: osx_64_numpy1.23python3.11.____cpython: CONFIG: osx_64_numpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' + osx_64_numpy1.26python3.12.____cpython: + CONFIG: osx_64_numpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' osx_arm64_numpy1.22python3.10.____cpython: CONFIG: osx_arm64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -32,6 +35,9 @@ jobs: osx_arm64_numpy1.23python3.11.____cpython: CONFIG: osx_arm64_numpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' + osx_arm64_numpy1.26python3.12.____cpython: + CONFIG: osx_arm64_numpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index b1672a2..a0a4bb9 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -20,6 +20,9 @@ jobs: win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.23python3.11.____cpython: CONFIG: win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' + win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython: + CONFIG: win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ diff --git a/.ci_support/linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..9249a53 --- /dev/null +++ b/.ci_support/linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython.yaml @@ -0,0 +1,40 @@ +cdt_name: +- cos6 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- linux-64 +zip_keys: +- - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - docker_image +- - python + - numpy diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..0f3d6c6 --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython.yaml @@ -0,0 +1,40 @@ +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '12.0' +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- linux-64 +zip_keys: +- - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - docker_image +- - python + - numpy diff --git a/.ci_support/linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..12ada7b --- /dev/null +++ b/.ci_support/linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython.yaml @@ -0,0 +1,40 @@ +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- nvcc +cuda_compiler_version: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-cuda:11.8 +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- linux-64 +zip_keys: +- - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - docker_image +- - python + - numpy diff --git a/.ci_support/migrations/python312.yaml b/.ci_support/migrations/python312.yaml new file mode 100644 index 0000000..b39b1bb --- /dev/null +++ b/.ci_support/migrations/python312.yaml @@ -0,0 +1,38 @@ +migrator_ts: 1695046563 +__migrator: + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.6.* *_cpython + - 3.7.* *_cpython + - 3.8.* *_cpython + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython + - 3.12.* *_cpython # new entry + - 3.6.* *_73_pypy + - 3.7.* *_73_pypy + - 3.8.* *_73_pypy + - 3.9.* *_73_pypy + paused: false + longterm: True + pr_limit: 30 + max_solver_attempts: 6 # this will make the bot retry "not solvable" stuff 6 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + exclude_pinned_pkgs: false + +python: + - 3.12.* *_cpython +# additional entries to add for zip_keys +numpy: + - 1.26 +python_impl: + - cpython diff --git a/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml b/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..a114516 --- /dev/null +++ b/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml @@ -0,0 +1,37 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +llvm_openmp: +- '16' +macos_machine: +- x86_64-apple-darwin13.4.0 +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- osx-64 +zip_keys: +- - python + - numpy diff --git a/.ci_support/osx_arm64_numpy1.26python3.12.____cpython.yaml b/.ci_support/osx_arm64_numpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..9e18dd1 --- /dev/null +++ b/.ci_support/osx_arm64_numpy1.26python3.12.____cpython.yaml @@ -0,0 +1,37 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +llvm_openmp: +- '16' +macos_machine: +- arm64-apple-darwin20.0.0 +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- osx-arm64 +zip_keys: +- - python + - numpy diff --git a/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython.yaml b/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython.yaml new file mode 100644 index 0000000..b58550f --- /dev/null +++ b/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython.yaml @@ -0,0 +1,31 @@ +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- vs2019 +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +spdlog: +- '1.12' +target_platform: +- win-64 +zip_keys: +- - cuda_compiler + - cuda_compiler_version +- - python + - numpy diff --git a/README.md b/README.md index bef94ee..d6e0bbd 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,13 @@ Current build status variant + + linux_64_cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.26python3.12.____cpython + + + variant + + linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.22python3.10.____cpython @@ -82,6 +89,13 @@ Current build status variant + + linux_64_cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version11numpy1.26python3.12.____cpython + + + variant + + linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython @@ -110,6 +124,13 @@ Current build status variant + + linux_64_cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.26python3.12.____cpython + + + variant + + osx_64_numpy1.22python3.10.____cpython @@ -138,6 +159,13 @@ Current build status variant + + osx_64_numpy1.26python3.12.____cpython + + + variant + + osx_arm64_numpy1.22python3.10.____cpython @@ -166,6 +194,13 @@ Current build status variant + + osx_arm64_numpy1.26python3.12.____cpython + + + variant + + win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.22python3.10.____cpython @@ -194,6 +229,13 @@ Current build status variant + + win_64_cuda_compilerNonecuda_compiler_versionNonenumpy1.26python3.12.____cpython + + + variant + + diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e9e6c02..5816c3c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ {% set name = "qiskit-aer" %} {% set version = "0.13.2" %} -{% set build = 0 %} +{% set build = 1 %} {% if cuda_compiler_version in (None, "None", True, False) %} {% set cuda_major = 0 %} From 1dffd36873864eb3ac2bc4cb66e926548e88b437 Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 13:13:56 -0500 Subject: [PATCH 2/6] Add cvxpy as a test dependency --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5816c3c..5e63c47 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -102,6 +102,7 @@ test: - stestr run -E test_save_statevector_for_qasm3_circuit # [not linux and build_platform == target_platform] requires: - ddt + - cvxpy - ipython - matplotlib-base - pip From e100a025ce4e2468727c9bfc5e86243925b2288d Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 15:46:44 -0500 Subject: [PATCH 3/6] Workaround packaging issue with cvxpy --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5e63c47..f0f7b09 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -103,6 +103,7 @@ test: requires: - ddt - cvxpy + - pybind11 # Temporary workaround for https://github.com/cvxpy/cvxpy/issues/2330 - ipython - matplotlib-base - pip From 3391de956589137eea61eab546b82290443c75b0 Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 16:13:48 -0500 Subject: [PATCH 4/6] Drop cvxpy tests. Restrict Python to avoid test skipping error --- recipe/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f0f7b09..7673cd2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -101,9 +101,8 @@ test: - LD_PRELOAD="$CUDA_STUB" stestr run -E 'test_save_statevector_for_qasm3_circuit|_GPU' # [linux and cuda_compiler_version != "None"] - stestr run -E test_save_statevector_for_qasm3_circuit # [not linux and build_platform == target_platform] requires: + - python <3.12.1 # Workaround until https://github.com/testing-cabal/testtools/pull/371 is released - ddt - - cvxpy - - pybind11 # Temporary workaround for https://github.com/cvxpy/cvxpy/issues/2330 - ipython - matplotlib-base - pip From 224cbd3a3981383b69a736ffccb19f30786bf762 Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 19:55:19 -0500 Subject: [PATCH 5/6] Exclude cvxpy tests Test skipping was broken by Python 3.12.1 so we explicitly exlucde the cvxpy tests. --- recipe/meta.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 7673cd2..82127a9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -96,12 +96,16 @@ test: - export CUDA_STUB="$PREFIX/lib/stubs/libcuda.so" # [linux and (cuda_compiler_version or "").startswith("12")] - LD_PRELOAD="$CUDA_STUB" python -c "import qiskit_aer" # [linux] - python -c "import qiskit_aer" # [not linux and build_platform == target_platform] - # Ignore tests that require qiskit_qasm3_import which is not packaged in conda-forge by using `-E test_save_statevector_for qasm3_circuit` - - stestr run -E test_save_statevector_for_qasm3_circuit # [linux and cuda_compiler_version == "None"] - - LD_PRELOAD="$CUDA_STUB" stestr run -E 'test_save_statevector_for_qasm3_circuit|_GPU' # [linux and cuda_compiler_version != "None"] - - stestr run -E test_save_statevector_for_qasm3_circuit # [not linux and build_platform == target_platform] + # Ignore tests that require qiskit_qasm3_import which is not packaged in + # conda-forge by using `-E test_save_statevector_for_qasm3_circuit` + # + # Ignore TestNoiseTransformer as a workaround until + # https://github.com/testing-cabal/testtools/pull/371 is released + # + # Ignore _GPU tests for CUDA builds because the environment does not have a GPU + - stestr run -E 'test_save_statevector_for_qasm3_circuit|TestNoiseTransformer' # [build_platform == target_platform and cuda_compiler_version == "None"] + - LD_PRELOAD="$CUDA_STUB" stestr run -E 'test_save_statevector_for_qasm3_circuit|TestNoiseTransformer|_GPU' # [linux and cuda_compiler_version != "None"] requires: - - python <3.12.1 # Workaround until https://github.com/testing-cabal/testtools/pull/371 is released - ddt - ipython - matplotlib-base From 1505a3d9be948166f480a3958d883cf9c03cd429 Mon Sep 17 00:00:00 2001 From: Will Shanks Date: Thu, 18 Jan 2024 23:52:08 -0500 Subject: [PATCH 6/6] Try double quotes for Windows shell --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 82127a9..6ab2078 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -103,7 +103,7 @@ test: # https://github.com/testing-cabal/testtools/pull/371 is released # # Ignore _GPU tests for CUDA builds because the environment does not have a GPU - - stestr run -E 'test_save_statevector_for_qasm3_circuit|TestNoiseTransformer' # [build_platform == target_platform and cuda_compiler_version == "None"] + - stestr run -E "test_save_statevector_for_qasm3_circuit|TestNoiseTransformer" # [build_platform == target_platform and cuda_compiler_version == "None"] - LD_PRELOAD="$CUDA_STUB" stestr run -E 'test_save_statevector_for_qasm3_circuit|TestNoiseTransformer|_GPU' # [linux and cuda_compiler_version != "None"] requires: - ddt