fix(ci): wire homebrew + npm publish jobs into release.yml - #272
Conversation
|
Now I have a complete picture. Let me write the review. PR #272 — fix(ci): wire homebrew + npm publish jobs into release.ymlBuckets changed: Security pass (CI surface)Token handling in
git clone "https://x-access-token:${TAP_TOKEN}@github.com/aram-devdocs/homebrew-plumb.git" tap
Scope of The workflow-level block ( CorrectnessAttest glob fix ( -subject-path: target/distrib/plumb-installer.*
+subject-path: target/distrib/plumb-cli*Correct.
Correct dependency ordering: GitHub Release must exist before a formula push or npm publish. The Idempotency guard in if git diff --cached --quiet; then
echo "No formula changes for ${RELEASE_TAG}"
else
git commit -m "plumb ${RELEASE_TAG}"
git push
fiCorrect. A re-run for the same tag (e.g., after a workflow retry) will not produce a duplicate tap commit.
Redundant for an unscoped package (unscoped packages are always public on npm), but harmless.
Already used in the pre-existing CHANGELOG — correctly placed under
Punch list
No blockers found. Verdict: APPROVE |
cargo-dist v0.0.10 run [25496775188] all 5 native builds + installer artifacts (plumb-cli-installer.sh, .ps1, plumb-cli.rb, npm-package.tar.gz) generated successfully, but: 1. Attest-build-provenance step failed on a stale glob (`plumb-installer.*` vs the actual `plumb-cli*` filenames from cargo-dist 0.28). 2. No publish-homebrew or publish-npm jobs existed, so the brew tap never got the formula and `plumb-cli` never went to npm. Adds two new jobs to release.yml: `publish-homebrew` (clones aram-devdocs/homebrew-plumb, copies plumb-cli.rb to Formula/plumb.rb, commits + pushes via HOMEBREW_TAP_TOKEN) and `publish-npm` (extracts plumb-cli-npm-package.tar.gz and runs `npm publish` via NPM_TOKEN). Both depend on the existing `publish` job so they only run after the GitHub Release is created. Fixes the attest glob to `plumb-cli*` and updates dist-workspace.toml comment to reflect that publish-jobs are hand-authored, not generated by cargo-dist. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
cd9adaf to
fe8f7ca
Compare
…nd 0.0.11 (#283) Two manual `## [Unreleased]` sections existed in CHANGELOG.md: - One between `[0.0.11]` and `[0.0.10]` whose entries (Homebrew tap publish job, npm publish job) already shipped in 0.0.10 and 0.0.11. Documented in the 0.0.11 Bug Fixes block (#272). - One at the bottom of the file dating to the 0.0.2 era. Every line in that block has been incorporated into a versioned section above (e.g. e2e matrix and baseline/rhythm in 0.0.2, x86_64-apple-darwin drop in 0.0.10, etc.). Both blocks were stale. release-please (release-type: simple) does not consume or maintain `[Unreleased]`; it generates new `## [x.y.z]` sections from conventional commit messages on `main` at release time. Keeping an empty placeholder would invite hand edits, which the file header already forbids. Closes audit finding H18 from the public-surface readiness audit.
Summary
cargo-dist v0.0.10 run 25496775188 generated all 5 native builds + the four installer artifacts (`plumb-cli-installer.sh`, `plumb-cli-installer.ps1`, `plumb-cli.rb`, `plumb-cli-npm-package.tar.gz`) successfully, but:
Fix
Test plan
🤖 Generated with Claude Code