Skip to content

v0.16.2

Choose a tag to compare

@SanderMuller SanderMuller released this 31 May 15:46
· 20 commits to main since this release
Immutable release. Only release title and notes can be modified.
637f6a4

⚠️ Correction (post-release): 0.16.2 also narrowed the sandermuller/boost-core constraint from ^0.13 || ^0.14 || ^0.15 || ^0.16 to ^0.16 — dropping support for boost-core 0.13–0.15. That is a breaking change and warranted a 0.17.0 bump, not a patch; the original "non-breaking" wording below was inaccurate. The family had already converged on boost-core ^0.16, so no current consumer is affected; consumers pinned to boost-core < 0.16 must upgrade it. See UPGRADING (0.16.1 → 0.16.2).


Fixed — .gitattributes managed-block writer

Edge-case correctness fixes to the block the gitattributes command maintains:

  • Malformed-block recovery is now self-healing. A block with an opening marker but no closing marker previously caused the next sync to append a second block, leaving successive syncs unstable. The writer now collapses the region into a single clean block, and sync() is idempotent for any input (sync(sync(x)) === sync(x)).
  • The file's dominant line ending is preserved. A CRLF-authored .gitattributes stays CRLF instead of being rewritten to LF; a mostly-LF file with a stray CRLF line settles to LF rather than churning every line.
  • Whitespace-variant canonical rules are recognised, not duplicated. A managed export-ignore entry written with different padding is treated as managed instead of being kept (and re-emitted) as a "foreign" line.
  • Repeated foreign lines inside the block are de-duplicated.

Added

  • Test coverage for the lean and gitattributes CLI commands — exit codes, --check no-write behaviour, foreign-line preservation end-to-end, and validator-binary resolution are now pinned. The test suite grows from 8 to 21.

Changed

  • lean-dist skill now points at the live managed block and .lpv as the source of truth for export-ignore entries, replacing a hard-coded list that had drifted from what the tool actually writes.
  • README: removed stale version pins (version-agnostic restatements).
  • Internal: removed an unreachable validator-binary fallback in the lean command.

Patch release — non-breaking. The public API is unchanged; the writer simply behaves correctly on the edge cases above.

Full Changelog: 0.16.1...0.16.2