Skip to content

V2.0.0/double digits - #24

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

gimlichael wants to merge 10 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: 4/5

[Medium impact] The changes reach package consumers and the repository's build, test, and release workflows.

The PR appears safe to merge, with two non-blocking fixes recommended for pending release records.

Fix All in CodexFindings

  1. P2 Pending package notes repeat ▶
  2. P2 Pending changelog section repeats ▶
Fix with agent prompt
### Issue 1
.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.

### Issue 2
.github/workflows/service-update.yml:143
The version check accepts lowercase `tbd` through `current_status.upper()`, but this lookup only accepts uppercase `TBD`. With a pending heading such as `[1.3.6] - tbd`, the first step succeeds, then this step inserts another heading for `1.3.6` instead of updating it. Use the same status matching in both steps.

---

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

Summary

Moves source, tests, and benchmarks to .NET 11 and .NET 10, dropping .NET 9.

  • The library builds and runs benchmarks on .NET 11 and .NET 10.
  • The service update workflow checks stable tags before changing the release record.
  • CI build, test, and analysis jobs can use preview toolchains.
  • The shared package list uses newer Coverlet and Bootstrapper versions.
  • Touched C# files use consistent namespaces and file formatting.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Read stable Git tags] --> B[Calculate next patch]
  B --> C[Check first changelog heading]
  C --> D[Reuse pending version or start next patch]
  D --> E[Update packages and release records]
  E --> F{Dry run?}
  F -->|Yes| G[Show changes]
  F -->|No| H[Open service-update pull request]
Loading

Reviews (1) · Last reviewed commit: "👷 enable preview builds in ci pipeline" · Reviewed by Greptile

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

idx = content.find("## [")
content = (content[:idx] + entry + content[idx:]) if idx != -1 else (content + entry)
with open("CHANGELOG.md", "w") as f:
heading = re.search(r"(?m)^## \[(\d+\.\d+\.\d+)\] - (TBD|\d{4}-\d{2}-\d{2})[ \t]*$", content)

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 changelog section repeats

The version check accepts lowercase tbd through current_status.upper(), but this lookup only accepts uppercase TBD. With a pending heading such as [1.3.6] - tbd, the first step succeeds, then this step inserts another heading for 1.3.6 instead of updating it. Use the same status matching in both steps.

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

Comment:
**Pending changelog section repeats**

The version check accepts lowercase `tbd` through `current_status.upper()`, but this lookup only accepts uppercase `TBD`. With a pending heading such as `[1.3.6] - tbd`, the first step succeeds, then this step inserts another heading for `1.3.6` instead of updating it. Use the same status matching in both steps.

---

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 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.30769% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 92.30%. Comparing base (94f18a0) to head (5cfb096).

Files with missing lines Patch % Lines
...ebelt.Extensions.BenchmarkDotNet.Runner/Program.cs 92.30% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #24   +/-   ##
=======================================
  Coverage   92.30%   92.30%           
=======================================
  Files           1        1           
  Lines          13       13           
=======================================
  Hits           12       12           
  Misses          1        1           

☔ 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