Skip to content

Releases: tttapa/py-build-cmake

0.3.0

25 Nov 23:39
59c10bc
Compare
Choose a tag to compare
  • Improved configuration file format
  • Command-line overrides
  • Support for multiple CMake build trees in one package
  • PEP 420 namespace package support
  • Reproducible builds
  • CMake preset support (e.g. Conan)
  • Allow overriding Wheel tags
  • Support guessing Wheel tags based on the current platform
  • Support for ABI3 Wheels
  • Multiple editable installation modes
  • Editable build hook mode that automatically re-builds extension modules
  • Cross-compilation workflow documentation
  • Automatic CIBW cross-compilation support for macOS and Windows on ARM
  • Extensive testing (unit tests, package content checks, cibuildwheel tests)
  • Pre-commit Ruff and Mypy checks
  • Better error reporting
  • Pass a virtual environment's Ninja path to CMake explicitly
  • Dropped flit_core dependency
  • Removed convoluted cross.copy_from_native_build option
  • Improved CMake FindPython hints

Simple [tool.py-build-cmake] configurations in pyproject.toml should be mostly backward compatible, but some options have moved. See https://tttapa.github.io/py-build-cmake/Config.html for details about the new config format.

Full Changelog: 0.1.8...0.3.0

0.3.0a3

25 Nov 01:01
Compare
Choose a tag to compare
0.3.0a3 Pre-release
Pre-release
  • Add cmake.install_config option
  • Improve FindPython hints

Full Changelog: 0.3.0a2...0.3.0a3

0.3.0a2

21 Nov 23:00
Compare
Choose a tag to compare
0.3.0a2 Pre-release
Pre-release
  • Use CMake config with index 0 as default for CLI

Full Changelog: 0.3.0a1...0.3.0a2

0.3.0a1

21 Nov 18:45
Compare
Choose a tag to compare
0.3.0a1 Pre-release
Pre-release
  • New wheel config section to specify Wheel tags (Python tag, ABI tag, platform tag, build tag)
  • Support guessing an appropriate value for the platform tag based on the current environment
  • Command-line overrides using -C override=cmake.options.FOO=bar
  • Custom .pbc config file format in addition to TOML to allow fine-grained control over options
  • Support workflows with multiple independent CMake build trees
  • Set find_python=True and find_python3=True by default
  • Use the Cartesian product of CMake configs and build preset (instead of the union)
  • Make sure the correct version of Ninja is used, even inside of temporary virtual environments
  • Upgrade pybind11 and nanobind, simplify stub generation, simplify cross-compilation
  • Colored help output from py-build-cmake config format
  • Improved error reporting

Full Changelog: 0.2.0a14...0.3.0a1

0.2.0a14

22 May 22:08
Compare
Choose a tag to compare
0.2.0a14 Pre-release
Pre-release
  • Improved cross-compilation support
  • Updated cross-compilation documentation
  • Treat empty path in config file as None

Full Changelog: 0.2.0a13...0.2.0a14

0.2.0a13

19 May 20:44
Compare
Choose a tag to compare
0.2.0a13 Pre-release
Pre-release
  • New build hook to automatically re-build extension modules on first import
  • Support for CMake presets
  • Allow customizing build path
  • Updated configuration file checker
  • CMake pre-load file improvements
  • Improved namespace package and generated module support
  • Update pybind11 and nanobind
  • CMake option merging, allow boolean CMake options
  • ARM64 macOS tests
  • Python 3.13 beta support

Full Changelog: 0.2.0a12...0.2.0a13

0.2.0a12

09 Feb 18:51
Compare
Choose a tag to compare
0.2.0a12 Pre-release
Pre-release
  • List config options behavior changed, see docs/Config.md for details
  • Allow specifying override behavior of ListOfStrConfigOption

Full Changelog: 0.2.0a11...0.2.0a12

0.2.0a11

07 Feb 16:48
Compare
Choose a tag to compare
0.2.0a11 Pre-release
Pre-release
  • Improved CMake preset support

Full Changelog: 0.2.0a10...0.2.0a11

0.2.0a10

27 Jan 22:06
Compare
Choose a tag to compare
0.2.0a10 Pre-release
Pre-release
  • Run stubgen after CMake install.
    Custom hand-written stubs or stubs generated by CMake are not replaced,
    only stubs for modules that do not have any stubs yet are installed.
  • Set CMake options in cache pre-load script instead of command line arguments.

Full Changelog: 0.2.0a9...0.2.0a10

0.2.0a9

21 Nov 23:48
Compare
Choose a tag to compare
0.2.0a9 Pre-release
Pre-release
  • Don't use -A for non-VS generators Windows (#21)
  • Support generated modules/packages (#22)

Full Changelog: 0.2.0a8...0.2.0a9