Skip to content

Releases

python-mcp-bootstrap v0.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 01:52
Immutable release. Only release title and notes can be modified.
fd8e0b9

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 raise required.
  • BootstrapSpec.requirements installs project-relative, hash-pinned
    requirement files with uv pip install --require-hashes -r <file> before the
    project install, which then runs with --no-deps. Failures return
    runtime_requirements_failed (exit 5) 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.15 with
    check-latest: true and records the resolved patch with python -VV.
    Release and build jobs keep the exact 3.15.2 pin.
  • Committed .python-version files name the 3.15 line; provisioning still
    writes the exact PIN 3.15.2, and release_check enforces that split.
  • docs/version-policy.md records 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.0 is an annotated tag. prepare-release builds 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.json bundles, and provenance.intoto.jsonl.

Artifacts

  • python_mcp_bootstrap-0.2.0-py3-none-any.whl
  • python_mcp_bootstrap-0.2.0.tar.gz
  • SHA256SUMS, three .sigstore.json bundles, and provenance.intoto.jsonl

python-mcp-bootstrap v0.1.6

Choose a tag to compare

@github-actions github-actions released this 04 Nov 23:00
Immutable release. Only release title and notes can be modified.
6ccb91c

python-mcp-bootstrap v0.1.6

First release produced and verified by the hardened draft-first gates.

Highlights

  • The prepare-release final gate now verifies the draft release assets
    (releases-list resolution plus asset-id downloads) instead of skipping a
    release it could not read through gh release view. The release gate also
    rejects duplicate changelog headings.
  • --python values beginning with - are usage errors (python_flag_missing,
    exit 2); verify_import rejects Python keywords; card must 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 -m version 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.6 is an annotated tag. prepare-release builds 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.json bundles, and provenance.intoto.jsonl.
  • Tags are unsigned; artifact signatures and provenance live in the release
    assets.

Artifacts

  • python_mcp_bootstrap-0.1.6-py3-none-any.whl
  • python_mcp_bootstrap-0.1.6.tar.gz
  • SHA256SUMS, three .sigstore.json bundles, and provenance.intoto.jsonl

python-mcp-bootstrap v0.1.5

Choose a tag to compare

@github-actions github-actions released this 04 Nov 20:25
Immutable release. Only release title and notes can be modified.
a851884

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.3 remains a GitHub-only release with verified assets, but it is not
    installable from PyPI.
  • 0.1.4 is skipped.
  • 0.1.5 is the PyPI release that supersedes 0.1.2.

What changed in 0.1.3 (included here)

  • The v0.1.2 sdist could not run its bundled test suite. The sdist now ships
    requirements-ci.txt and requirements-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.yml verifies build provenance for the sdist as well as the wheel.
  • CI builds with the pinned backend (--no-isolation); release-gate.yml no
    longer waits for assets that already exist.
  • README and CONTRIBUTING corrections for the v0.1.2 provenance wording and
    the macOS CI schedule.

Release integrity

  • v0.1.5 is an annotated tag. Assets are built once by prepare-release,
    attached to a draft, verified, and only then published; the release is
    immutable with seven assets: wheel, sdist, SHA256SUMS, three
    .sigstore.json bundles, and provenance.intoto.jsonl.
  • publish.yml verifies 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.whl
  • python_mcp_bootstrap-0.1.5.tar.gz
  • SHA256SUMS, three .sigstore.json bundles, and provenance.intoto.jsonl

python-mcp-bootstrap v0.1.3

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:56
Immutable release. Only release title and notes can be modified.
a1c1ba1

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

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:26
Immutable release. Only release title and notes can be modified.
2235382

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.yml builds, checksums, attests and
    signs the wheel, sdist and SHA256SUMS, attaches them to a draft, and
    verifies the draft. publish.yml then verifies the published assets and
    publishes to PyPI last, with no permission to modify release assets.
  • verify_import runs on every interpreter branch; explicit --python
    failures report verify_import_failed (exit 5), and an unstattable
    interpreter reports exec_failed (exit 8).
  • BootstrapSpec is truly immutable and validates required at construction.
  • Credential redaction covers Basic/Bearer/Token/Digest headers, URL passwords
    containing /, and keys such as AWS_SECRET_ACCESS_KEY.
  • install_args reject 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.2 is an annotated tag; the release is published from a verified draft
    and is immutable with seven assets: wheel, sdist, SHA256SUMS, three
    .sigstore.json bundles, and provenance.intoto.jsonl.
  • publish.yml verifies 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.1 has 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.whl
  • python_mcp_bootstrap-0.1.2.tar.gz
  • SHA256SUMS, three .sigstore.json bundles, and provenance.intoto.jsonl

v0.1.0

Choose a tag to compare

@4zhmv6zvj2-afk 4zhmv6zvj2-afk released this 04 Nov 13:11

python-mcp-bootstrap v0.1.0

First release of the shared pre-install Python bootstrap for MCP applications.

Highlights

  • Python floor 3.14, provisioning pin 3.15.2.
  • Explicit --install-python consent 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
    reports missing_continuation (exit 7) rather than re-executing the entry
    point; a wrapper that branches on spec.env_var continues normally.
  • Path-like install_args and venv-redirecting flags are rejected before any
    subprocess starts.
  • pin must be a plain final version at or above required.
  • Windows-aware handoff and uv discovery.
  • Project-path validation and credential-redacted diagnostics.
  • Vendoring tooling that copies core.py and writes a VENDOR.json manifest.
  • 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 .venv move or the
    provisioning steps.

Install and verify

python -m pip install python-mcp-bootstrap
python -m python_mcp_bootstrap --check

Vendor into a consumer

python scripts/vendor.py \
  --target /path/to/consumer \
  --dest src/example/_vendor/python_mcp_bootstrap.py

Use --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. SHA256SUMS covers 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.whl
  • python_mcp_bootstrap-0.1.0.tar.gz