v0.13.0
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] macrosapplies, and a.hheader 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 Parsedis 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-integrityrequires) or a branch runs the binary of the release in the action's ownCargo.toml, as@v0already did, instead of the latest release. An explicitversion:still wins. Migration: None; setversion: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=1also skips the CI-onlygit fetchthat deepens a shallow clone when the base does not resolve, and says so in the diagnostics. Migration: UnsetDISCIPLINE_NO_NETWORKto 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 olddiscipline: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