Skip to content

oakum 0.9.0

Choose a tag to compare

@oakoss oakoss released this 02 Nov 23:13
· 18 commits to main since this release
5464487

Added

check, status and the pull-request comment say how each changed package is covered. check prints a coverage: count and one line per way packages are covered: a bump file and its level, a none entry, a commit under commits-only intent, or commits that release nothing with their types (refactor, test); an empty bump file is named once as covering every changed package. An uncovered package names the path its change took, each commit on the branch asking to release it (short hash, subject, and its type: fix, feat, breaking or not conventional), the oakum add command that covers it at the highest level those commits ask for, and the oakum add --none command for a change that should release nothing. check --json carries this per package under the coverage look's changed, and status --json and templates as the top-level changed (covered_by, via, released_by, fix); where a document has changed, its uncovered is read from it. status and the comment list uncovered packages one per line with their path, the commits asking for a release and the oakum add command those commits imply, and a change that releases nothing under "Changed, releasing nothing".

The pull-request plan comment opens with the commit it describes, the pull request's head commit rather than the merge commit Actions checks out, and links the run that wrote it, so a plan left by an older run reads as older.

A ci pr-status run that cannot build the plan (a shallow clone, unreadable tags, a coverage look that could not run, a selection naming no package) still fails as before, and now marks oakum's comment stale instead of leaving it as current: a warning naming the commit and run with the reason, above the last plan oakum checked, collapsed. With --emit-comment it writes the reason to oakum-pr-comment.failed (artifact format 2), and ci post-comment composes the same banner and exits 0. The posting job and the artifact upload need if: always() for the banner to reach the pull request.

ci pr-status --emit-comment writes oakum-pr-comment.format beside the comment, recording the artifact's format and the oakum that wrote it, and ci post-comment refuses an artifact newer than it can read by naming both versions (exit 2, nothing touched) instead of misreading it. A directory without the record reads as format 1, so artifacts from earlier oakum still post.

Changed

The workflow oakum init and oakum migrate print for a Cargo repository pins taiki-e/install-action to v2.89.0 (was v2.87.30).

A change to a package oakum does not version, unmanaged or excluded, now counts as a change to every versioned package that depends on it at runtime (Cargo dependencies and build-dependencies; npm dependencies, peerDependencies and optionalDependencies), directly or through other unversioned packages. check --strict asks that package for coverage and names the path, as in app (cargo): changed (via store) with no covering intent, so a branch that changes only an internal crate is now refused until a bump file covers the package that ships it; oakum add --none --packages <package> covers it without a release. generate and the commits-only plan release it: a fix commit to the internal crate patches the package that ships it, where it used to reach no package. An excluded package nothing versioned depends on stays silent.

With change files and conventional commits both on, a branch's commits that release nothing now cover the packages they reach: a package changed only by refactor:, test:, chore: and other non-releasing commits passes check --strict without a bump file, each package judged on its own, so one fix commit to another package asks only that package for one. Merge commits are skipped. A git revert of a commit in the same range cancels both, for coverage, generate and the commits-only plan alike, so a fix and its revert on one branch no longer release a patch; a revert of a commit outside the range still releases.

Install oakum 0.9.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/oakoss/oakum/releases/download/v0.9.0/oakum-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/oakoss/oakum/releases/download/v0.9.0/oakum-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install oakoss/tap/oakum

Install prebuilt binaries into your npm project

npm install @oakoss/oakum@0.9.0

Download oakum 0.9.0

File Platform Checksum
oakum-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
oakum-x86_64-apple-darwin.tar.xz Intel macOS checksum
oakum-x86_64-pc-windows-msvc.zip x64 Windows checksum
oakum-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
oakum-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
oakum-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo oakoss/oakum

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>