Skip to content

Fix cmake and Cython compile issues; update GH Action CI; extend support for python 3.12, 3.13, 3.14 - #202

Merged
mtazzari merged 7 commits into
masterfrom
maintenance/linux-build-harness
Aug 30, 2026
Merged

Fix cmake and Cython compile issues; update GH Action CI; extend support for python 3.12, 3.13, 3.14#202
mtazzari merged 7 commits into
masterfrom
maintenance/linux-build-harness

Conversation

@mtazzari

@mtazzari mtazzari commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Closes #200 and addresses #201.

Build and compatibility

  • Raise the project CMake minimum to 3.10 so CMake 4 can configure the project.
  • Update the Cython array-base handling for Cython 3.
  • Update test helpers for NumPy 2 and current SciPy.
  • Replace the distutils-dependent PythonInstall helper with a Python-standard-library install-path calculation, allowing Python 3.12+.
  • Replace the legacy CMake pytest helper while retaining build/python/py.test.sh for manual test commands.

Linux installation coverage

  • Add a pip-based Linux/amd64 Docker harness for future PyPI-oriented coverage.
  • Add a Conda/Miniconda Linux/amd64 Docker harness that mirrors the documented and GitHub Actions build path.
  • Add build helpers for both images and document when to use each.

CI and documentation

  • Move GitHub Actions from the retired Ubuntu 20.04 runner to Ubuntu 24.04.
  • Update checkout to v6 and setup-miniconda to v4.
  • Extend the matrix with Python 3.12, 3.13, and 3.14; retain the existing 3.7 to 3.9 coverage.
  • Remove unused astropy and the legacy tar.bz2 Conda package restriction.
  • Replace the deprecated Codecov curl uploader with codecov-action v5; uploads are non-blocking and use the CODECOV_TOKEN secret.
  • Update the Sphinx CSS API and language setting for current Sphinx.

Validation

  • pip Docker image, linux/amd64: C++ test, installed-package import, and all 35 Python tests passed.
  • Conda Docker image, linux/amd64, Python 3.12: C++ test, installation into the active Conda environment, installed-package import, and all 35 Python tests passed.
  • The GitHub Actions matrix validates the additional Python versions.

CUDA

CUDA configuration and GPU targets are unchanged. The Docker harnesses intentionally configure CPU-only builds because they run without an NVIDIA toolkit or GPU. GPU compilation remains to be validated on a compatible NVIDIA runner.

Follow-up

The legacy FindCython.cmake and UseCython.cmake modules can still emit CMP0148 policy warnings with recent CMake; modernizing those modules is intentionally deferred.

@mtazzari mtazzari changed the title Add Linux build test harness Fix compile issues Cmake error #200 and cython #201 Aug 29, 2026
@mtazzari

mtazzari commented Aug 30, 2026

Copy link
Copy Markdown
Owner Author

The reported GreatCMakeCookOff PythonInstall.cmake CMP0148 warning when running cmake

...
-- Building the galario python wrapper
CMake Warning (policy) at build/external/src/GreatCMakeCookOff/scripts/PythonInstall.cmake:3 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):
  python/CMakeLists.txt:52 (include)
This warning is for project developers.  Use -Wno-author or -Wno-policy to
suppress it.
...

comes from the current master version of python/CMakeLists.txt, which still includes the legacy PythonInstall helper. This PR replaces that helper with a Python-standard-library installation-path calculation, removing both that warning source and the distutils dependency that blocks Python 3.12+.

Separate CMP0148 warnings may remain from the legacy FindCython.cmake and UseCython.cmake modules. They are not blockers for this PR.

@mtazzari mtazzari changed the title Fix compile issues Cmake error #200 and cython #201 Fix cmake and Cython compile issues; update GH Action CI; extend support for python 3.12, 3.13, 3.14 Aug 30, 2026
@mtazzari
mtazzari merged commit 4c0fd76 into master Aug 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

build fails with cmake 4

1 participant