Skip to content

Choose a tag to compare

@github-actions github-actions released this 19 Aug 07:41
· 27 commits to main since this release
7c208a1

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 was check with the exit code forced to zero. Use pawl check || true; exit_code is 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 json already 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-md prints the operating loop a coding agent needs to use the gate correctly. Install it with pawl agent-md >> AGENTS.md.
  • pawl measure runs every dimension and prints the measurement document — no baseline read, no verdict. The document is the snapshot format byte for byte.
  • check --current <path|-> and record --current <path|-> judge or record a measurement document instead of re-running the dimensions. One measure can 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: lines named 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_codes on any command dimension. 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 / --quiet on measure, record and check: silences progress and advisory output, releasing a text verdict only when the exit code is non-zero.
  • check --only reports what it skipped. The JSON verdict carries an excluded array naming every configured dimension the scope left out, so a scoped exit 0 cannot be mistaken for a green full gate.
  • Rolling v0 tag. uses: tiangong-dev/pawl@v0 now tracks the latest release.

Changed

  • check's text output prints a one-line hint about --format json to stderr when stdout is not a terminal.