Builds exact-patch CPython prerequisite bundles for Retrace. The producer owns
the CPython compiler/configuration profile; it does not contain Retrace overlay
sources or build _retrace.
The producer contains no supported CPython version list. Exact tags are inputs, so a new CPython patch release requires no source change here. One immutable artifact contains one exact patch in both release and debug modes. Consumers download and extract the exact artifacts they need.
macOS builds target macOS 11.0 by default. Override
MACOSX_DEPLOYMENT_TARGET only when intentionally producing a distinct
compatibility profile.
make build PYTHON_TAG=v3.12.8 BUILD_MODE=release \
CPYTHON_REPO_URL=file:///opt/cpython.git
make build PYTHON_TAG=v3.12.8 BUILD_MODE=debug \
CPYTHON_REPO_URL=file:///opt/cpython.git
make build-all PYTHON_TAG=v3.12.8 \
CPYTHON_REPO_URL=file:///opt/cpython.gitEach mode has an independent out-of-tree build under
build/v<version>/<mode>/. The pristine exact-tag checkout is shared at
build/v<version>/source/.
Create and verify a deterministic, maximum-compression XZ bundle containing pristine source and both build modes for one exact tag:
make pack verify PYTHON_TAG=v3.12.8 PRODUCER_VERSION=0.2.0The archive has no build/ wrapper. Its entries are directly rooted at patch
directories:
v3.12.8/source/
v3.12.8/release/
v3.12.8/debug/
retrace-libpython-manifest.json
It can therefore be extracted directly into a consumer's build/ directory.
Install the bundle into a different root and validate its relocated interpreters:
make install PYTHON_TAG=v3.12.8 PRODUCER_VERSION=0.2.0 \
DESTINATION=/path/to/retrace-eval/buildEach installed mode provides:
python: the raw CPython executable, suitable for symbol inspection;python-relocatable: a launcher that resolves the bundled standard library and native modules relative to the installed artifact;libpython.a,pyconfig.h, generated build metadata, and native standard library modules.
The bundle deliberately excludes CPython object files and all Retrace overlay, transformation, filtering, and extension outputs.
Install oras, authenticate to GHCR, and publish or fetch the immutable
identity derived from the producer version, exact CPython tag, platform,
architecture, and profile:
make push PYTHON_TAG=v3.12.8 PRODUCER_VERSION=0.2.0
make pull PYTHON_TAG=v3.12.8 PRODUCER_VERSION=0.2.0An existing concrete tag is never replaced. Registry transport is optional; all build, pack, verify, and install operations work locally.
The artifact workflow accepts one exact python_tag and an optional target
platform. Exact artifacts remain immutable and are the only bundles this
repository produces.
artifacts.yml receives one final tag such as v3.14.5 and produces one
immutable exact artifact for each selected platform. The supported targets are
linux-x86_64, linux-arm64, macos-x86_64, and macos-arm64. Consumers
needing multiple patch releases pull those exact artifacts independently and
extract each into the same build/ directory.
Publishing requires dispatching from a retrace-libpython release tag.
The repository has no automatic push, tag, or scheduled artifact builds;
callers and people explicitly request each exact patch they need.