Skip to content

Prepare 0.2.0 for PyPI - #1

Merged
anorouzii merged 2 commits into
mainfrom
release/v0.2.0
Sep 13, 2026
Merged

anorouzii merged 2 commits into
mainfrom
release/v0.2.0

Conversation

@anorouzii

Copy link
Copy Markdown
Contributor

Prepares the first PyPI release of FlowRoute. The name flowroute is unclaimed on PyPI — no flowroute* package exists today.

What is here

README.md — badges, a documentation link block, a "When FlowRoute fits" section, and the narrowing guarantee under the pipeline diagram. The README is the PyPI long description, so this is the project page.

.github/workflows/release.yml — publishes on v* tags using PyPI trusted publishing (OIDC). No API token is stored anywhere:

  • build and publish are separate jobs, and only publish holds id-token: write, so build-time dependencies never sit in a job that can mint the OIDC credential;
  • the build refuses to publish when the tag does not match pyproject.toml (v0.3.0 against a 0.2.0 pyproject fails closed rather than shipping a mislabelled release);
  • the wheel is installed into a clean virtualenv and routed against examples/workflows.yaml before the artifact reaches publish.

Verified locally against this branch

Check Result
pytest -q 57 passed
ruff check src tests training examples clean
mypy --no-incremental src/flowroute 19 files, no issues
python -m build sdist + wheel
twine check dist/* both PASSED
Clean-room wheel install imports, CLI returns ROUTE / orders.get_status
pip check no broken requirements
mkdocs build --strict clean

Before this can publish

PyPI needs a pending publisher for flowroute — repository open-first/FlowRoute, workflow release.yml, environment pypi — and a matching pypi environment on the repo. Tagging v0.2.0 after merge then publishes.

Until that is configured the workflow will fail at the publish step, which is the safe direction: 0.2.0 can never be re-uploaded once it lands.

🤖 Generated with Claude Code

anorouzii and others added 2 commits September 13, 2026 19:30
Add CI, docs, Python and license badges, a documentation link block, and a
"When FlowRoute fits" section that states the selector boundary up front.
Explain the narrowing guarantee under the pipeline diagram and point the
documentation section at the published site rather than local Markdown.

The README is the PyPI long description, so this is the first thing a reader
sees on the project page.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Release on v* tags via a build job and a separate publish job that holds the
only id-token: write permission, so build-time dependencies cannot reach the
OIDC credential. No API token is stored in the repository.

The build job refuses to publish when the tag does not match the version in
pyproject.toml, and smoke tests the built wheel in a clean virtualenv before
the artifact is handed to the publish job.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@anorouzii
anorouzii merged commit b4e22a5 into main Sep 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant