Skip to content

V2.0.0/double digits - #24

Open
gimlichael wants to merge 19 commits into
mainfrom
v2.0.0/double-digits
Open

gimlichael wants to merge 19 commits into
mainfrom
v2.0.0/double-digits

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request moves Codebelt.Extensions.BenchmarkDotNet to .NET 11 and .NET 10 as its supported targets and drops .NET 9, which is why it ships as the 2.0.0 major version. It also updates central package versions, derives service update versions from Git tags, and enables preview toolchains in CI.

Target frameworks:

  • Source, test, and benchmark projects build for net11.0 and net10.0, and .NET 9 is no longer targeted.
  • The benchmark runner and tuning workspaces run their jobs on .NET 11 and .NET 10, so reported results reflect the supported runtimes.

Documentation:

  • The README, contributing guide, and agent guidance describe .NET 11 and .NET 10 as the supported targets.
  • The DocFX availability include shows the same targets.

Release notes:

  • Both package release notes list version 2.0.0 with .NET 11 and .NET 10 availability and record the removal of .NET 9.

Dependencies:

  • Codebelt.Coverlet.MTP is updated to 10.1.1 and Codebelt.Bootstrapper.Console to 5.2.3.

Automation workflows:

  • The service update workflow derives the next version from the latest stable vMAJOR.MINOR.PATCH Git tag and validates it against CHANGELOG.md before updating the changelog and release notes.
  • A pending TBD changelog entry for the next version is reused rather than duplicated.
  • Release notes default to .NET 11 and .NET 10 availability when no availability line exists.
  • The CI pipeline opts the reusable build, pack, test, SonarCloud, and CodeQL jobs into preview toolchains.

Formatting:

  • Touched C# files use file-scoped namespaces and no longer contain byte order marks or trailing whitespace, matching the .editorconfig rules. No behavior changes.

aicia-bot and others added 10 commits October 22, 2026 18:01
Aligns the touched C# files with the file-scoped namespace rule enforced by .editorconfig. No behavior changes; the namespaces and type declarations are unchanged.
Moves the central package versions to the latest stable releases of Codebelt.Coverlet.MTP and Codebelt.Bootstrapper.Console so the build and tooling stay current.
Moves the source, test, and benchmark projects from net9.0 to net11.0 alongside net10.0. The functional tests now always reference the runner project, since the net10.0-only condition no longer selects a single framework.
The service update workflow now derives the next version from the latest stable vMAJOR.MINOR.PATCH tag and validates it against CHANGELOG.md, instead of trusting the changelog heading alone. The changelog entry is reused when a pending TBD release already exists.
Strips UTF-8 byte order marks and trailing whitespace from the C# files so the repository matches the .editorconfig formatting rules. No code changes; the diff is formatting only.
The benchmark runner and tuning workspaces now run on .NET 11 and .NET 10 instead of .NET 9, so benchmark results reflect the runtimes this library supports.
The CI release notes job falls back to .NET 11 and .NET 10 when no availability line exists, matching the supported targets.
The README, agent guidance, contributing guide, and DocFX availability include now describe .NET 11 and .NET 10 as the supported targets.
Both packages now list .NET 11 and .NET 10 as their availability in version 2.0.0, since .NET 9 support was dropped.
Opt the reusable build, pack, test, SonarCloud, and CodeQL workflows into preview inputs so the pipeline exercises preview toolchains alongside the stable configuration.
@gimlichael gimlichael self-assigned this Oct 22, 2026
@greptile-apps

greptile-apps Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge, with non-blocking cleanup needed for the WSL guide and duplicate pending package notes.

Fix All in CodexFindings

  1. P2 WSL setup guide is outdated ▶
  2. P2 Pending package notes repeat ▶
Fix with agent prompt
### Issue 1
testenvironments.json:7
`testenvironments.json` now requires `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 then be unable to start the configured WSL test environment. Update the guide to name `Ubuntu-26.04`.

### Issue 2
.github/workflows/service-update.yml:86-88
When `CHANGELOG.md` already has the next patch marked `TBD`, this branch now reuses that version. But the release-note step still always prepends a new entry. If the pending release already has package notes, the generated PR adds a second `Version:` block for the same release in both packages. Reuse the existing package-note entry too, preserving its changes.

---

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

Summary

This PR moves the packages, tests, and benchmarks to .NET 11 and .NET 10 and documents the removal of .NET 9.

  • Benchmark projects and runner now use .NET 10 and .NET 11.
  • CI runs its build and analysis jobs with preview toolchains.
  • Service updates derive release versions from stable Git tags.
  • The shared package list uses updated test and build dependencies.
  • Fingerprint-named documentation assets cache only on successful responses.
  • The benchmark-writing prompt is removed from the repository guidance.
  • Repository files now use consistent line endings and namespace style.

Reviews (2) · Last reviewed commit: "💬 document net11 support in changelog a..." · Reviewed by Greptile

Comment thread .github/workflows/service-update.yml Outdated
Comment on lines +86 to +88
if current_version == next_version and current_status.upper() == "TBD":
# Reuse an already pending next release, such as [5.0.13] - TBD.
new_version = next_version

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 Pending package notes repeat

When CHANGELOG.md already has the next patch marked TBD, this branch now reuses that version. But the release-note step still always prepends a new entry. If the pending release already has package notes, the generated PR adds a second Version: block for the same release in both packages. Reuse the existing package-note entry too, preserving its changes.

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

Comment:
**Pending package notes repeat**

When `CHANGELOG.md` already has the next patch marked `TBD`, this branch now reuses that version. But the release-note step still always prepends a new entry. If the pending release already has package notes, the generated PR adds a second `Version:` block for the same release in both packages. Reuse the existing package-note entry too, preserving its changes.

---

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

Fix in Codex

Comment thread .github/workflows/service-update.yml Resolved
@codecov

codecov Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.18329% with 29 lines in your changes missing coverage. Please review.
✅ Project coverage is 92.32%. Comparing base (94f18a0) to head (38426c5).

Files with missing lines Patch % Lines
...sions.BenchmarkDotNet/BenchmarkWorkspaceOptions.cs 82.81% 22 Missing ⚠️
...nsions.BenchmarkDotNet.Console/BenchmarkProgram.cs 93.10% 6 Missing ⚠️
...ebelt.Extensions.BenchmarkDotNet.Runner/Program.cs 92.30% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #24      +/-   ##
==========================================
+ Coverage   92.30%   92.32%   +0.02%     
==========================================
  Files           1        7       +6     
  Lines          13      378     +365     
  Branches        0       40      +40     
==========================================
+ Hits           12      349     +337     
- Misses          1       29      +28     

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

gimlichael and others added 9 commits October 22, 2026 19:24
Keep package documentation consistent with the net11.0 and net10.0 targets by replacing stale .NET 9 references and matching the console example to the current benchmark runner.
The benchmark prompt template is no longer needed by the repository, so it is removed to keep agent guidance focused on the maintained instructions.
Files are now stored with LF endings and without UTF-8 byte order marks, which keeps diffs readable and matches the text=auto eol=lf rule in .gitattributes. These files have no content changes.
CI jobs and the test environment matrix now target Ubuntu 26.04 and split the Docker test runner into net10.0 and net11.0 environments, so each target framework is tested on its own image.
The service update workflow now accepts a pending changelog version newer than the latest tag and validates release dates, so a planned major release is not overwritten by the next patch bump.
Error responses for fingerprinted assets are no longer cached for a year, and range requests are disabled so that a partial response cannot be served from the cache.
SonarAnalyzer.CSharp is added to source projects, and central package versions are bumped for Codebelt.Coverlet.MTP, Cuemon.Core, and Microsoft.Testing.Extensions.HangDump.
The editor configuration now treats file-scoped namespaces as an error for all C# files instead of a suggestion, so the rule is enforced rather than optional.
The changelog and package release notes now describe .NET 11 support and the removal of .NET 9, so consumers can see the breaking change for the 2.0.0 release. The contributing guide and the .bot README are updated to match the new test environments and policy.
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 guide is outdated

testenvironments.json now requires 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 then be unable to start the configured WSL test environment. Update the guide to name Ubuntu-26.04.

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

Comment:
**WSL setup guide is outdated**

`testenvironments.json` now requires `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 then be unable to start the configured WSL test environment. Update the guide to name `Ubuntu-26.04`.

---

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

Fix in Codex

@sonarqubecloud

sonarqubecloud Bot commented Nov 3, 2026

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