Move the 2.0.0 changelog entries out of Unreleased - #88
Conversation
Per RELEASING.md: a stable tag's release notes come from the tag's own dated section, and a tag fails verification without one. Renames ## [Unreleased] to ## [2.0.0] - 2026-09-24 and repoints its link reference at the v2.0.0 release tag instead of a compare-to-HEAD link. Every CompatibilitySuppressions.xml entry has a matching **Breaking** line in this section (checked by hand: the two Callback fields, the three AddressResolutionOptions/UseHostSymbolTable members, and the three renumbered MemoryAccessFailure members). The maintainer still needs to add a Qualification waivers section (RELEASING.md's Q02-Q10/Q40/Q41 register) before this is tagged, and a new empty [Unreleased] section is opened after the release per RELEASING.md's "After a release" step, not before.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 📝 WalkthroughWalkthroughThe changelog replaces the Unreleased entry with a dated 2.0.0 release entry. It states that every pack is validated against published 1.0.0 and that intentional breaks are declared in Priority: ⬇️ Low Merge Risk: 🔵 Low · up to The release notes omit required disclosures about incomplete qualification results. Add the section before tagging; this is a bounded release-readiness follow-up. 🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: CheatEngineNet/CheatEngine.SDK/.coderabbit.yaml
Review profile: ASSERTIVE
Plan: Advanced
Run ID: 7fb9f01d-39c2-4957-b37e-a329eaf000df
📒 Files selected for processing (1)
CHANGELOG.md
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
CheatEngineNet/CheatEngine.Client(manual)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.
| ## [2.0.0] - 2026-09-24 | ||
|
|
||
| The next release line is 2.0.0. Every pack is validated against the published 1.0.0 package, and each intentional break | ||
| is declared in `src/CheatEngine.SDK/CompatibilitySuppressions.xml` and marked **Breaking** below. | ||
| Every pack is validated against the published 1.0.0 package, and each intentional break is declared in | ||
| `src/CheatEngine.SDK/CompatibilitySuppressions.xml` and marked **Breaking** below. | ||
|
|
||
| ### Added | ||
|
|
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
sed -n '1,45p' CHANGELOG.md
sed -n '138,154p' RELEASING.md
sed -n '155,178p' libs/CheatEngine.SDK.Abi/README.md
sed -n '30,52p' tests/CheatEngine.SDK.LivePlugin.Coexistence/README.md
sed -n '28,47p' libs/CheatEngine.SDK.Hosting/README.mdRepository: CheatEngineNet/CheatEngine.SDK
Length of output: 11683
🏁 Script executed:
#!/bin/bash
set -e
printf '%s\n' '--- CHANGELOG 2.0.0 section and waiver headings ---'
awk '
/^## \[2\.0\.0\]/ { in_section=1 }
in_section && /^## \[/ && !/^## \[2\.0\.0\]/ { exit }
in_section { print NR ":" $0 }
' CHANGELOG.md
printf '%s\n' '--- RELEASING qualification rule ---'
sed -n '140,153p' RELEASING.md
printf '%s\n' '--- Status evidence ---'
sed -n '163,174p' libs/CheatEngine.SDK.Abi/README.md
sed -n '40,50p' tests/CheatEngine.SDK.LivePlugin.Coexistence/README.md
sed -n '34,43p' libs/CheatEngine.SDK.Hosting/README.md
printf '%s\n' '--- Qualification waiver occurrences ---'
rg -n -i 'qualification waivers|Q05|Q09|Q10|Q41|NotExecuted|not executed|unqualified|exception' CHANGELOG.md RELEASING.md libs/CheatEngine.SDK.Abi/README.md tests/CheatEngine.SDK.LivePlugin.Coexistence/README.md libs/CheatEngine.SDK.Hosting/README.md
printf '%s\n' '--- Base/head changelog shape ---'
git diff --unified=3 0f1e0ceed3adaabd9dc37230af567f08b73098e4 883b4db62de5f814dc02565438a26db385ad6fa8 -- CHANGELOG.mdRepository: CheatEngineNet/CheatEngine.SDK
Length of output: 20824
Add the qualification waivers to the 2.0.0 release notes.
RELEASING.md requires a ### Qualification waivers section for each open Q02–Q10, Q40, or Q41 row. The 2.0.0 entry omits this section, although Q05 is unqualified, Q09 and Q10 remain not executed, and Q41 C2 remains NotExecuted.
Add these disclosures so the published release notes state the limits of the qualification evidence.
Suggested fix
+### Qualification waivers
+
+- Q05: Host-based qualification of non-ASCII plugin-name decoding remains unqualified.
+- Q09: Coexistence qualification remains not executed.
+- Q10: Coexistence qualification remains not executed.
+- Q41: C2 NativeAOT host qualification remains `NotExecuted` until the first green CI `aot` run.
+
### Added📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ## [2.0.0] - 2026-09-24 | |
| The next release line is 2.0.0. Every pack is validated against the published 1.0.0 package, and each intentional break | |
| is declared in `src/CheatEngine.SDK/CompatibilitySuppressions.xml` and marked **Breaking** below. | |
| Every pack is validated against the published 1.0.0 package, and each intentional break is declared in | |
| `src/CheatEngine.SDK/CompatibilitySuppressions.xml` and marked **Breaking** below. | |
| ### Added | |
| ## [2.0.0] - 2026-09-24 | |
| Every pack is validated against the published 1.0.0 package, and each intentional break is declared in | |
| `src/CheatEngine.SDK/CompatibilitySuppressions.xml` and marked **Breaking** below. | |
| ### Qualification waivers | |
| - Q05: Host-based qualification of non-ASCII plugin-name decoding remains unqualified. | |
| - Q09: Coexistence qualification remains not executed. | |
| - Q10: Coexistence qualification remains not executed. | |
| - Q41: C2 NativeAOT host qualification remains `NotExecuted` until the first green CI `aot` run. | |
| ### Added | |
|



Summary
## [Unreleased]to## [2.0.0] - 2026-09-24in CHANGELOG.mdand repoints its link reference at the v2.0.0 release tag, per
RELEASING.md's requirement that a stable tag's release notes come
from the tag's own dated section (
verifyfails without one).src/CheatEngine.SDK/CompatibilitySuppressions.xmlentry against this section: all 9 (the two
Callbackfields, thethree
AddressResolutionOptions/UseHostSymbolTablemembers, andthe three renumbered
MemoryAccessFailuremembers) have a matchingBreaking line.
Still needed before tagging v2.0.0
check the audit's Q02-Q10, Q40 and Q41 register and add a
### Qualification waiverssection here for any row that staysopen. This is a maintainer judgment call against the audit
dossier, not something this PR attempts.
v2.0.0once the above is settled.Test plan
Ran RELEASING.md's local rehearsal from a clean
main:dotnet restore CheatEngine.SDK.slnx --locked-modedotnet build CheatEngine.SDK.slnx -c Debug --no-restore— 0/0dotnet test --solution CheatEngine.SDK.slnx -c Debug --no-build --fail-skips on --filter-not-trait "Category=Packaging"— 4097/4097dotnet build CheatEngine.SDK.slnx -c Release --no-restore— 0/0dotnet pack src/CheatEngine.SDK -c Release -o artifacts/nuget -p:MinVerVersionOverride=2.0.0 --no-restoredotnet test --solution CheatEngine.SDK.slnx -c Release --no-build --fail-skips onagainst that exact nupkg— 4167/4168; the sole failure (
PackedConsumerBindingTestsNativeAOT publish) needs the MSVC/vswhere.exe linker toolchain this
local environment lacks, and passes in CI
Updated
CHANGELOG.mdto mark version 2.0.0 as a dated release and link to its release tag. This is a documentation-only change; no SDK contract, ABI, Lua stack, generator, analyzer, test, packaging, or CI/CD behavior changed.