Skip to content

ci: allow CI to be triggered on demand - #11

Merged
scarmuega merged 1 commit into
mainfrom
ci/workflow-dispatch
Aug 26, 2026
Merged

ci: allow CI to be triggered on demand#11
scarmuega merged 1 commit into
mainfrom
ci/workflow-dispatch

Conversation

@scarmuega

Copy link
Copy Markdown
Member

Adds workflow_dispatch to ci.yml. Three lines, no change to the existing pull_request / push triggers.

Why

CI on main was last green on 2026-05-21. There is currently no way to re-check it:

  • GitHub refuses to re-run a workflow run older than 30 days, so the May run is frozen.
  • Both jobs run poetry lock rather than installing from the committed poetry.lock, so every run resolves against live PyPI. pipx install poetry is unpinned too. The environment three months on is not the environment that went green.

That leaves a release tag as the only way to exercise the pipeline — and a tag publishes. Under the umbrella contract a tag is also single-use (§3: "tags are never moved or re-pointed"), so a toolchain failure discovered that way burns the version number.

workflow_dispatch makes the check available on demand, which matters ahead of the pending v0.2.0 release: PyPI currently serves 0.1.0 from July 2024, pinned to spec 0.5.1, while main has been sitting on spec 0.19.2 unreleased since May.

Contract

The release pipeline is untouched and stays tag-only. §2 permits workflow_dispatch on the release workflow but bars it from publishing without tag context; the CI pipeline carries no such restriction.

Follow-up

The poetry lock-on-every-run behavior is the underlying nondeterminism. Regenerating the committed lockfile and installing from it is the real fix, kept out of this PR to keep it to one concern.

🤖 Generated with Claude Code

GitHub disables re-running a workflow run once it is older than 30 days, and
both jobs run `poetry lock` against live PyPI rather than the committed
lockfile. Together that means there is no way to check whether the toolchain
has drifted since the last push — the only signal is a release tag, which
publishes.

`workflow_dispatch` makes CI re-runnable at any time. The release pipeline is
untouched: it stays tag-only, as the umbrella contract requires.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@scarmuega scarmuega closed this Aug 26, 2026
@scarmuega scarmuega reopened this Aug 26, 2026
@scarmuega
scarmuega merged commit 74dc5eb into main Aug 26, 2026
@scarmuega
scarmuega deleted the ci/workflow-dispatch branch August 26, 2026 15:55
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