Skip to content

CI: modernize the OpenCL Python-package wheel jobs (setup.py → pyproject, drop cp37/cp38) #78

@hjmjohnson

Description

@hjmjohnson

The *-opencl-python-packages CI jobs in .github/workflows/build-test-package.yml are red and need a coordinated modernization. These failures are independent of the C++/CUDA build (which is green on all platforms after #77) and were long masked while every run aborted at the retired GitHub Actions cache service.

Two root causes

1. The wheel build script calls python setup.py, but the module is pyproject.toml-only.
itk-python-package-tag: 03391ad738438661fff40bfe37a7cfabd171b9b1 pins an ITKPythonPackage manylinux-build-module-wheels.sh that invokes python setup.py …. The module ships only pyproject.toml (scikit-build-core), so the build fails:

/opt/python/cp38-cp38/bin/python: can't open file 'setup.py': [Errno 2] No such file or directory

2. The python-version matrix still lists cp37/cp38, which ITK 5.4 dropped.
After #77 bumped itk-wheel-tag to v5.4.6 (to match the C++ build's ITK), the ITKPythonBuilds cache no longer contains 3.7/3.8 wheels (ITK 5.4 requires Python ≥3.9), so extraction fails:

tar: ITKPythonPackage/ITK-cp38*: Not found in archive
Proposed fix
  • Drop "37" and "38" from every python-version matrix in build-test-package.yml (linux/windows/macos package jobs); ITK 5.4 supports Python ≥3.9.
  • Bump itk-python-package-tag to an ITKPythonPackage commit whose manylinux-build-module-wheels*.sh builds pyproject.toml projects (no setup.py invocation), or add a thin setup.py shim if a compatible tag isn't available.
  • Keep itk-wheel-tag aligned with the C++ build's itk-git-tag (currently v5.4.6).
  • Re-validate build-linux/windows/macos-opencl-python-packages and publish-python-packages-to-pypi.
Affected jobs

build-linux-opencl-python-packages (37/38/39/310/311), build-macos-opencl-python-packages, build-windows-opencl-python-packages (9/10/11).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions