diff --git a/.ci_support/linux_64_python3.10.____cpythonvariantnovtk.yaml b/.ci_support/linux_64_python3.10.____cpythonvariantnovtk.yaml deleted file mode 100644 index 4237d01..0000000 --- a/.ci_support/linux_64_python3.10.____cpythonvariantnovtk.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-64 -variant: -- novtk diff --git a/.ci_support/linux_64_python3.11.____cpythonvariantall.yaml b/.ci_support/linux_64_python3.11.____cpythonvariantall.yaml deleted file mode 100644 index d16e59a..0000000 --- a/.ci_support/linux_64_python3.11.____cpythonvariantall.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.11.* *_cpython -target_platform: -- linux-64 -variant: -- all diff --git a/.ci_support/linux_64_python3.11.____cpythonvariantnovtk.yaml b/.ci_support/linux_64_python3.11.____cpythonvariantnovtk.yaml deleted file mode 100644 index 5e12845..0000000 --- a/.ci_support/linux_64_python3.11.____cpythonvariantnovtk.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.11.* *_cpython -target_platform: -- linux-64 -variant: -- novtk diff --git a/.ci_support/linux_64_python3.12.____cpythonvariantall.yaml b/.ci_support/linux_64_python3.12.____cpythonvariantall.yaml deleted file mode 100644 index 73180a8..0000000 --- a/.ci_support/linux_64_python3.12.____cpythonvariantall.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- linux-64 -variant: -- all diff --git a/.ci_support/linux_64_python3.13.____cp313variantall.yaml b/.ci_support/linux_64_python3.13.____cp313variantall.yaml deleted file mode 100644 index 85a13f7..0000000 --- a/.ci_support/linux_64_python3.13.____cp313variantall.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -target_platform: -- linux-64 -variant: -- all diff --git a/.ci_support/linux_64_python3.13.____cp313variantnovtk.yaml b/.ci_support/linux_64_python3.13.____cp313variantnovtk.yaml deleted file mode 100644 index beeccd9..0000000 --- a/.ci_support/linux_64_python3.13.____cp313variantnovtk.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -target_platform: -- linux-64 -variant: -- novtk diff --git a/.ci_support/linux_64_python3.14.____cp314variantall.yaml b/.ci_support/linux_64_python3.14.____cp314variantall.yaml deleted file mode 100644 index 1df9159..0000000 --- a/.ci_support/linux_64_python3.14.____cp314variantall.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -target_platform: -- linux-64 -variant: -- all diff --git a/.ci_support/linux_64_python3.14.____cp314variantnovtk.yaml b/.ci_support/linux_64_python3.14.____cp314variantnovtk.yaml deleted file mode 100644 index c111e02..0000000 --- a/.ci_support/linux_64_python3.14.____cp314variantnovtk.yaml +++ /dev/null @@ -1,26 +0,0 @@ -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -target_platform: -- linux-64 -variant: -- novtk diff --git a/.ci_support/linux_64_python3.10.____cpythonvariantall.yaml b/.ci_support/linux_64_variantall.yaml similarity index 83% rename from .ci_support/linux_64_python3.10.____cpythonvariantall.yaml rename to .ci_support/linux_64_variantall.yaml index a352a3b..46266fe 100644 --- a/.ci_support/linux_64_python3.10.____cpythonvariantall.yaml +++ b/.ci_support/linux_64_variantall.yaml @@ -20,6 +20,10 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 target_platform: - linux-64 variant: diff --git a/.ci_support/linux_64_python3.12.____cpythonvariantnovtk.yaml b/.ci_support/linux_64_variantnovtk.yaml similarity index 83% rename from .ci_support/linux_64_python3.12.____cpythonvariantnovtk.yaml rename to .ci_support/linux_64_variantnovtk.yaml index f7cd2bb..bace064 100644 --- a/.ci_support/linux_64_python3.12.____cpythonvariantnovtk.yaml +++ b/.ci_support/linux_64_variantnovtk.yaml @@ -19,7 +19,11 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: +- 3.10.* *_cpython +- 3.11.* *_cpython - 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 target_platform: - linux-64 variant: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0a34d3b..c65633a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @oursland @krande @looooo \ No newline at end of file +* @krande @looooo @oursland \ No newline at end of file diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 78064b8..1f44002 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -22,52 +22,12 @@ jobs: max-parallel: 50 matrix: include: - - CONFIG: linux_64_python3.10.____cpythonvariantall + - CONFIG: linux_64_variantall UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.10.____cpythonvariantnovtk - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.11.____cpythonvariantall - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.11.____cpythonvariantnovtk - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.12.____cpythonvariantall - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.12.____cpythonvariantnovtk - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.13.____cp313variantall - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.13.____cp313variantnovtk - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.14.____cp314variantall - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_python3.14.____cp314variantnovtk + - CONFIG: linux_64_variantnovtk UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 21768ed..eb91e7a 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -36,7 +36,7 @@ mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d- 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" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc @@ -62,7 +62,7 @@ ulimit -n 1024 make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi @@ -73,20 +73,16 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash + echo "rattler-build currently doesn't support debug mode" else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ - --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + + 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 b63b5a0..10d6a2a 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -11,6 +11,8 @@ source .scripts/logging_utils.sh set -xeo pipefail +DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}" + THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename "$THISDIR")" @@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then popd fi -docker info +${DOCKER_EXECUTABLE} info # In order for the conda-build process in the container to write to the mounted # volumes, we need to run with the same id as the host machine, which is @@ -35,6 +37,7 @@ docker info export HOST_USER_ID=$(id -u) # Check if docker-machine is being used (normally on OSX) and get the uid from # the VM + if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) fi @@ -76,16 +79,34 @@ if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi -( endgroup "Configure Docker" ) 2> /dev/null +# Default volume suffix for Docker (preserve original behavior) +VOLUME_SUFFIX=",z" +# Podman-specific handling +if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then + # Fix file permissions for rootless podman builds + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}" + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}" + + # Add SELinux label only if enforcing + if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then + VOLUME_SUFFIX=",z" + else + VOLUME_SUFFIX="" + fi +fi + +( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ + +${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 CONFIG \ -e HOST_USER_ID \ -e UPLOAD_PACKAGES \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index bac7141..6a9653c 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,7 +26,7 @@ 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" + pip rattler-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" @@ -89,33 +89,25 @@ source run_conda_forge_build_setup ( endgroup "Configuring conda" ) 2> /dev/null -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt "recipe/recipe-scripts-license.txt" fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash + echo "rattler-build does not currently support debug mode" else if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + rattler-build build --recipe ./recipe \ + -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 diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 27c552b..45938bb 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -31,7 +31,7 @@ if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment call "%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" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" >nul @@ -64,19 +64,19 @@ if EXIST LICENSE.txt ( ) if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( if [%CROSSCOMPILING_EMULATOR%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --test skip" ) ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" ) call :end_group :: Build the recipe echo Building recipe -conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% if !errorlevel! neq 0 exit /b !errorlevel! call :start_group "Inspecting artifacts" diff --git a/README.md b/README.md index 0277c83..1905b42 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ pythonocc is a python package whose purpose is to provide 3D modeling features. It is intended to CAD/PDM/PLM and BIM related development. - Current build status ==================== @@ -34,73 +33,17 @@ Current build status
| Variant | Status | |
|---|---|---|
| linux_64_python3.10.____cpythonvariantall | -
-
- |
- |
| linux_64_python3.10.____cpythonvariantnovtk | -
-
- |
- |
| linux_64_python3.11.____cpythonvariantall | -
-
- |
- |
| linux_64_python3.11.____cpythonvariantnovtk | -
-
- |
- |
| linux_64_python3.12.____cpythonvariantall | -
-
- |
- |
| linux_64_python3.12.____cpythonvariantnovtk | -
-
- |
- |
| linux_64_python3.13.____cp313variantall | -
-
- |
- |
| linux_64_python3.13.____cp313variantnovtk | -
-
- |
- |
| linux_64_python3.14.____cp314variantall | +linux_64_variantall |
- |
| linux_64_python3.14.____cp314variantnovtk | +linux_64_variantnovtk |
- |