You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Extract the section under "## [<version>]" up to (but not including) the next
45
+
# "## [" heading. We use index() rather than regex because matching a literal "["
46
+
# in awk's POSIX regex is fiddly across implementations.
47
+
awk -v ver="$version"'
48
+
index($0, "## [" ver "]") == 1 { capture = 1; next }
49
+
capture && index($0, "## [") == 1 { exit }
50
+
capture { print }
51
+
'"$changelog">"$output"
52
+
53
+
if [ !-s"$output" ];then
54
+
echo"::error::No $changelog section found for [$version]. Move the [Unreleased] block to [$version] and re-tag.">&2
55
+
rm -f "$output"
56
+
exit 1
57
+
fi
58
+
59
+
bytes=$(wc -c <"$output"| tr -d '[:space:]')
60
+
if [ "$bytes"-ge"$MAX_BYTES" ];then
61
+
echo"::error::Release notes for [$version] are $bytes bytes, at or over the $MAX_BYTES-byte guard for GitHub's ~125k release-body cap. Condense the CHANGELOG section (see CONTRIBUTING.md, 'Changelog entries') and re-tag.">&2
62
+
rm -f "$output"
63
+
exit 1
64
+
fi
65
+
66
+
echo"Release notes for [$version]: $bytes bytes (limit $MAX_BYTES)."
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,8 @@ All notable changes to Celerity are documented here. This project follows [Keep
23
23
24
24
### Fixed
25
25
26
+
-**A breaking API change could ship silently.**`dotnet pack` now validates every package against its last published version across all three TFMs and fails on any break, so a removed or narrowed public member can no longer reach NuGet.org with CI green. It runs on every PR, not just at release, and intentional breaks are recorded in a reviewed suppression file. CI-only; no consumer-visible behaviour change. Closes [#315](https://github.com/marius-bughiu/Celerity/issues/315).
27
+
-**A bad `CHANGELOG.md` could half-publish a release.** The release-notes check ran after the irreversible NuGet push, so a missing section — or one over GitHub's ~125k release-body cap, which this repo has overrun before — left six packages published and no release. It now runs before anything is pushed, with a body-size assertion added, and the validated notes are handed to the release step verbatim. Closes [#315](https://github.com/marius-bughiu/Celerity/issues/315).
26
28
-**The `EnumMap` and `EnumSet` cards on the benchmark dashboard rendered empty.** The page required an `(ItemCount: N)` suffix on every result name, and both benchmarks deliberately declare no item-count sweep, so their measurements were published and then discarded at render time. Both cards now chart their real numbers, and unparameterized benchmarks are excluded from the headline speedup stats. Closes [#301](https://github.com/marius-bughiu/Celerity/issues/301).
27
29
- A blank dashboard card is now a red CI check rather than a silent gap: `scripts/check_dashboard_coverage.js` fails when a published result name is unparseable, when a card has no measurements behind it, or when a charted collection is missing from either `COLLECTIONS` array or from the CI benchmark suite. Closes [#301](https://github.com/marius-bughiu/Celerity/issues/301).
28
30
-**The coverage gate measured only one of the six shipped packages.** Coverlet's assembly filter is exact-match, so `Celerity.Hashing`, `Celerity.Primitives`, and the three showcase packages had been outside the gate since the 2.0.0 package split — any of them could have dropped to 0% with CI green. All six are now measured, the gaps that exposed are backfilled to **100% line and branch** coverage, and the floor is raised from 95%/90% to match. Closes [#314](https://github.com/marius-bughiu/Celerity/issues/314).
0 commit comments