Skip to content

ci: release on push to main, matching openadapt-privacy - #9

Draft
abrichr wants to merge 1 commit into
mainfrom
ci/release-on-push
Draft

ci: release on push to main, matching openadapt-privacy#9
abrichr wants to merge 1 commit into
mainfrom
ci/release-on-push

Conversation

@abrichr

@abrichr abrichr commented Jul 28, 2026

Copy link
Copy Markdown
Member

What this changes

One line of substance: the release trigger goes from workflow_dispatch back to
push: branches: [main]. The GH006 repair (secrets.ADMIN_TOKEN) is kept
exactly as-is. The result is byte-for-byte the same shape as
openadapt-privacy, which had the identical failure on 2026-02-18, was
repaired on 2026-07-15, stayed push-triggered, and has been green since.

Why the stated reason for dispatch-only does not hold

Dispatch-only was chosen so that merging would not "publish a version whose sole
content is a version bump". Whether a merge releases is decided by the commit
message, not by the trigger. This package's pyproject.toml says:

[tool.semantic_release.commit_parser_options]
allowed_tags = ["build", "chore", "ci", "docs", "feat", "fix", "perf", "refactor", "style", "test"]
minor_tags = ["feat"]
patch_tags = ["fix", "perf"]

Only feat, fix and perf move a version. A ci: or chore: merge runs the
workflow, reports no release, and exits green. openadapt-privacy is the
control: 4 chore:/docs: commits since v1.0.0, 4 green push-triggered
release runs, PyPI still on 1.0.0.

Cost of dispatch-only

  • The release badge in README.md still reads "Release and PyPI Publish -
    failing"
    right now, and dispatch-only means no future push ever replaces it.
  • Somebody has to remember to run three releases by hand.
  • This repository behaves unlike its siblings. That divergence is what let the
    GH006 failure sit unseen from 2026-02-18 to 2026-07-27.

DRAFT — merging this publishes v0.1.3

Not a defect in this PR; a consequence of the commits already on main.
python-semantic-release considers everything since v0.1.2:

Those fix: commits are version-bumping, so the first push-triggered run after
this merges will publish v0.1.3 to PyPI and GitHub Releases. That is
legitimate unreleased work, but it is a release, so this PR stays a draft until
a human says go.

This PR's own commit is typed ci: and cannot cause a release by itself.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM

The GH006 repair (ADMIN_TOKEN) is kept. The trigger goes back to push.

Dispatch-only was adopted on the reasoning that merging would publish a
release whose only content was a CI-config change. That is a commit-message
choice, not a property of the trigger: this package's
[tool.semantic_release.commit_parser_options] sets minor_tags = ["feat"] and
patch_tags = ["fix", "perf"], so ci/chore/docs/build/refactor/style/test
commits publish nothing and the run exits green reporting no release.
openadapt-privacy is the control: four chore/docs commits since v1.0.0, four
green push-triggered release runs, PyPI still 1.0.0.

Dispatch-only also leaves this repository's release badge stuck on its last
failure and makes it behave unlike its siblings, which is the drift that hid
the five-month GH006 failure in the first place.

This commit is deliberately typed `ci:` so it cannot itself cause a release.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
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