Skip to content

Bump version to 0.5.0 - #61

Merged
dduugg merged 5 commits into
mainfrom
bump-version-0.5.0
Sep 27, 2026
Merged

dduugg merged 5 commits into
mainfrom
bump-version-0.5.0

Conversation

@dduugg

@dduugg dduugg commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Before marking ready

After merge

  • Push the v0.5.0 tag on the merge commit. .github/workflows/release.yml runs on the tag push: it builds six targets and publishes the GitHub Release with the installers. Nothing is published to crates.io.
  • Check the release assets, including the pks DotSlash file, and run the shell installer once.
  • If custom-publish-dotslash fails after uploading pks and needs a re-run, delete the asset first (gh release delete-asset v0.5.0 pks --yes). The action uploads without --clobber.

Worth knowing before tagging

  • This will be the first release through cargo-dist. v0.4.0 was cut by the old ci.yml release job, which Add cargo-dist for automated binary distribution #33 replaced, and release.yml has never run on a tag. On PRs it only runs the plan job, so the six-target build matrix has never been exercised. To try it before tagging, set cargo-dist's pr-run-mode = "upload" on this branch.
  • The asset names change. v0.4.0 shipped pks, pks-mac.tar.gz, x86_64-unknown-linux-gnu.tar.gz and aarch64-unknown-linux-gnu.tar.gz. cargo-dist ships pks-<target>.tar.xz (a .zip on Windows), pks-installer.sh, pks-installer.ps1, sha256.sum and source.tar.gz. Anything that downloads assets by their old names will break.
  • How the DotSlash file is published. It can't be a separate on: release workflow, because dist creates the release with GITHUB_TOKEN and events from GITHUB_TOKEN don't trigger other workflows. So dist calls publish-dotslash.yml as a custom job, and release.yml is regenerated with dist generate (the only change is the added call). The action reads dotslash-config.json through the API at the tagged commit. The tarballs put the binary at pks-<target>/pks and the Windows zip is flat, which is what the config's path values reflect. zizmor's secrets-inherit and self-repository findings come from dist's template for the call, so they're ignored for release.yml like the existing ones.

Release notes preview

The plan job on this PR's Release run builds the manifest cargo-dist will publish from. It has announcement_tag v0.5.0 and a GitHub Release body made up of the whole ## 0.5.0 section (Breaking Changes, Fixes, Performance, Distribution, Internal), then cargo-dist's install and download sections, and nothing from 0.4.0.

Test plan

  • DotSlash, end to end on macOS arm64: ran the action's process_config.py (at the pinned commit) against a real cargo-dist archive built with dist build, then ran the generated file with dotslash 0.5.9. It fetched the archive, verified the blake3 digest, and printed pks 0.5.0.

  • dist generate is idempotent, dist plan gives tag v0.5.0, and zizmor and actionlint are clean.

  • cargo test (the pre-commit hook), 266 passed.

  • CI passes.

  • After tagging, the Release workflow publishes v0.5.0 with the assets listed above.

The strict-mode change in #45 is breaking, and pre-1.0 that wants a minor
bump rather than 0.4.x.

Also rewrite INSTALLATION.md for the cargo-dist release artifacts. 0.5.0 is
the first release through cargo-dist (#33), which publishes installer
scripts and per-target archives but no dotslash `pks` file. And
`cargo install pks` has only ever installed the original alexevanczuk/packs
crate from crates.io, not this repository.
@github-project-automation github-project-automation Bot moved this to Triage in Modularity Sep 26, 2026
@dduugg
dduugg marked this pull request as ready for review September 26, 2026 23:13
@dduugg
dduugg requested a review from a team as a code owner September 26, 2026 23:13
Retitle `## Unreleased` to `## 0.5.0`, since cargo-dist builds the GitHub
Release notes by matching that heading against the tag, and drop the
reminder comment #45 left for whoever cut this release.

Add entries for the other user-visible changes since v0.4.0: the
recorded-violation matching fix in strict packs (#43), the stray `dbg!` in
the privacy checker (#50), the inflector regex speedup (#54), and the switch
to cargo-dist release artifacts (#33).
#33 replaced ci.yml's release jobs with cargo-dist and dropped the
generate-dotslash-files job along with them, so 0.5.0 would have been the
first release without a DotSlash `pks` file.

cargo-dist creates the GitHub Release with GITHUB_TOKEN, and events from
GITHUB_TOKEN don't trigger other workflows, so this can't be a separate
`on: release` workflow. Instead, publish-dotslash.yml is a reusable workflow
that dist calls once the release is announced (`post-announce-jobs` in
dist-workspace.toml), and release.yml is regenerated with `dist generate` to
add that call.

dotslash-config.json now matches cargo-dist's asset names exactly. The
tarballs put the binary under a `pks-<target>/` directory, the Windows zip is
flat, and Windows is new. zizmor's secrets-inherit and self-repository
findings come from dist's template for the call, so they're ignored for
release.yml alongside the existing ones.

Checked locally by running the action's process_config.py, at the pinned
commit, against a real cargo-dist archive for aarch64-apple-darwin, then
running the generated file with dotslash 0.5.9, which printed `pks 0.5.0`.
dotslash-publish-release uploads without --clobber, so re-running the job
once the `pks` asset is on the release fails. Say how to clear it in the
workflow's header.

The 0.5.0 CHANGELOG section becomes the release body, so link the
INSTALLATION.md that shipped with it rather than main's.
@dduugg
dduugg merged commit 48294f4 into main Sep 27, 2026
15 checks passed
@dduugg
dduugg deleted the bump-version-0.5.0 branch September 27, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant