Repository navigation
Releases
python-mcp-bootstrap v0.2.0
python-mcp-bootstrap v0.2.0
One Python floor for the bootstrap and its consumers, and the hash-pinned
runtime install becomes an upstream feature.
Highlights
- Python floor is 3.12:
requires-python = ">=3.12",core.REQUIRED = (3, 12, 0),
supported interpreters 3.12–3.15. Consumers may still raiserequired. BootstrapSpec.requirementsinstalls project-relative, hash-pinned
requirement files withuv pip install --require-hashes -r <file>before the
project install, which then runs with--no-deps. Failures return
runtime_requirements_failed(exit5) before the project install. This is
the upstream form of the per-consumer patch that vendored copies carried.- CI uses the minor lines
3.12,3.13,3.14,3.15with
check-latest: trueand records the resolved patch withpython -VV.
Release and build jobs keep the exact 3.15.2 pin. - Committed
.python-versionfiles name the3.15line; provisioning still
writes the exactPIN3.15.2, andrelease_checkenforces that split. docs/version-policy.mdrecords the shared floor/line/pin policy for all
Python repos.- README, CONTRIBUTING, the contract, and the integration guide document the
single floor, vendoring as the recommended pre-install pattern, and the
two-phase requirements install.
Release integrity
v0.2.0is an annotated tag.prepare-releasebuilds from the tag, writes
SHA256SUMS, creates a draft, uploads the assets, attests provenance, signs
every artifact, and verifies the draft. Publishing the draft fires
publish.yml, which verifies checksums, the full release gate, and both
artifact attestations before publishing to PyPI last with OIDC trusted
publishing.- The release is immutable with seven assets: wheel, sdist,
SHA256SUMS, three
.sigstore.jsonbundles, andprovenance.intoto.jsonl.
Artifacts
python_mcp_bootstrap-0.2.0-py3-none-any.whlpython_mcp_bootstrap-0.2.0.tar.gzSHA256SUMS, three.sigstore.jsonbundles, andprovenance.intoto.jsonl
python-mcp-bootstrap v0.1.6
python-mcp-bootstrap v0.1.6
First release produced and verified by the hardened draft-first gates.
Highlights
- The
prepare-releasefinal gate now verifies the draft release assets
(releases-list resolution plus asset-id downloads) instead of skipping a
release it could not read throughgh release view. The release gate also
rejects duplicate changelog headings. --pythonvalues beginning with-are usage errors (python_flag_missing,
exit2);verify_importrejects Python keywords;cardmust be non-empty;
URL redaction masks passwords containing@through the last@.- Coverage and strict mypy now include
scripts/; packaging tests cover
distribution metadata, the console-script entry point,__all__, and the
python -mversion smoke. - README gained "Why this is public", PyPI-friendly absolute links, and an
accurate version history; CONTRIBUTING documents that the only version
literal is__init__.__version__. - The version is single-sourced from
__init__.__version__;pyproject.toml
has no version, and the wheel job checks that installed metadata matches.
Release integrity
v0.1.6is an annotated tag.prepare-releasebuilds from the tag, writes
SHA256SUMS, creates a draft, uploads the assets, attests provenance, signs
every artifact, and verifies the draft. Publishing the draft fires
publish.yml, which verifies checksums, the full release gate, and both
artifact attestations before publishing to PyPI last with OIDC trusted
publishing.- The release is immutable with seven assets: wheel, sdist,
SHA256SUMS, three
.sigstore.jsonbundles, andprovenance.intoto.jsonl. - Tags are unsigned; artifact signatures and provenance live in the release
assets.
Artifacts
python_mcp_bootstrap-0.1.6-py3-none-any.whlpython_mcp_bootstrap-0.1.6.tar.gzSHA256SUMS, three.sigstore.jsonbundles, andprovenance.intoto.jsonl
python-mcp-bootstrap v0.1.5
python-mcp-bootstrap v0.1.5
First installable release after PyPI 0.1.2. The code is identical to 0.1.3;
only the version string and documentation differ.
Why the version jumps from 0.1.2 to 0.1.5
An earlier iteration of this repository published 0.1.3 and 0.1.4 through
trusted publishing. Those releases were deleted when the repository history
was replaced. PyPI permanently reserves the filenames of a deleted release, so
neither version can ever be uploaded again. 0.1.5 is the first free version
number.
v0.1.3remains a GitHub-only release with verified assets, but it is not
installable from PyPI.0.1.4is skipped.0.1.5is the PyPI release that supersedes 0.1.2.
What changed in 0.1.3 (included here)
- The
v0.1.2sdist could not run its bundled test suite. The sdist now ships
requirements-ci.txtandrequirements-build.txt, repository-only workflow
tests skip when.github/is absent, and CI runs the extracted-sdist suite. - Provisioning uses
uv pip install --python <venv python> <install_args>, so
a trailing consumer-supplied flag cannot swallow the interpreter argument. publish.ymlverifies build provenance for the sdist as well as the wheel.- CI builds with the pinned backend (
--no-isolation);release-gate.ymlno
longer waits for assets that already exist. - README and CONTRIBUTING corrections for the
v0.1.2provenance wording and
the macOS CI schedule.
Release integrity
v0.1.5is an annotated tag. Assets are built once byprepare-release,
attached to a draft, verified, and only then published; the release is
immutable with seven assets: wheel, sdist,SHA256SUMS, three
.sigstore.jsonbundles, andprovenance.intoto.jsonl.publish.ymlverifies checksums, the full release gate, and both artifact
attestations before publishing to PyPI last with OIDC trusted publishing.
Artifacts
python_mcp_bootstrap-0.1.5-py3-none-any.whlpython_mcp_bootstrap-0.1.5.tar.gzSHA256SUMS, three.sigstore.jsonbundles, andprovenance.intoto.jsonl
python-mcp-bootstrap v0.1.3
python-mcp-bootstrap v0.1.3
This release exists on GitHub only. PyPI permanently reserves the
python_mcp_bootstrap-0.1.3-* filenames because an earlier iteration of this
repository published and then deleted that version; publishing 0.1.3 to PyPI
is therefore impossible. The verified assets here (wheel, sdist,
SHA256SUMS, three Sigstore bundles and build provenance) remain the audit
record.
Installable equivalent: v0.1.5,
the first release after PyPI 0.1.2. See the 0.1.5 notes for the included
changes.
python-mcp-bootstrap v0.1.2
python-mcp-bootstrap v0.1.2
First published release of the hardened 0.1.x line, and the first release
produced by the draft-first pipeline.
Why 0.1.2 and not 0.1.1
v0.1.1 was tagged on the same content, but its release could not be
republished: GitHub's immutable-release rule burns the tag name once the
original immutable release is deleted (tag_name was used by an immutable release). The tag is kept as history; this release ships the same content
under a fresh tag.
Highlights
- Draft-first artifacts:
prepare-release.ymlbuilds, checksums, attests and
signs the wheel, sdist andSHA256SUMS, attaches them to a draft, and
verifies the draft.publish.ymlthen verifies the published assets and
publishes to PyPI last, with no permission to modify release assets. verify_importruns on every interpreter branch; explicit--python
failures reportverify_import_failed(exit5), and an unstattable
interpreter reportsexec_failed(exit8).BootstrapSpecis truly immutable and validatesrequiredat construction.- Credential redaction covers Basic/Bearer/Token/Digest headers, URL passwords
containing/, and keys such asAWS_SECRET_ACCESS_KEY. install_argsreject system-modifying flags,file:URLs, drive-relative
Windows paths, and value-swallowing long flags.- Older uv versions produce an actionable upgrade tip on provisioning failure.
Release integrity
v0.1.2is an annotated tag; the release is published from a verified draft
and is immutable with seven assets: wheel, sdist,SHA256SUMS, three
.sigstore.jsonbundles, andprovenance.intoto.jsonl.publish.ymlverifies checksums, the full release gate, and the build
provenance attestation before publishing to PyPI with OIDC trusted
publishing. No stored PyPI token exists.- Tags are unsigned; the artifact signatures and provenance live in the release
assets.
Honest limits
v0.1.1has a tag but no release and was never published to PyPI.- Path checks stay lexical (symlinks are not resolved); concurrent first runs
against one project are not supported. - Still alpha: the contract and exit codes follow semantic versioning.
Artifacts
python_mcp_bootstrap-0.1.2-py3-none-any.whlpython_mcp_bootstrap-0.1.2.tar.gzSHA256SUMS, three.sigstore.jsonbundles, andprovenance.intoto.jsonl
v0.1.0
python-mcp-bootstrap v0.1.0
First release of the shared pre-install Python bootstrap for MCP applications.
Highlights
- Python floor
3.14, provisioning pin3.15.2. - Explicit
--install-pythonconsent before any download. - Project-local uv-managed interpreter and
.venv; the system Python is not
changed. - Selection order:
--python, the running interpreter, an existing.venv,
then the consent card. - Install verification, atomic pin writes, broken-venv preservation, and typed
failure results. - The good-running path hands off once and records the interpreter in
spec.env_var. A later pass with that variable set and no continuation
reportsmissing_continuation(exit7) rather than re-executing the entry
point; a wrapper that branches onspec.env_varcontinues normally. - Path-like
install_argsand venv-redirecting flags are rejected before any
subprocess starts. pinmust be a plain final version at or aboverequired.- Windows-aware handoff and uv discovery.
- Project-path validation and credential-redacted diagnostics.
- Vendoring tooling that copies
core.pyand writes aVENDOR.jsonmanifest. - CI on Python 3.14.10 and 3.15.2 on Ubuntu, macOS, and Windows, plus a 3.12
compatibility job and a wheel/release gate.
Honest limits
- Path checks are lexical: they reject absolute, rooted, and
..values but
do not resolve symlinks. A symlink inside the project can still point
outside; the consumer owns that boundary. - Concurrent first runs against one project are not supported. Run one
bootstrap at a time; there is no lock around the.venvmove or the
provisioning steps.
Install and verify
python -m pip install python-mcp-bootstrap
python -m python_mcp_bootstrap --checkVendor into a consumer
python scripts/vendor.py \
--target /path/to/consumer \
--dest src/example/_vendor/python_mcp_bootstrap.pyUse --check to verify the pinned copy without writing.
Release integrity
- v0.1.0 is the first release and is an annotated tag.
- The wheel and sdist are attached to this GitHub release and published to
PyPI by the OIDC workflow;dist/stays gitignored.SHA256SUMScovers the
wheel and sdist. - Tags are unsigned for now. An unsigned tag is not a signature; verify the
artifacts by digest.
Artifacts
python_mcp_bootstrap-0.1.0-py3-none-any.whlpython_mcp_bootstrap-0.1.0.tar.gz