Skip to content

V11.0.0/double digits - #40

Open
gimlichael wants to merge 11 commits into
mainfrom
v11.0.0/double-digits
Open

gimlichael wants to merge 11 commits into
mainfrom
v11.0.0/double-digits

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request retargets the Codebelt.Extensions.YamlDotNet suite to .NET 11 and .NET 10, removes .NET 9 from the build, upgrades central package versions, and converts the sources to file-scoped namespaces with normalized line endings.

Build and packaging:

  • Packages and tests target .NET 11 and .NET 10 alongside .NET Standard 2.0, and the shared build properties and project overrides match.
  • Central package versions move to their latest stable releases, including Cuemon, Codebelt.Coverlet.MTP, the HangDump extension and the new SonarAnalyzer.CSharp analyzer, which is referenced from the shared build props.

Source and tests:

  • Source files use file-scoped namespaces, as required by the editorconfig rule.
  • Line endings are normalized to LF through gitattributes and the UTF-8 byte order mark is removed, so diffs show only real content changes.
  • Test projects and assets follow the same target and namespace conventions as the production code.

Continuous integration:

  • The pipeline runs on Ubuntu 26.04 with the .NET 11 preview SDK, and coverage filters are set explicitly so inferred namespaces do not drop production assemblies.
  • Docker test environments are split by target framework, so net10.0 and net11.0 each run in their own environment, and WSL moves to Ubuntu 26.04.
  • The service update workflow derives the current version from the latest stable Git tag instead of the changelog, so pending major releases and prerelease triggers are handled safely.

Documentation:

  • The changelog and package release notes record the .NET 11 target change, the removal of .NET 9 and the dependency upgrades for 11.0.0.
  • Readmes, contributor guidance, agent instructions and DocFX availability text list .NET 11 and .NET 10 instead of .NET 9.
  • DocFX configuration, namespace overview pages and package index pages are regenerated to match the current API surface.

Packages and tests now target .NET 11 and .NET 10 alongside .NET Standard 2.0, so the shared build properties and project TFM overrides must match.
Brings Cuemon, Codebelt.Coverlet.MTP and the HangDump extension to their latest stable releases, keeping central package management current.
The pipeline runs on the new .NET 11 toolchain, which requires preview SDK provisioning, and coverage filters are set explicitly so inferred namespaces do not drop production assemblies.
The service update workflow now reads the latest stable Git tag instead of the changelog, so pending major releases and prerelease triggers are handled safely.
Records the .NET 11 target change, removal of .NET 9 and the dependency upgrades for the 11.0.0 release so consumers can see what changed.
Readmes, contributor guidance, agent instructions and DocFX availability text now list .NET 11 and .NET 10 instead of .NET 9, matching the new target frameworks.
Static analysis via SonarAnalyzer.CSharp catches code smells across the library packages, so the analyzer is pinned centrally and referenced from the shared build props.
File-scoped namespaces are now mandatory per the editorconfig rule, so existing block-scoped files are converted to match.
The test runner image is now selected per target framework, so net10.0 and net11.0 each get their own Docker environment, and WSL moves to Ubuntu 26.04.
The contributing guide lists the frameworks and test environments that the repository currently targets.
Line endings are normalized to LF through gitattributes and the UTF-8 byte order mark is removed, so diffs only show real content changes.
@gimlichael gimlichael self-assigned this Oct 30, 2026
@greptile-apps

greptile-apps Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The changes reach package compatibility, CI, and release automation for this YAML library suite.

Fix the dated pending release check before merging so service updates can run before the release is tagged.

Fix All in CodexFindings

  1. P1 Service updates stop before tagging ▶
  2. P2 WSL setup instructions disagree ▶
Fix with agent prompt
### Issue 1
.github/workflows/service-update.yml:86-98
The new version check rejects this PR’s own changelog. `CHANGELOG.md` starts with dated version `11.0.0`, but the latest stable tag is `v10.1.9`. A service update on this checkout, or after merging before tagging, reaches the error branch and stops before updating dependencies or opening a PR.

Mark the pending release as `TBD`, or allow an untagged dated release to be reused safely.

### Issue 2
testenvironments.json:7
This change selects `Ubuntu-26.04`, but `.github/CONTRIBUTING.md` still tells contributors to use `Ubuntu-24.04`. Someone following the guide may install the wrong distribution and be unable to start the declared test environment. Update the guide alongside this change.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This PR moves packages and tests to .NET 11 and .NET 10, keeps the core .NET Standard 2.0 asset, upgrades dependencies, and converts C# files to file-scoped namespaces.

  • The YAML packages target .NET 11 and .NET 10.
  • CI builds and tests the packages on updated Ubuntu and Docker environments.
  • Service updates choose release versions from stable Git tags.
  • Source and test files use file-scoped namespaces and consistent line endings.

Reviews (1) · Last reviewed commit: "🎨 normalize line endings and remove utf..." · Reviewed by Greptile

Comment on lines +86 to +98
if current_status.upper() == "TBD" and tuple(map(int, current_version.split("."))) > (major, minor, patch):
# Reuse the pending release, including a framework-support major release.
new_version = current_version
elif current_version == latest_version and current_status.upper() != "TBD":
# The changelog is at the latest released tag; start the next patch release.
new_version = next_version
else:
print(
f"::error::CHANGELOG.md starts at {current_version} ({current_status}), "
f"but the latest stable Git tag is {latest_tag}. Expected either "
f"[{latest_version}] with a release date or a newer version with TBD."
)
sys.exit(1)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Service updates stop before tagging

The new version check rejects this PR’s own changelog. CHANGELOG.md starts with dated version 11.0.0, but the latest stable tag is v10.1.9. A service update on this checkout, or after merging before tagging, reaches the error branch and stops before updating dependencies or opening a PR.

Mark the pending release as TBD, or allow an untagged dated release to be reused safely.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/service-update.yml
Line: 86-98

Comment:
**Service updates stop before tagging**

The new version check rejects this PR’s own changelog. `CHANGELOG.md` starts with dated version `11.0.0`, but the latest stable tag is `v10.1.9`. A service update on this checkout, or after merging before tagging, reaches the error branch and stops before updating dependencies or opening a PR.

Mark the pending release as `TBD`, or allow an untagged dated release to be reused safely.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex

Comment thread testenvironments.json
{
"name": "WSL-Ubuntu",
"type": "wsl",
"wslDistribution": "Ubuntu-26.04"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 WSL setup instructions disagree

This change selects Ubuntu-26.04, but .github/CONTRIBUTING.md still tells contributors to use Ubuntu-24.04. Someone following the guide may install the wrong distribution and be unable to start the declared test environment. Update the guide alongside this change.

Prompt To Fix With AI
This is a comment left during a code review.
Path: testenvironments.json
Line: 7

Comment:
**WSL setup instructions disagree**

This change selects `Ubuntu-26.04`, but `.github/CONTRIBUTING.md` still tells contributors to use `Ubuntu-24.04`. Someone following the guide may install the wrong distribution and be unable to start the declared test environment. Update the guide alongside this change.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex

@codecov

codecov Bot commented Oct 30, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.38220% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.38%. Comparing base (237b0d0) to head (3b603eb).

Files with missing lines Patch % Lines
...ons.YamlDotNet/Formatters/PropertyTypeInspector.cs 68.96% 9 Missing ⚠️
....Extensions.YamlDotNet/Converters/YamlConverter.cs 83.33% 3 Missing ⚠️
....Extensions.YamlDotNet/Formatters/YamlFormatter.cs 97.22% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #40      +/-   ##
==========================================
+ Coverage   96.66%   97.38%   +0.71%     
==========================================
  Files          14       18       +4     
  Lines         450      573     +123     
  Branches       37       52      +15     
==========================================
+ Hits          435      558     +123     
  Misses         15       15              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
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.

2 participants