Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,133 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.4.0](https://github.com/rust-works/patchcov/compare/v0.3.0...v0.4.0) - 2026-10-09

### Added

- *(cli)* mark a truncated path-mismatch sample and name its size once
- *(cli)* JSON lines for lint-markers findings and the merge summary
- *(cli)* structured fields on JSON warnings
- *(cli)* structured gate fields in the JSON error output
- *(cli)* print warnings as JSON lines under --error-format json
- *(cli)* opt-in JSON error output on stderr
- [**breaking**] exit with a distinct code for each class of failure
- *(diff)* [**breaking**] fail by default when a report's paths match no tracked file
- *(diff)* detect the default base branch from origin/HEAD, main or master

### Documentation

- align path-mismatch example with checkout normalization
- *(reference)* explain the path-mismatch change when upgrading from 0.3.0
- *(reference)* show level in the gate error example
- *(reference)* show the anchored report path in the JSON warning examples
- *(troubleshooting)* say a path mismatch exits 7, not 1
- *(reference)* word the path-mismatch truncation rule without Rust notation
- *(reference)* say how to tell that a path-mismatch unmatched sample is truncated
- *(cli)* tighten the note on display-string paths in JSON warnings
- *(cli)* say the report and shard fields of JSON warnings are display strings
- *(reference)* describe the JSON finding and merge summary lines
- *(reference)* list the fields of each JSON warning kind
- recommend cargo install --locked and document the fresh-resolution MSRV job
- *(reference)* document the JSON warning line and the error level
- *(readme)* say the other formats fail under --branch-coverage
- *(readme)* say which report formats support --branch-coverage in the intro
- *(reference)* document the exit code for each failure class
- *(release)* anchor the docs changelog parser and list every group
- *(release)* group docs commits under Documentation in the changelog
- describe the default base branch resolution order
- *(contributing)* clarify what CI covers for lint-markers and docs
- *(readme)* address review of the mission and branch-coverage wording
- *(readme)* add a mission statement and fix the branch-coverage line

### Fixed

- *(cli)* discover diff repositories from subdirectories
- *(cli)* preserve input arguments in report and shard labels
- *(cli)* explain spaced negative float thresholds
- *(cli)* preserve chain and gates in JSON error fallback
- *(cli)* simplify the mismatch-sample suffix and tighten docs wording
- *(cli)* address review of the JSON error fallback
- *(cli)* keep code in the JSON error line when the full report cannot be serialized
- *(tests)* match GitHub more closely in the doc link check
- *(cli)* report a missing --fail-under-* value instead of blaming the next argument
- *(cli)* carry the record's level and kind into the JSON fallback line
- *(cli)* print a minimal JSON line when a record fails to serialize
- *(diff)* normalise -0 thresholds and cover negatives end to end
- *(diff)* reject negative --fail-under-patch and --fail-under-lines values
- *(markers)* make MarkerError non-exhaustive and tidy the JSON line docs
- *(cli)* reject non-finite --fail-under-patch / --fail-under-lines values
- *(cli)* report measured gate values unrounded
- *(ci)* run the real unlocked cargo install in the fresh-resolution job
- *(cli)* address review of the JSON warnings
- *(cli)* address review of the JSON error output
- *(cli)* address review of the exit-code change
- *(diff)* keep the deprecated --fail-on-path-mismatch a pure no-op
- *(diff)* name the chosen base in the merge-base error; isolate the master test

### Other

- Merge pull request #126 from rust-works/issue-124-perf-json-fallback-lazy
- *(cli)* check troubleshooting example against exit-7 error
- *(cli)* build JSON fallbacks only on serialization failure
- check links in all tracked markdown except the changelog
- *(cli)* preserve as-typed labels after rebase
- *(cli)* cover baseline Go reports from subdirectories
- *(cli)* define JSON fallback fields in one place
- Merge pull request #117 from rust-works/issue-108-docs-path-mismatch-upgrade-note
- Merge pull request #120 from rust-works/issue-106-decide-relative-path-naming-in-warnings
- Merge pull request #121 from rust-works/issue-105-test-path-mismatch-doc-examples
- Merge pull request #118 from rust-works/issue-104-diff-spaced-nonfinite-threshold-message
- Merge pull request #116 from rust-works/issue-102-json-fallback-keep-gates
- *(cli)* accept CRLF in the troubleshooting example
- *(cli)* pin input labels in empty shard errors
- *(cli)* check path-mismatch doc examples against Display
- *(cli)* check warning kind field types against docs
- parse documentation links with CommonMark
- bound release and fresh MSRV job durations
- *(cli)* check JSON gate order against reference docs
- Merge pull request #90 from rust-works/issue-83-json-error-keep-code
- Merge pull request #94 from rust-works/issue-88-docs-json-warning-path
- Merge pull request #98 from rust-works/issue-85-emit-derive-level-kind
- *(cli)* cover the fallback labels through one fixed-label wrapper
- *(cli)* address review of the docs-table checks
- *(cli)* derive emit's level and kind from the record
- *(cli)* check documented types, constants and the error object against the JSON output
- *(cli)* share the isolated command setup and cover a relative -C in the warning path tests
- check relative links and anchors in README, CONTRIBUTING and docs
- *(cli)* pin the unexplained -inf spelling and more missing-value cases
- cite the measured maximum in the timeout comment
- explain the job timeout values
- set timeout-minutes on the CI jobs
- Merge pull request #77 from rust-works/issue-73-docs-path-mismatch-truncation
- Merge pull request #76 from rust-works/issue-72-docs-json-warning-non-utf8-paths
- Merge pull request #80 from rust-works/issue-70-test-json-fields-vs-docs
- *(cli)* make the docs field checks less brittle
- *(cli)* pin the JSON fields of findings, the merge summary and warnings against docs/reference.md
- *(cli)* drop a warn test that restated render
- *(cli)* share the stderr format lookup and render path between warn and emit
- *(msrv)* run the test suite on the MSRV toolchain
- *(markers)* return a structured MarkerError from scan
- Merge pull request #66 from rust-works/issue-61-json-warning-fields
- *(cli)* derive a deprecated warning's fields from its flag
- *(cli)* assert warnings by value without untested panic branches
- *(cli)* exercise -inf through the value parser and assert accepted thresholds
- *(msrv)* run doctests on the MSRV toolchain
- *(diff)* assert the patch gate's data without an untested panic branch
- Merge pull request #57 from rust-works/issue-52-ci-msrv-fresh-resolution
- *(msrv)* check the MSRV against a fresh dependency resolution weekly
- run doctests in the test job
- Merge pull request #50 from rust-works/issue-47-json-error-output
- *(exit)* do not depend on the OS wording of a missing file
- *(deps)* drop the unused clap env feature
- pass --locked to every cargo step
- *(exit)* a path mismatch exits 7 unless it is allowed
- Merge pull request #38 from rust-works/issue-35-default-base-branch
- Merge pull request #40 from rust-works/issue-30-cargo-binstall
- *(binstall)* fail when the binstall metadata drifts from the release workflow
- *(binstall)* describe the release archives to cargo-binstall
- run patchcov lint-markers in the Lint job

### Changed

- Report and shard diagnostic labels now preserve the input argument in `diff` and
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "patchcov"
version = "0.3.0"
version = "0.4.0"
edition = "2021"
authors = ["John Ky <[email protected]>"]
license = "BSD-3-Clause"
Expand Down
Loading