Release Checklist

FreshForge 0.1.0a5 is released as the first PyPI alpha package and as a GitHub prerelease with checked package artifacts.

Local Verification

Run the acceptance checks from a clean checkout:

python -m pip install -e .[dev]
python -m ruff check .
python -m pytest
sphinx-build -b html docs _build/html -W
python -m build
twine check dist/*

Inspect the release artifact contract:

  • the source distribution includes tracked files under examples/;

  • the wheel metadata includes the freshforge.providers entry-point group;

  • freshforge providers --json lists freshforge.example and freshforge.fixture;

  • freshforge plan examples/ecosystem_adapter_workflow.yaml --json resolves both providers.

  • freshforge --version reports freshforge 0.1.0a5.

  • freshforge run --help is available.

  • freshforge run supports --namespace and JSON summaries.

  • freshforge matrix --help is available.

  • freshforge matrix plan examples/run_matrix.yaml --json succeeds.

Tag And Release

The release tag is v0.1.0a5 and the GitHub release title is FreshForge 0.1.0a5.

Closeout sequence:

  1. Merge the Phase 12 pull request after CI passes.

  2. Verify the Docs workflow deploys successfully on main.

  3. Verify the live docs root, examples page, and this release checklist page.

  4. Confirm the PyPI trusted publisher is configured for project freshforge with repository UBC-FRESH/freshforge, workflow release.yml, and environment pypi.

  5. Create and push tag v0.1.0a5.

  6. Wait for the release-artifact workflow to pass for the tag and publish to PyPI.

  7. Download or otherwise inspect the workflow-built artifacts.

  8. Create the GitHub prerelease and attach the checked artifacts.

  9. Verify a clean PyPI install reports freshforge 0.1.0a5.

PyPI Publication

PyPI publication uses GitHub trusted publishing through the release workflow’s pypi environment. Do not push the release tag until the corresponding PyPI publisher has been configured by a maintainer.