Replaces the "build from source only" Install section with a Releases-page download path plus a SmartScreen note, and adds docs/release-process.md so the tag-bump-build flow is captured for future maintainers.
1.4 KiB
Cutting a release
The release.yml workflow builds and publishes on every pushed tag
matching v*.*.*. The workflow asserts that the pushed tag matches
Cargo.toml version and fails fast on mismatch, so the order
below matters: bump Cargo before you tag.
Steps for a new version
-
Bump
Cargo.tomlversion(X.Y.Z). -
cargo build --releaselocally to refreshCargo.lock. -
Commit:
chore: bump version to X.Y.Z. -
Tag and push:
git tag -a vX.Y.Z -m "vX.Y.Z" git push origin main git push origin vX.Y.Z -
Watch the "Release" workflow run; it creates the GitHub Release with
claude-code-usage-bubble.exeattached and auto-generated notes.
Testing without a real tag
Use the workflow's workflow_dispatch input with a throwaway tag
like v0.0.0-test. The release is created as a draft, so it
does not show up on the public Releases feed or trigger self-updates
for users.
Versioning
Semver-ish: bump patch for fixes, minor for features, major for
breaking changes (e.g. settings.json schema change). The in-app
updater compares Version { major, minor, patch } lexicographically,
so a higher tuple wins.
Asset name contract
The updater matches the release asset by exact filename
claude-code-usage-bubble.exe (case-insensitive). Cargo's
name = "claude-code-usage-bubble" already produces that name in
target/release/, so the workflow uploads the file as-is — do not
rename it.