cpython/Tools/pixi-packages
Lucas Colley 8bb5b6e8ce
gh-142466: Pixi package definitions for downstream use (#142469)
* WIP: ENH: Pixi package definitions for downstream development

[skip ci]

* linux-64 support

* tidy gitignore

* respond to review
- switch cases on `PYTHON_VARIANT`
- remove `minor_version` by using `python3`
- remove runtime-only asan options

* README updates

* use `.md` to preview rendering

* Apply suggestions from code review

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

* Apply suggestion from @FFY00

Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>

* Apply suggestion from @FFY00

Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>

* Apply suggestion from @FFY00

Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>

* Apply suggestion from @lucascolley

---------

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
2025-12-15 15:04:16 +00:00
..
asan gh-142466: Pixi package definitions for downstream use (#142469) 2025-12-15 15:04:16 +00:00
default gh-142466: Pixi package definitions for downstream use (#142469) 2025-12-15 15:04:16 +00:00
build.sh gh-142466: Pixi package definitions for downstream use (#142469) 2025-12-15 15:04:16 +00:00
README.md gh-142466: Pixi package definitions for downstream use (#142469) 2025-12-15 15:04:16 +00:00

CPython Pixi packages

This directory contains definitions for Pixi packages which can be built from the CPython source code.

Downstream developers can make use of these packages by adding them as Git dependencies in a Pixi workspace, like:

[dependencies]
python = { git = "https://github.com/python/cpython", subdirectory = "Tools/pixi-packages/asan" }

This is particularly useful when developers need to build CPython from source (for example, for an ASan-instrumented build), as it does not require any manual clone or build steps. Instead, Pixi will automatically handle both the build and installation of the package.

Each package definition is contained in a subdirectory, but they share the build script build.sh in this directory. Currently defined package variants:

  • default
  • asan: ASan-instrumented build with PYTHON_ASAN=1

Maintenance

  • Keep the version fields in each recipe.yaml up to date with the Python version
  • Keep the dependency requirements up to date in each recipe.yaml
  • Update build.sh for any breaking changes in the configure and make workflow

Opportunities for future improvement