Skip to content

Move the 2.0.0 changelog entries out of Unreleased - #88

Merged
AriusII merged 1 commit into
mainfrom
release/2.0.0-changelog
Sep 24, 2026
Merged

AriusII merged 1 commit into
mainfrom
release/2.0.0-changelog

Conversation

@AriusII

@AriusII AriusII commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Renames ## [Unreleased] to ## [2.0.0] - 2026-09-24 in CHANGELOG.md
    and 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 (verify fails without one).
  • Cross-checked every src/CheatEngine.SDK/CompatibilitySuppressions.xml
    entry against this section: all 9 (the two Callback fields, the
    three AddressResolutionOptions/UseHostSymbolTable members, and
    the three renumbered MemoryAccessFailure members) have a matching
    Breaking line.

Still needed before tagging v2.0.0

  • Qualification waivers. RELEASING.md requires the maintainer to
    check the audit's Q02-Q10, Q40 and Q41 register and add a
    ### Qualification waivers section here for any row that stays
    open. This is a maintainer judgment call against the audit
    dossier, not something this PR attempts.
  • Maintainer sign-off to tag v2.0.0 once the above is settled.

Test plan

Ran RELEASING.md's local rehearsal from a clean main:

  • dotnet restore CheatEngine.SDK.slnx --locked-mode
  • dotnet build CheatEngine.SDK.slnx -c Debug --no-restore — 0/0
  • dotnet test --solution CheatEngine.SDK.slnx -c Debug --no-build --fail-skips on --filter-not-trait "Category=Packaging" — 4097/4097
  • dotnet build CheatEngine.SDK.slnx -c Release --no-restore — 0/0
  • dotnet pack src/CheatEngine.SDK -c Release -o artifacts/nuget -p:MinVerVersionOverride=2.0.0 --no-restore
  • dotnet test --solution CheatEngine.SDK.slnx -c Release --no-build --fail-skips on against that exact nupkg
    — 4167/4168; the sole failure (PackedConsumerBindingTests Native
    AOT publish) needs the MSVC/vswhere.exe linker toolchain this
    local environment lacks, and passes in CI

Updated CHANGELOG.md to 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.

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.
@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

📝 Walkthrough

Walkthrough

The 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 CompatibilitySuppressions.xml and marked Breaking. The release link now points to the v2.0.0 GitHub release.

Priority: ⬇️ Low

Merge Risk: 🔵 Low · up to 883b4

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)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main changelog change. It starts with an uppercase letter, uses an imperative sentence, is 50 characters long, has no trailing period or prefix, and meets the 72-charac…
Native Abi Evidence ✅ Passed The pull request changes only CHANGELOG.md. It does not change libs/CheatEngine.SDK.Abi/, native/, tests/native-abi-fixture/, or any listed ABI declaration. The check is not applicable.
Lua Stack Balance Tests ✅ Passed The pull request changes only CHANGELOG.md. It does not change code in the Lua stack directories listed by the check, so the Lua stack balance test criteria do not apply.
Lua Concurrency Contract ✅ Passed The pull request changes only CHANGELOG.md. It does not change libs/CheatEngine.SDK.Lua/Runtime/**, so the Lua concurrency contract check does not apply.
Native Host Emulator Evidence ✅ Passed The pull request changes only CHANGELOG.md. It does not change tests/native-host-emulator/** or tests/CheatEngine.SDK.Hosting.Tests/Coexistence/**, so this check does not apply.
Public Api Documentation And Changelog ✅ Passed PASS: The authoritative pull-request diff changes only CHANGELOG.md. It adds no public or protected API, analyzer diagnostic, README contract, or source-generator change. The custom check is therefo…
Dependency Direction ✅ Passed The review-scoped diff changes only CHANGELOG.md. It adds no project or source files, no PackageReference, no CheatEngine.Client or CheatEngine.Mcp reference, and no Client-level policy or workflow co…
Workflow Hygiene ✅ Passed The authoritative pull-request diff changes only CHANGELOG.md. It contains no changes under .github/, so the Workflow hygiene check does not apply.
Public Api And Compatibility ✅ Passed PASS: The authoritative pull-request diff changes only CHANGELOG.md. It does not change files under libs/ or src/, either PublicAPI file, CompatibilitySuppressions.xml, or `packages.lock.jso…

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 0f1e0ce and 883b4db.

📒 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.

Comment thread CHANGELOG.md
Comment on lines +11 to 17
## [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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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.md

Repository: 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.md

Repository: 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.

Suggested change
## [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

@sonarqubecloud

Copy link
Copy Markdown

@AriusII
AriusII merged commit 325c47b into main Sep 24, 2026
29 of 31 checks passed
@AriusII
AriusII deleted the release/2.0.0-changelog branch September 24, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant