From a58b610b2eb882e0f5a2ce93d4583e13144eeaf8 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand Date: Tue, 14 Jul 2026 14:16:17 +0200 Subject: [PATCH 1/2] Replace pyqt requirement with qtpy PlotPy depends on QtPy to be compatible with different Python-to-Qt bindings. Allow to install pyqt5, pyqt6 or pyside6 instead of forcing pytqt5. --- recipe/recipe.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index a9c675c..f4a50c7 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -13,7 +13,7 @@ source: sha256: be14e2e507eb70908e3199544d9f8107a99c30cb5c3961a0ac54269d553ec87b build: - number: 0 + number: 1 script: ${{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation requirements: @@ -42,7 +42,7 @@ requirements: - scikit-image >=0.19 - pillow - tifffile - - pyqt + - qtpy tests: - python: @@ -52,6 +52,8 @@ tests: - requirements: run: - pytest + # Running pytest requires PyQt5, PyQt6 or PySide6 to be installed + - pyside6 - if: linux then: pytest-xvfb script: From 334e8eeff7b2b17a27dec042c3bf6ca44bdff4c2 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand Date: Tue, 14 Jul 2026 14:17:29 +0200 Subject: [PATCH 2/2] MNT: Re-rendered with conda-smithy 2026.6.14 and conda-forge-pinning 2026.07.14.09.14.53 Other tools: - conda-build 26.5.0 - rattler-build 0.68.0 - rattler-build-conda-compat 1.4.15 --- .azure-pipelines/azure-pipelines-osx.yml | 40 ++++++- .azure-pipelines/azure-pipelines-win.yml | 26 ++++- .github/workflows/conda-build.yml | 142 ++++++++++++++--------- .scripts/build_steps.sh | 39 +++++-- .scripts/run_docker_build.sh | 25 ++-- .scripts/run_osx_build.sh | 10 +- build-locally.py | 5 +- pixi.toml | 2 +- 8 files changed, 207 insertions(+), 82 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index aabf8f9..9e101db 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -13,6 +13,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_64_python3.11.____cpython: @@ -20,6 +23,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_64_python3.12.____cpython: @@ -27,6 +33,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_64_python3.13.____cp313: @@ -34,6 +43,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_64_python3.14.____cp314: @@ -41,6 +53,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_python3.10.____cpython: @@ -48,6 +63,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_python3.11.____cpython: @@ -55,6 +73,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_python3.12.____cpython: @@ -62,6 +83,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_python3.13.____cp313: @@ -69,6 +93,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_python3.14.____cp314: @@ -76,6 +103,9 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 timeoutInMinutes: 360 @@ -84,15 +114,15 @@ jobs: steps: # TODO: Fast finish on azure pipelines? - script: | - export MINIFORGE_HOME=$(tools_install_dir) - export CONDA_BLD_PATH=$(build_workspace_dir) export CI=azure + export CONDA_BLD_PATH=$(build_workspace_dir) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export MINIFORGE_HOME=$(tools_install_dir) + export OSX_FORCE_SDK_DOWNLOAD="1" 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}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then export IS_PR_BUILD="True" else diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index f90412c..44162db 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -12,30 +12,45 @@ jobs: CONFIG: win_64_python3.10.____cpython UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge win_64_python3.11.____cpython: CONFIG: win_64_python3.11.____cpython UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge win_64_python3.12.____cpython: CONFIG: win_64_python3.12.____cpython UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge win_64_python3.13.____cp313: CONFIG: win_64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge win_64_python3.14.____cp314: CONFIG: win_64_python3.14.____cp314 UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge timeoutInMinutes: 360 @@ -43,21 +58,20 @@ jobs: UPLOAD_TEMP: D:\\tmp steps: - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: - MINIFORGE_HOME: $(tools_install_dir) + CI: azure + CONFIG: $(CONFIG) CONDA_BLD_PATH: $(build_workspace_dir) + MINIFORGE_HOME: $(tools_install_dir) PYTHONUNBUFFERED: 1 - CONFIG: $(CONFIG) - CI: azure + UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) + UPLOAD_TEMP: $(UPLOAD_TEMP) flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) remote_url: $(Build.Repository.Uri) sha: $(Build.SourceVersion) - UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) - UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index c264d06..957c888 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -23,161 +23,197 @@ jobs: matrix: include: - CONFIG: linux_64_python3.10.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_64_python3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_64_python3.12.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_64_python3.13.____cp313 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_64_python3.14.____cp314 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_python3.10.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_python3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_python3.12.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_python3.13.____cp313 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_python3.14.____cp314 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Configure binfmt_misc + if: matrix.os == 'ubuntu' + shell: bash + run: | + if [[ "$(uname -m)" == "x86_64" ]]; then + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi - name: Build on Linux id: build-linux if: matrix.os == 'ubuntu' env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONDA_FORGE_DOCKER_RUN_ARGS: ${{ matrix.docker_run_args }} CONFIG: ${{ matrix.CONFIG }} - UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} - CI: github_actions - CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.docker_run_args }}" + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} shell: bash run: | - if [[ "$(uname -m)" == "x86_64" ]]; then - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - fi + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else export IS_PR_BUILD="False" fi - export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" - export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" - echo "::endgroup::" ./.scripts/run_docker_build.sh - name: Build on macOS id: build-macos if: matrix.os == 'macos' env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} - CI: github_actions + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} shell: bash run: | + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else export IS_PR_BUILD="False" fi - export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" - export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" ./.scripts/run_osx_build.sh - name: Build on windows @@ -190,12 +226,14 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} - PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} - CI: github_actions + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + PYTHONUNBUFFERED: 1 UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index c6ce254..ffecbfa 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -69,16 +69,37 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - echo "rattler-build currently doesn't support debug mode" + # differences between conda-build vs. rattler-build + # - 1 step (conda debug + manually open shell) vs. 2 step (rb debug {setup, shell}) + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --output-id vs. --output-name + # - --clobber-file vs. none + # - none vs. --target-platform + export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${FEEDSTOCK_ROOT}/build_artifacts}" + rattler-build debug setup \ + --recipe "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + ${BUILD_OUTPUT_ID:+--output-name "${BUILD_OUTPUT_ID}"} \ + --target-platform "${HOST_PLATFORM}" + + rattler-build debug shell else - - rattler-build build --recipe "${RECIPE_ROOT}" \ - -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --target-platform "${HOST_PLATFORM}" \ - --extra-meta flow_run_id="${flow_run_id:-}" \ - --extra-meta remote_url="${remote_url:-}" \ - --extra-meta sha="${sha:-}" + # differences between conda-build vs. rattler-build + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --suppress-variables vs. none + # - --clobber-file vs. none + # - none vs. --target-platform + # - --extra-meta a=b c=d vs. --extra-meta a=b --extra-meta c=d + + rattler-build build \ + --recipe "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="${flow_run_id:-}" \ + --extra-meta remote_url="${remote_url:-}" \ + --extra-meta sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 10d6a2a..17d983f 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -96,6 +96,14 @@ if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then fi fi +# When running on GitHub Actions, mount the step summary file into the container +# and point GITHUB_STEP_SUMMARY at it so that rattler-build's GitHub integration +# can write its summary. GitHub writes the file out to the job summary after the +# step finishes. +if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then + DOCKER_RUN_ARGS="${DOCKER_RUN_ARGS} -v ${GITHUB_STEP_SUMMARY}:/home/conda/github_step_summary:rw${VOLUME_SUFFIX},delegated -e GITHUB_STEP_SUMMARY=/home/conda/github_step_summary" +fi + ( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null @@ -107,17 +115,20 @@ ${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}" ${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \ + -e BUILD_OUTPUT_ID \ + -e BUILD_WITH_CONDA_DEBUG \ + -e CI \ -e CONFIG \ + -e CPU_COUNT \ + -e FEEDSTOCK_NAME \ + -e GIT_BRANCH \ + -e GITHUB_ACTIONS \ -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ -e IS_PR_BUILD \ - -e GIT_BRANCH \ + -e RATTLER_BUILD_COLOR \ + -e RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION \ -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ + -e UPLOAD_PACKAGES \ -e flow_run_id \ -e remote_url \ -e sha \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index b386ebd..6a16132 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -84,7 +84,15 @@ if [[ -f LICENSE.txt ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - echo "rattler-build does not currently support debug mode" + export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${FEEDSTOCK_ROOT:-$PWD}/build_artifacts}" + rattler-build debug setup \ + --recipe ./recipe \ + -m ./.ci_support/${CONFIG}.yaml \ + --target-platform "${HOST_PLATFORM}" \ + ${BUILD_OUTPUT_ID:+--output-name "${BUILD_OUTPUT_ID}"} \ + ${EXTRA_CB_OPTIONS:-} + + rattler-build debug shell else if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then diff --git a/build-locally.py b/build-locally.py index 05493e4..3beb68c 100755 --- a/build-locally.py +++ b/build-locally.py @@ -98,7 +98,10 @@ def main(args=None): p.add_argument( "--debug", action="store_true", - help="Setup debug environment using `conda debug`", + help=( + "Setup debug environment using `conda debug` " + "(or `rattler-build debug` for rattler-build recipes)" + ), ) p.add_argument("--output-id", help="If running debug, specify the output to setup.") diff --git a/pixi.toml b/pixi.toml index ce08dbb..81f7ecf 100644 --- a/pixi.toml +++ b/pixi.toml @@ -5,7 +5,7 @@ [workspace] name = "plotpy-feedstock" -version = "2026.5.29" # conda-smithy version used to generate this file +version = "2026.6.14" # conda-smithy version used to generate this file description = "Pixi configuration for conda-forge/plotpy-feedstock" authors = ["@conda-forge/plotpy"] channels = ["conda-forge"]