Skip to content

Conversation

@lonvia
Copy link
Member

@lonvia lonvia commented Aug 28, 2025

This updates the build system and the CI runs:

  • Switch to scikit-build-core for building.
  • Use cmake to get the libosmium and protozero dependencies. This means that CMakeLists.txt ist now the only place where versions need to be adapted. Switch to referring to versions by hash instead of tag for security reasons.
  • version.py is not dynamically built by cmake and always reflects the version of the dependencies that were really used to build.
  • Move tool scripts into the package, so that the modern way of declaring scripts in pyproject.toml can be used.
  • Update to the newest version of cibuildwheel and enable builds for free-threaded Python and arm architecture on all platforms.

With the updated build scripts, pyosmium switches to the standard method of declaring custom locations for libosmium, protozero and boost via Libosmium_ROOT, Protozero_ROOT and Boost_ROOT. The old method of setting LIBOSMIUM_PREFIX and PROTOZERO_PREFIX will continue to work for a while but is considered deprecated. pybind11 is not always installed via 'build'.

Because of the way that scikit-build-core works, the old development setup where one could build into the build directory no longer works. The README describes the new recommended way via editable builds.

@lonvia lonvia merged commit 3c09638 into osmcode:master Aug 29, 2025
28 checks passed
@lonvia lonvia deleted the rewrite-build-system branch August 29, 2025 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant