diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index eb74200..1b22e22 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,46 +8,42 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpython: - CONFIG: linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpython + linux_64_cuda_compiler_version12.6python3.10.____cpython: + CONFIG: linux_64_cuda_compiler_version12.6python3.10.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 - linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpython: - CONFIG: linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_version12.6python3.11.____cpython: + CONFIG: linux_64_cuda_compiler_version12.6python3.11.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 - linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpython: - CONFIG: linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_version12.6python3.12.____cpython: + CONFIG: linux_64_cuda_compiler_version12.6python3.12.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 - linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpython: - CONFIG: linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_version12.6python3.9.____cpython: + CONFIG: linux_64_cuda_compiler_version12.6python3.9.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 - linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpython: - CONFIG: linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_versionNonepython3.10.____cpython: + CONFIG: linux_64_cuda_compiler_versionNonepython3.10.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpython: - CONFIG: linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_versionNonepython3.11.____cpython: + CONFIG: linux_64_cuda_compiler_versionNonepython3.11.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpython: - CONFIG: linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_versionNonepython3.12.____cpython: + CONFIG: linux_64_cuda_compiler_versionNonepython3.12.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpython: - CONFIG: linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compiler_versionNonepython3.9.____cpython: + CONFIG: linux_64_cuda_compiler_versionNonepython3.9.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 timeoutInMinutes: 360 + variables: {} steps: - - script: | - rm -rf /opt/ghc - df -h - displayName: Manage disk space - # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | @@ -58,6 +54,9 @@ jobs: - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 052ccf0..5f820ea 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,7 +5,7 @@ jobs: - job: osx pool: - vmImage: macOS-11 + vmImage: macOS-13 strategy: matrix: osx_64_python3.10.____cpython: @@ -14,8 +14,8 @@ jobs: osx_64_python3.11.____cpython: CONFIG: osx_64_python3.11.____cpython UPLOAD_PACKAGES: 'True' - osx_64_python3.8.____cpython: - CONFIG: osx_64_python3.8.____cpython + osx_64_python3.12.____cpython: + CONFIG: osx_64_python3.12.____cpython UPLOAD_PACKAGES: 'True' osx_64_python3.9.____cpython: CONFIG: osx_64_python3.9.____cpython @@ -26,18 +26,22 @@ jobs: osx_arm64_python3.11.____cpython: CONFIG: osx_arm64_python3.11.____cpython UPLOAD_PACKAGES: 'True' - osx_arm64_python3.8.____cpython: - CONFIG: osx_arm64_python3.8.____cpython + osx_arm64_python3.12.____cpython: + CONFIG: osx_arm64_python3.12.____cpython UPLOAD_PACKAGES: 'True' osx_arm64_python3.9.____cpython: CONFIG: osx_arm64_python3.9.____cpython UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 + variables: {} steps: # TODO: Fast finish on azure pipelines? - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) export OSX_FORCE_SDK_DOWNLOAD="1" export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml similarity index 76% rename from .ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml index 84ef703..073e944 100644 --- a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '10' +- '13' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: -- '11.2' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: -- '10' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.2 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.10.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml similarity index 76% rename from .ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml index 8aca21d..8ff64f0 100644 --- a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '10' +- '13' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: -- '11.2' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: -- '10' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.2 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.11.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml similarity index 72% rename from .ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml index 4e95228..cc4ace0 100644 --- a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '10' +- '13' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: -- '11.2' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: -- '10' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.2 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.8.* *_cpython -pytorch: -- '2.0' +- 3.12.* *_cpython target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml similarity index 76% rename from .ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml index 67fca76..eef1c03 100644 --- a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '10' +- '13' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: -- '11.2' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: -- '10' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.2 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.9.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml similarity index 77% rename from .ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml index 9996ada..d03801e 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '11' +- '13' cdt_name: -- cos6 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - gxx cxx_compiler_version: -- '11' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.10.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml similarity index 77% rename from .ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml index 160df4c..9a42ea3 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '11' +- '13' cdt_name: -- cos6 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - gxx cxx_compiler_version: -- '11' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.11.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml similarity index 74% rename from .ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml index 391fb0b..47f1e14 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '11' +- '13' cdt_name: -- cos6 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - gxx cxx_compiler_version: -- '11' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.8.* *_cpython -pytorch: -- '2.0' +- 3.12.* *_cpython target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml similarity index 77% rename from .ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpython.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml index fc86969..59bb5a0 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpython.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml @@ -1,36 +1,32 @@ c_compiler: - gcc c_compiler_version: -- '11' +- '13' cdt_name: -- cos6 +- conda channel_sources: - conda-forge channel_targets: - conda-forge main cuda_compiler: -- nvcc +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - gxx cxx_compiler_version: -- '11' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.9.* *_cpython -pytorch: -- '2.0' target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - cuda_compiler_version - - cdt_name - - docker_image diff --git a/.ci_support/migrations/python311.yaml b/.ci_support/migrations/python311.yaml deleted file mode 100644 index c00be95..0000000 --- a/.ci_support/migrations/python311.yaml +++ /dev/null @@ -1,37 +0,0 @@ -migrator_ts: 1666686085 -__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 # new entry - - 3.6.* *_73_pypy - - 3.7.* *_73_pypy - - 3.8.* *_73_pypy - - 3.9.* *_73_pypy - paused: false - longterm: True - pr_limit: 60 - 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 - exclude_pinned_pkgs: false - -python: - - 3.11.* *_cpython -# additional entries to add for zip_keys -numpy: - - 1.23 -python_impl: - - cpython diff --git a/.ci_support/migrations/pytorch20.yaml b/.ci_support/migrations/pytorch20.yaml deleted file mode 100644 index 461b766..0000000 --- a/.ci_support/migrations/pytorch20.yaml +++ /dev/null @@ -1,7 +0,0 @@ -__migrator: - build_number: 1 - kind: version - migration_number: 1 -migrator_ts: 1680651766.97899 -pytorch: -- '2.0' diff --git a/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml index 432dba9..2417434 100644 --- a/.ci_support/osx_64_python3.10.____cpython.yaml +++ b/.ci_support/osx_64_python3.10.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython -pytorch: -- '2.0' target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml index 5926b60..f9d02c7 100644 --- a/.ci_support/osx_64_python3.11.____cpython.yaml +++ b/.ci_support/osx_64_python3.11.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.11.* *_cpython -pytorch: -- '2.0' target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.12.____cpython.yaml similarity index 80% rename from .ci_support/osx_64_python3.8.____cpython.yaml rename to .ci_support/osx_64_python3.12.____cpython.yaml index d16e46d..db69233 100644 --- a/.ci_support/osx_64_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_python3.12.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -21,9 +25,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.8.* *_cpython -pytorch: -- '2.0' +- 3.12.* *_cpython target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml index e64c82f..0d6b14d 100644 --- a/.ci_support/osx_64_python3.9.____cpython.yaml +++ b/.ci_support/osx_64_python3.9.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.9.* *_cpython -pytorch: -- '2.0' target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_arm64_python3.10.____cpython.yaml b/.ci_support/osx_arm64_python3.10.____cpython.yaml index 794d371..f27b2b9 100644 --- a/.ci_support/osx_arm64_python3.10.____cpython.yaml +++ b/.ci_support/osx_arm64_python3.10.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - arm64-apple-darwin20.0.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython -pytorch: -- '2.0' target_platform: - osx-arm64 zip_keys: diff --git a/.ci_support/osx_arm64_python3.11.____cpython.yaml b/.ci_support/osx_arm64_python3.11.____cpython.yaml index 9b4b345..735b5ed 100644 --- a/.ci_support/osx_arm64_python3.11.____cpython.yaml +++ b/.ci_support/osx_arm64_python3.11.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - arm64-apple-darwin20.0.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.11.* *_cpython -pytorch: -- '2.0' target_platform: - osx-arm64 zip_keys: diff --git a/.ci_support/osx_arm64_python3.8.____cpython.yaml b/.ci_support/osx_arm64_python3.12.____cpython.yaml similarity index 82% rename from .ci_support/osx_arm64_python3.8.____cpython.yaml rename to .ci_support/osx_arm64_python3.12.____cpython.yaml index 7c1a7f3..9aedd73 100644 --- a/.ci_support/osx_arm64_python3.8.____cpython.yaml +++ b/.ci_support/osx_arm64_python3.12.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - arm64-apple-darwin20.0.0 pin_run_as_build: @@ -21,9 +25,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.8.* *_cpython -pytorch: -- '2.0' +- 3.12.* *_cpython target_platform: - osx-arm64 zip_keys: diff --git a/.ci_support/osx_arm64_python3.9.____cpython.yaml b/.ci_support/osx_arm64_python3.9.____cpython.yaml index 20554a5..5801af1 100644 --- a/.ci_support/osx_arm64_python3.9.____cpython.yaml +++ b/.ci_support/osx_arm64_python3.9.____cpython.yaml @@ -1,19 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_compiler: - clang c_compiler_version: -- '14' +- '18' channel_sources: - conda-forge channel_targets: - conda-forge main +cuda_compiler: +- cuda-nvcc cuda_compiler_version: - None cxx_compiler: - clangxx cxx_compiler_version: -- '14' +- '18' macos_machine: - arm64-apple-darwin20.0.0 pin_run_as_build: @@ -22,8 +26,6 @@ pin_run_as_build: max_pin: x.x python: - 3.9.* *_cpython -pytorch: -- '2.0' target_platform: - osx-arm64 zip_keys: diff --git a/.gitattributes b/.gitattributes index 7f32763..18f114a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml deleted file mode 100644 index da1368a..0000000 --- a/.github/workflows/automerge.yml +++ /dev/null @@ -1,19 +0,0 @@ -on: - status: {} - check_suite: - types: - - completed - -jobs: - automerge-action: - runs-on: ubuntu-latest - name: automerge - steps: - - name: checkout - uses: actions/checkout@v3 - - name: automerge-action - id: automerge-action - uses: conda-forge/automerge-action@main - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.github/workflows/webservices.yml b/.github/workflows/webservices.yml deleted file mode 100644 index d6f06b5..0000000 --- a/.github/workflows/webservices.yml +++ /dev/null @@ -1,13 +0,0 @@ -on: repository_dispatch - -jobs: - webservices: - runs-on: ubuntu-latest - name: webservices - steps: - - name: webservices - id: webservices - uses: conda-forge/webservices-dispatch-action@main - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index c89ecb7..47b5408 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,29 @@ +# User content belongs under recipe/. +# Feedstock configuration goes in `conda-forge.yml` +# Everything else is managed by the conda-smithy rerender process. +# Please do not modify + +# Ignore all files and folders in root +* +!/conda-forge.yml + +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders +!/recipe/** +!/.ci_support/** + +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + *.pyc -build_artifacts +# Rattler-build's artifacts are in `output` when not specifying anything. +/output +# Pixi's configuration +.pixi diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index a6b09f6..827a29f 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -28,20 +28,23 @@ conda-build: pkgs_dirs: - ${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache - /opt/conda/pkgs +solver: libmamba CONDARC - - -mamba install --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S) +echo > /opt/conda/conda-meta/history +micromamba install --root-prefix ~/.conda --prefix /opt/conda \ + --yes --override-channels --channel conda-forge --strict-channel-priority \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup + + # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -67,9 +70,16 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index 57bc95c..aff009f 100644 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -12,7 +12,7 @@ function startgroup { echo "##[group]$1";; travis ) echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\\r';; + echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -28,7 +28,7 @@ function endgroup { azure ) echo "##[endgroup]";; travis ) - echo -en 'travis_fold:end:'"${1// /}"'\\r';; + echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 9236239..6ee04aa 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -12,7 +12,7 @@ source .scripts/logging_utils.sh set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" +PROVIDER_DIR="$(basename "$THISDIR")" FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" @@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) fi +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + docker info # In order for the conda-build process in the container to write to the mounted @@ -91,6 +97,9 @@ docker run ${DOCKER_RUN_ARGS} \ -e CPU_COUNT \ -e BUILD_WITH_CONDA_DEBUG \ -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index bb00584..0e3c394 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -6,27 +6,41 @@ source .scripts/logging_utils.sh set -xe -MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} - -( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null - -MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" -curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" -rm -rf ${MINIFORGE_HOME} -bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} - -( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null +MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" +MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash +export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" + +( startgroup "Provisioning base env with micromamba" ) 2> /dev/null +MICROMAMBA_VERSION="1.5.10-0" +if [[ "$(uname -m)" == "arm64" ]]; then + osx_arch="osx-arm64" +else + osx_arch="osx-64" +fi +MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" +MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" +echo "Downloading micromamba ${MICROMAMBA_VERSION}" +micromamba_exe="$(mktemp -d)/micromamba" +curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" +chmod +x "${micromamba_exe}" +echo "Creating environment" +"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ + --channel conda-forge \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" +mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" +echo "Cleaning up micromamba" +rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true +( endgroup "Provisioning base env with micromamba" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null - -source ${MINIFORGE_HOME}/etc/profile.d/conda.sh +echo "Activating environment" +source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 + -mamba install --update-specs --quiet --yes --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 @@ -45,6 +59,10 @@ else echo -e "\n\nNot mangling homebrew as we are not running in CI" fi +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup @@ -55,11 +73,6 @@ source run_conda_forge_build_setup echo -e "\n\nMaking the build clobber file" make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" -fi - - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt "recipe/recipe-scripts-license.txt" fi @@ -75,9 +88,22 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ + + if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + fi + + conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/README.md b/README.md index 0415508..090c8c8 100644 --- a/README.md +++ b/README.md @@ -32,59 +32,59 @@ Current build status - + - + - + - + - + - + - + - + @@ -102,10 +102,10 @@ Current build status - + @@ -130,10 +130,10 @@ Current build status - + @@ -224,7 +224,7 @@ available continuous integration services. Thanks to the awesome service provide [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable packages to the -[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) +[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 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 33a441c..013bdc1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,6 +2,31 @@ # update the conda-forge.yml and/or the recipe/meta.yaml. # -*- mode: yaml -*- -jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file +stages: +- stage: Check + jobs: + - job: Skip + pool: + vmImage: 'ubuntu-22.04' + variables: + DECODE_PERCENTS: 'false' + RET: 'true' + steps: + - checkout: self + fetchDepth: '2' + - bash: | + git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` + echo "##vso[task.setvariable variable=log]$git_log" + displayName: Obtain commit message + - bash: echo "##vso[task.setvariable variable=RET]false" + condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) + displayName: Skip build? + - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" + name: result + displayName: Export result +- stage: Build + condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) + dependsOn: Check + jobs: + - template: ./.azure-pipelines/azure-pipelines-linux.yml + - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index 3f4b7a7..9dfe440 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,13 +1,17 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob +import os +import platform import subprocess +import sys from argparse import ArgumentParser -import platform def setup_environment(ns): @@ -23,6 +27,13 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) + # The default cache location might not be writable using docker on macOS. + if ns.config.startswith("linux") and platform.system() == "Darwin": + os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( + os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") + + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" + ) + def run_docker_build(ns): script = ".scripts/run_docker_build.sh" @@ -34,10 +45,19 @@ def run_osx_build(ns): subprocess.check_call([script]) +def run_win_build(ns): + script = ".scripts/run_win_build.bat" + subprocess.check_call(["cmd", "/D", "/Q", "/C", f"CALL {script}"]) + + def verify_config(ns): + choices_filter = ns.filter or "*" valid_configs = { - os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") + os.path.basename(f)[:-5] + for f in glob.glob(f".ci_support/{choices_filter}.yaml") } + if choices_filter != "*": + print(f"filtering for '{choices_filter}.yaml' configs") print(f"valid configs are {valid_configs}") if ns.config in valid_configs: print("Using " + ns.config + " configuration") @@ -50,37 +70,43 @@ def verify_config(ns): selections = list(enumerate(sorted(valid_configs), 1)) for i, c in selections: print(f"{i}. {c}") - s = input("\n> ") + try: + s = input("\n> ") + except KeyboardInterrupt: + print("\nno option selected, bye!", file=sys.stderr) + sys.exit(1) idx = int(s) - 1 ns.config = selections[idx][1] print(f"selected {ns.config}") else: raise ValueError("config " + ns.config + " is not valid") - # Remove the following, as implemented - if ns.config.startswith("win"): - raise ValueError( - f"only Linux/macOS configs currently supported, got {ns.config}" + if ( + ns.config.startswith("osx") + and platform.system() == "Darwin" + and not os.environ.get("OSX_SDK_DIR") + ): + raise RuntimeError( + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) - elif ns.config.startswith("osx"): - if "OSX_SDK_DIR" not in os.environ: - raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=SDKs' " - "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " - "Setting this variable implies agreement to the licensing terms of the SDK by Apple." - ) def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + p.add_argument( + "--filter", + default=None, + help="Glob string to filter which build choices are presented in interactive mode.", + ) p.add_argument( "--debug", action="store_true", help="Setup debug environment using `conda debug`", ) - p.add_argument( - "--output-id", help="If running debug, specify the output to setup." - ) + p.add_argument("--output-id", help="If running debug, specify the output to setup.") ns = p.parse_args(args=args) verify_config(ns) @@ -93,10 +119,10 @@ def main(args=None): run_docker_build(ns) elif ns.config.startswith("osx"): run_osx_build(ns) + elif ns.config.startswith("win"): + run_win_build(ns) finally: - recipe_license_file = os.path.join( - "recipe", "recipe-scripts-license.txt" - ) + recipe_license_file = os.path.join("recipe", "recipe-scripts-license.txt") if os.path.exists(recipe_license_file): os.remove(recipe_license_file) diff --git a/recipe/0001-Add-missing-cuda_fp16-header.patch b/recipe/0001-Add-missing-cuda_fp16-header.patch new file mode 100644 index 0000000..0bba1ee --- /dev/null +++ b/recipe/0001-Add-missing-cuda_fp16-header.patch @@ -0,0 +1,24 @@ +From 054b33f2c51135299f6da5caecbed78c277919ee Mon Sep 17 00:00:00 2001 +From: Mark Harfouche +Date: Sun, 3 Dec 2023 14:04:26 -0500 +Subject: [PATCH] Add missing cuda_fp16 header + +--- + torchsparse/backend/convolution/convolution_cuda.cu | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/torchsparse/backend/convolution/convolution_cuda.cu b/torchsparse/backend/convolution/convolution_cuda.cu +index 6dff868..d0ffb06 100644 +--- a/torchsparse/backend/convolution/convolution_cuda.cu ++++ b/torchsparse/backend/convolution/convolution_cuda.cu +@@ -1,6 +1,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.40.1 + diff --git a/recipe/atomic-add.patch b/recipe/atomic-add.patch deleted file mode 100644 index 7642bd2..0000000 --- a/recipe/atomic-add.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 96859d6d0a54b29420a0d4e39f300de49c4ff77a Mon Sep 17 00:00:00 2001 -From: Christopher Lee -Date: Thu, 3 Jun 2021 09:49:21 -0700 -Subject: [PATCH] Replace `atomicadd` with PyTorch implementation (#75) - ---- - torchsparse/src/common/gpu.cuh | 5 ----- - torchsparse/src/interpolation/devox_gpu.cu | 2 +- - torchsparse/src/others/insertion_gpu.cu | 2 +- - 3 files changed, 2 insertions(+), 7 deletions(-) - -diff --git a/torchsparse/src/common/gpu.cuh b/torchsparse/src/common/gpu.cuh -index aa4927c..1ada73f 100644 ---- a/torchsparse/src/common/gpu.cuh -+++ b/torchsparse/src/common/gpu.cuh -@@ -104,11 +104,6 @@ template - void print(const thrust::device_vector &v1, - const thrust::device_vector &v2); - --// atomicadd for half types (from aten/src/THC/THCAtomics.cuh) --static inline __device__ at::Half atomicAdd(at::Half *address, at::Half val) { -- return atomicAdd(reinterpret_cast<__half*>(address), val); --} -- - // AtomicAddition for double with cuda arch <= 600 - #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600 - #else -diff --git a/torchsparse/src/interpolation/devox_gpu.cu b/torchsparse/src/interpolation/devox_gpu.cu -index 44c65a0..1f6286b 100644 ---- a/torchsparse/src/interpolation/devox_gpu.cu -+++ b/torchsparse/src/interpolation/devox_gpu.cu -@@ -2,7 +2,7 @@ - #include - #include - #include --#include "../common/gpu.cuh" -+#include - - - //input features (n, c), indices (N, 8), weight (N, 8) -> output features (N, c) -diff --git a/torchsparse/src/others/insertion_gpu.cu b/torchsparse/src/others/insertion_gpu.cu -index 04e48a2..5e8dc97 100644 ---- a/torchsparse/src/others/insertion_gpu.cu -+++ b/torchsparse/src/others/insertion_gpu.cu -@@ -2,7 +2,7 @@ - #include - #include - #include --#include "../common/gpu.cuh" -+#include - - //hashing - //input N*F float tensor, pointer to output N'*F int64 tensor, N*1 count tensor, N*1 index tensor --- -2.30.2 - diff --git a/recipe/build.sh b/recipe/build.sh index 327797a..fc0641d 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -8,23 +8,25 @@ if [[ "$cuda_compiler_version" == "None" ]]; then export FORCE_CUDA=0 else export CUDA_NVCC_FLAGS="$CUDA_NVCC_FLAGS -O3" - export TORCH_CUDA_ARCH_LIST="3.5;5.0+PTX" - if [[ ${cuda_compiler_version} == 9.0* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;7.0" - elif [[ ${cuda_compiler_version} == 9.2* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;6.1;7.0" - elif [[ ${cuda_compiler_version} == 10.* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;6.1;7.0;7.5" - elif [[ ${cuda_compiler_version} == 11.0* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;6.1;7.0;7.5;8.0" + # They use __hadd2 which seems to require CUDA_ARCH at least 8.0 + if [[ ${cuda_compiler_version} == 11.0* ]]; then + export TORCH_CUDA_ARCH_LIST="8.0+PTX" elif [[ ${cuda_compiler_version} == 11.1* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;6.1;7.0;7.5;8.0;8.6" + export TORCH_CUDA_ARCH_LIST="8.0;8.6+PTX" elif [[ ${cuda_compiler_version} == 11.2* ]]; then - export TORCH_CUDA_ARCH_LIST="$TORCH_CUDA_ARCH_LIST;6.0;6.1;7.0;7.5;8.0;8.6" + export TORCH_CUDA_ARCH_LIST="8.0;8.6+PTX" + elif [[ ${cuda_compiler_version} == 11.8 ]]; then + export TORCH_CUDA_ARCH_LIST="8.0;8.6;8.9+PTX" + export CUDA_TOOLKIT_ROOT_DIR=$CUDA_HOME + elif [[ ${cuda_compiler_version} == 12.0 ]]; then + export TORCH_CUDA_ARCH_LIST="8.0;8.6;8.9;9.0+PTX" + # $CUDA_HOME not set in CUDA 12.0. Using $PREFIX + export CUDA_TOOLKIT_ROOT_DIR="${PREFIX}" else echo "unsupported cuda version. edit build.sh" exit 1 fi + export FORCE_CUDA=1 fi diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3853ba3..c6e8e95 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,27 +1,40 @@ -{% set version = "1.4.0" %} +{% set version = "2.0.0" %} +{% set build = 0 %} # see github.com/conda-forge/conda-forge.github.io/issues/1059 for naming discussion {% set torch_proc_type = "cuda" if cuda_compiler_version != "None" else "cpu" %} +{% if cuda_compiler_version != "None" %} +{% set build = build + 200 %} +{% endif %} + +{% if cuda_compiler_version in (None, "None", True, False) %} +{% set cuda_major = 0 %} +{% else %} +{% set cuda_major = environ.get("cuda_compiler_version", "11.8").split(".")[0] | int %} +{% endif %} + package: name: torchsparse version: {{ version }} source: url: https://github.com/mit-han-lab/torchsparse/archive/v{{ version }}.tar.gz - sha256: a1cf3e8ecabb0f81cab7e14ed5ed0a31c8cb62b73d8ae172c50a779a82aae640 + sha256: 74e9cc0666487c54443b8fc7dbac4d6d7f9f5b747163c4f6b0a57c9e11c833ba + patches: + - 0001-Add-missing-cuda_fp16-header.patch build: - number: 18 + number: {{ build }} skip: true # [win] + # Keep this in line with the versions of cuda supported by + # the pytorch pin + skip: true # [cuda_compiler_version in ("11.8", "12.0")] # as of pytorch 1.13, conda-forge only builds for CUDA 11.2+, see # https://github.com/conda-forge/conda-forge-pinning-feedstock/issues/3491 skip: true # [cuda_compiler_version in ("10.2", "11.0", "11.1")] string: py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ torch_proc_type }} # [cuda_compiler_version == "None"] string: py{{ CONDA_PY }}cuda{{ cuda_compiler_version|replace('.', '') }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ torch_proc_type }} # [cuda_compiler_version != "None"] - run_exports: - # ensure matching proc-type - - torchvision =*=*_{{ torch_proc_type }} requirements: build: @@ -30,19 +43,48 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} - {{ compiler('cuda') }} # [linux64 and cuda_compiler_version != 'None'] + {% if cuda_major >= 12 %} + - cuda-driver-dev # [build_platform != target_platform] + - cuda-cudart-dev # [build_platform != target_platform] + - cuda-nvrtc-dev # [build_platform != target_platform] + - cuda-nvtx-dev # [build_platform != target_platform] + - cuda-nvml-dev # [build_platform != target_platform] + - cuda-profiler-api # [build_platform != target_platform] + - libcublas-dev # [build_platform != target_platform] + - libcufft-dev # [build_platform != target_platform] + - libcurand-dev # [build_platform != target_platform] + - libcusolver-dev # [build_platform != target_platform] + - libcusparse-dev # [build_platform != target_platform] + {% endif %} - sysroot_linux-64 ==2.17 # [linux64] - pytorch ={{ pytorch }}={{ torch_proc_type }}* # [build_platform != target_platform] host: + - cuda-version {{ cuda_compiler_version }} # [cuda_compiler_version != "None"] + {% if cuda_major >= 12 %} + - cuda-driver-dev + - cuda-cudart-dev + - cuda-nvrtc-dev + - cuda-nvtx-dev + - cuda-nvml-dev + - cuda-profiler-api + - libcublas-dev + - libcufft-dev + - libcurand-dev + - libcusolver-dev + - libcusparse-dev + {% endif %} - python - pip - sparsehash # Leaving two dependencies helps rerender correctly # The first gets filled in by the global pinnings # The second gets the processor type - - pytorch + - pytorch 2.0 - pytorch =*={{ torch_proc_type }}* + - tqdm run: - python + - tqdm run_constrained: # additional run constraint to the one from the (version-only) run_export; # constraining the CPU builds to CPU pytorch isn't 100% necessary, but cleaner
VariantStatus
linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.10.____cpythonlinux_64_cuda_compiler_version12.6python3.10.____cpython - variant + variant
linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.11.____cpythonlinux_64_cuda_compiler_version12.6python3.11.____cpython - variant + variant
linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.8.____cpythonlinux_64_cuda_compiler_version12.6python3.12.____cpython - variant + variant
linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10python3.9.____cpythonlinux_64_cuda_compiler_version12.6python3.9.____cpython - variant + variant
linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.10.____cpythonlinux_64_cuda_compiler_versionNonepython3.10.____cpython - variant + variant
linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.11.____cpythonlinux_64_cuda_compiler_versionNonepython3.11.____cpython - variant + variant
linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.8.____cpythonlinux_64_cuda_compiler_versionNonepython3.12.____cpython - variant + variant
linux_64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11python3.9.____cpythonlinux_64_cuda_compiler_versionNonepython3.9.____cpython - variant + variant
osx_64_python3.8.____cpythonosx_64_python3.12.____cpython - variant + variant
osx_arm64_python3.8.____cpythonosx_arm64_python3.12.____cpython - variant + variant