Skip to content

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 15:59
· 90 commits to main since this release
v0.13.0
2410e5d

Upgrading to v0.13.0

Behaviour changes

  • Objective-C (looser (parse errors no longer block); stricter (code in those files is now read)): Apple enum heads (typedef NS_ENUM(...), NS_OPTIONS, CF_ENUM) and annotation / availability macros are rewritten byte for byte before the parse, [languages.c] macros applies, and a .h header is read with the C, C++ or Objective-C grammar that leaves the fewest error regions; an Objective-C parse error is a warning, as in C. On a public Objective-C library: 156 files with 5,114 error regions become 6 with 26. Migration: An Objective-C project can receive findings in code that was unread.
  • assertion-reduction (looser): Source File Could Not Be Fully Parsed is a warning, not an error, for a file that could hide no test: outside a test path, no tests on either side, and not Rust. In a test file, a file with tests, or Rust it still blocks. Migration: None.
  • Swift (looser): Waiting on XCTest expectations (fulfillment(of:), wait(for:timeout:), waitForExpectations(timeout:)) counts as an assertion. Migration: None.
  • action (changed): A workflow that pins the action by commit SHA (as ci-integrity requires) or a branch runs the binary of the release in the action's own Cargo.toml, as @v0 already did, instead of the latest release. An explicit version: still wins. Migration: None; set version: to choose another release.
  • check (looser): --config ../candidate.toml, a relative path that escapes the repository, no longer exits 2; it is treated like an absolute path outside the repository (v0.12.1). Migration: None.
  • check (stricter): DISCIPLINE_NO_NETWORK=1 also skips the CI-only git fetch that deepens a shallow clone when the base does not resolve, and says so in the diagnostics. Migration: Unset DISCIPLINE_NO_NETWORK to let a shallow CI clone fetch its base.
  • assertion-reduction (looser): A newly added NUL byte is also lifted by the marker of the gate that reports it (discipline:allow(assertion-reduction): <path> <reason>), as its remediation says; the old discipline:allow(vacuous-tests) form still works. Migration: None.

The full ledger is in docs/ROADMAP.md.

What's Changed

  • fix: a SHA-pinned action runs its own release; audit follow-ups by @orieg in #201
  • fix(objc,swift): Apple macros and ObjC headers parse, parse errors block only where a test could hide by @orieg in #200
  • docs(architecture): the 1.0 stability policy (what 1.0 freezes) by @orieg in #197
  • docs: align gate, configuration and architecture docs with the code by @orieg in #199
  • chore(release): bump version to 0.13.0 with its ledger rows by @orieg in #202

Full Changelog: v0.12.3...v0.13.0