Skip to content

ci(release): tag, release and publish from CI - #12

Merged
chaliy merged 1 commit into
mainfrom
claude/project-thread-gtqhrp
Oct 13, 2026
Merged

chaliy merged 1 commit into
mainfrom
claude/project-thread-gtqhrp

Conversation

@chaliy

@chaliy chaliy commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Before: a release needed someone to push a v* tag from a local clone, and crates.io publishing was a separate manual run. A re-run failed on crates that were already published. markkit 0.1.0 is on crates.io but has no tag and no GitHub Release.

After: merging a chore(release): prepare vX.Y.Z commit to main, or running Release by hand from main, does the whole release in CI:

  1. Creates the vX.Y.Z tag.
  2. Creates the GitHub Release, using the matching CHANGELOG section as notes.
  3. Dispatches Publish on that tag. Publish skips any crate whose version is already on crates.io.

How: this follows bashkit's release.yml and publish.yml.

  • Release checks that the version matches Cargo.toml, that the commit is on main, and that any existing tag points at the same commit.
  • Publish runs only from a release tag that matches Cargo.toml. For each of markkit and markkit-cli, it does a dry run and then a --no-verify upload.
  • specs/release-process.md and the CHANGELOG are updated.
  • Python and npm publishing stay manual.

After merge: I'll run Release by hand to create v0.1.0 and its GitHub Release. Publish will then skip both crates, because 0.1.0 is already on crates.io.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Y2vd61x8kbPtmDxze9Q4Gi


Generated by Claude Code

Merging a "chore(release): prepare vX.Y.Z" commit (or dispatching Release
from main) now creates the tag, the GitHub Release from CHANGELOG, and
dispatches an idempotent crates.io publish on the tag. Mirrors bashkit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y2vd61x8kbPtmDxze9Q4Gi
@chaliy
chaliy merged commit 65163ce into main Oct 13, 2026
8 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