Repository navigation
Bump version to 0.5.0 - #61
Merged
Merged
Conversation
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.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cargo.tomlfrom 0.4.0 to 0.5.0. Tolerate recorded violations in strict mode (Part B of #43) #45's strict-mode change is breaking, and pre-1.0 that wants a minor bump rather than 0.4.x.pksfile on releases. Add cargo-dist for automated binary distribution #33 dropped the job that published it when it moved releases to cargo-dist. It's back aspublish-dotslash.yml, a reusable workflow that dist calls after the release is announced (post-announce-jobs), withdotslash-config.jsonupdated for cargo-dist's asset names and Windows added.INSTALLATION.mdfor the cargo-dist release artifacts, and correctscargo install pks, which installs the original alexevanczuk/packs crate (0.2.40) from crates.io, not this repository.## Unreleasedto## 0.5.0inCHANGELOG.mdand adds entries for the other user-visible changes since v0.4.0 (Match recorded violations in strict packs (Part A) #43, Remove stray dbg! from the privacy checker #50, Compile inflector regexes once instead of per call #54, and the cargo-dist switch from Add cargo-dist for automated binary distribution #33).Before marking ready
maininto this branch. InCHANGELOG.md, retitle## Unreleasedto## 0.5.0, and remove the "Whoever cuts the next release" comment Tolerate recorded violations in strict mode (Part B of #43) #45 adds. cargo-dist builds the GitHub Release notes by matching a heading against the tag, so an entry left under## Unreleasedsilently misses the release notes.After merge
v0.5.0tag on the merge commit..github/workflows/release.ymlruns on the tag push: it builds six targets and publishes the GitHub Release with the installers. Nothing is published to crates.io.pksDotSlash file, and run the shell installer once.custom-publish-dotslashfails after uploadingpksand 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
ci.ymlrelease job, which Add cargo-dist for automated binary distribution #33 replaced, andrelease.ymlhas never run on a tag. On PRs it only runs theplanjob, so the six-target build matrix has never been exercised. To try it before tagging, set cargo-dist'spr-run-mode = "upload"on this branch.pks,pks-mac.tar.gz,x86_64-unknown-linux-gnu.tar.gzandaarch64-unknown-linux-gnu.tar.gz. cargo-dist shipspks-<target>.tar.xz(a.zipon Windows),pks-installer.sh,pks-installer.ps1,sha256.sumandsource.tar.gz. Anything that downloads assets by their old names will break.on: releaseworkflow, because dist creates the release withGITHUB_TOKENand events fromGITHUB_TOKENdon't trigger other workflows. So dist callspublish-dotslash.ymlas a custom job, andrelease.ymlis regenerated withdist generate(the only change is the added call). The action readsdotslash-config.jsonthrough the API at the tagged commit. The tarballs put the binary atpks-<target>/pksand the Windows zip is flat, which is what the config'spathvalues reflect. zizmor'ssecrets-inheritandself-repositoryfindings come from dist's template for the call, so they're ignored forrelease.ymllike the existing ones.Release notes preview
The
planjob on this PR's Release run builds the manifest cargo-dist will publish from. It hasannouncement_tagv0.5.0and a GitHub Release body made up of the whole## 0.5.0section (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 withdist build, then ran the generated file with dotslash 0.5.9. It fetched the archive, verified the blake3 digest, and printedpks 0.5.0.dist generateis idempotent,dist plangives tagv0.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.