Repository navigation
Releases: tiangong-dev/pawl
Release list
v0.8.2
v0.8.1
Changes since v0.8.0 — npm i -D @pawl-tools/cli@0.8.1
Prebuilt binaries are attached below.
- chore: prepare v0.8.1 release (#44) (db848d2)
- fix: run codeql on pull requests (#43) (77316e1)
- chore: address repository security findings (#37) (8d54856)
- feat: harden report freshness and baseline guards (#36) (9f69071)
- docs: rewrite the doc set in pawl's own voice (#35) (9ce5f96)
- docs: refresh OpenSSF Scorecard badge (041e8ba)
- ci: publish OpenSSF Scorecard results (0a9f780)
v0.8.0
Changes since v0.7.1 — npm i -D @pawl-tools/cli@0.8.0
Prebuilt binaries are attached below.
- chore: bump version to 0.8.0 (#34) (8f0502d)
- feat: harden measurement provenance and agent workflows (#33) (f44d59e)
- refactor!: rename
baseline-guardtoguard(#32) (718bc50) - feat!: replace
pawl agent-mdwithpawl agent, which installs the block (#31) (ea518a7) - ci: have the release run say whether the Marketplace tick is needed (#30) (9b1768e)
- ci: surface the manual Marketplace step in the release summary (#29) (6cd0541)
v0.7.1
The binary is byte-for-byte what 0.7.0 shipped. This release only changes the
Marketplace badge from green to black, to match the Pawl wordmark — GitHub
snapshots the badge from action.yml when a release is published, so the colour
could not be changed without one.
Install: npm i -D @pawl-tools/cli@0.7.1 · go install github.com/tiangong-dev/pawl/cmd/pawl@v0.7.1 · or uses: tiangong-dev/pawl@v0 in a workflow.
Everything in v0.7.0 — agent-md, measure, --current, the lines analyzer, -q, and the removal of pawl diff / --format codeclimate — applies unchanged.
v0.7.0
pawl is a language-agnostic anti-regression gate: every number you care about —
files over a length limit, as any count, coverage, passing tests — is recorded
as a baseline, and pawl check exits 1 when one of them moves the wrong way.
Install: npm i -D @pawl-tools/cli@0.7.0 · go install github.com/tiangong-dev/pawl/cmd/pawl@v0.7.0 · or uses: tiangong-dev/pawl@v0 in a workflow. Prebuilt binaries for darwin / linux / win32 on x64 / arm64 are attached below.
Breaking
- Removed
pawl diff. It wascheckwith the exit code forced to zero. Usepawl check || true;exit_codeis a field in--format json, so a step that must not fail CI needs no second command. - Removed
--format codeclimate. A third serialization of what--format jsonalready carries, and a usage error in combination with--only. GitLab Code Quality integration goes with it; GitHub PR comments and annotations are unaffected.
Added
pawl agent-mdprints the operating loop a coding agent needs to use the gate correctly. Install it withpawl agent-md >> AGENTS.md.pawl measureruns every dimension and prints the measurement document — no baseline read, no verdict. The document is the snapshot format byte for byte.check --current <path|->andrecord --current <path|->judge or record a measurement document instead of re-running the dimensions. Onemeasurecan now drive the check and the record that follows it — which matters when a dimension reads a report off disk, where two separate passes could read two different builds.builtin: linesnamed analyzer. One regex with optional named groups (path,line,rule,level) turns any tool's line output into findings, so a tool pawl has no built-in support for still gets one scan feeding several dimensions.valid_exit_codeson anycommanddimension. Declares which exit codes count as a successful run, for tools that report findings through a non-zero exit. Prefer it to|| true, which accepts every exit code and turns a crashed tool into a clean zero.-q/--quietonmeasure,recordandcheck: silences progress and advisory output, releasing a text verdict only when the exit code is non-zero.check --onlyreports what it skipped. The JSON verdict carries anexcludedarray naming every configured dimension the scope left out, so a scoped exit 0 cannot be mistaken for a green full gate.- Rolling
v0tag.uses: tiangong-dev/pawl@v0now tracks the latest release.
Changed
check's text output prints a one-line hint about--format jsonto stderr when stdout is not a terminal.