Skip to content

V0.6.0/double digits - #34

Open
gimlichael wants to merge 14 commits into
mainfrom
v0.6.0/double-digits
Open

gimlichael wants to merge 14 commits into
mainfrom
v0.6.0/double-digits

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request moves the library to .NET 10 and .NET 11, switches the codebase to file-scoped namespaces, and updates CI, Docker test environments, documentation, and the 0.6.0 release notes to match.

Target frameworks:

  • Builds and tests target .NET 10 and .NET 11 with the Sonar analyzer enabled.
  • Central package and build configuration are aligned with the new target frameworks.

Code style:

  • C# sources use file-scoped namespaces and are saved as UTF-8 without a BOM.
  • Line endings are normalized to LF across tracked text files.

Build and CI:

  • CI runners move to Ubuntu 26.04.
  • Docker test environments are split per .NET version.
  • The benchmark prompt is removed.

Documentation:

  • Documentation, DocFX configuration, and the NuGet README describe the net10 and net11 targets.
  • The 0.6.0 changelog and package release notes are added.
  • The documentation site's nginx config serves fixed immutable cache headers.

The repository now requires file-scoped namespaces for all C# files, so the remaining block-scoped declarations are converted and the editorconfig rule is raised to error.
Packages now target .NET 10 and .NET 11 instead of .NET 9, and SonarAnalyzer.CSharp is added as a private build dependency so analyzer findings surface during builds.
CI workflows move from Ubuntu 24.04 to 26.04 runners and opt into preview images so the pipeline tracks the upcoming runner image.
Docker test runners are split into separate net10.0 and net11.0 environments so each target framework is exercised by its own image, and the contributor guide reflects the change.
The benchmark prompt file is deleted from the repository, so the copy under .github/prompts is no longer tracked.
Fingerprinted assets are always served with a one-year immutable cache header, replacing the status-dependent map that set it only on successful and revalidated responses.
The changelog records the 0.6.0 patch release covering analyzer enforcement, formatting normalization, test environments, and documentation hosting.
Readmes, agent guidance and the availability include now name .NET 10 and .NET 11 as the supported targets, matching the project files.
Line endings are normalized to LF through .gitattributes and byte order marks are removed from text files, 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: 5/5

[Medium impact] The PR appears safe to merge; duplicate release-note entries remain a non-blocking issue.

Fix All in CodexFindings

  1. P2 Release notes repeat a version ▶
Fix with agent prompt
### Issue 1
.github/workflows/service-update.yml:96-98
If a service update runs before the planned release is tagged, this branch now reuses that release number. With the current files, it selects `0.6.0` even though `PackageReleaseNotes.txt` already contains `Version: 0.6.0`. The later step always prepends another block, leaving two entries for the same release in the generated PR and package notes. When reusing a planned version, update its existing block instead.

---

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

Summary

The PR moves the library to .NET 10 and .NET 11 and updates its build, tests, and documentation.

  • The library builds for .NET 10 and .NET 11.
  • The service update keeps a planned release version.
  • The documentation site serves fingerprinted assets without range requests.
  • C# source and test files use file-scoped namespaces.
  • The repository no longer includes its benchmark prompt.
  • Repository housekeeping keeps its existing behavior.

Reviews (3) · Last reviewed commit: "💬 update release notes for version 0.6...." · Reviewed by Greptile

Comment thread .docfx/nginx.conf Resolved
@codecov

codecov Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (966baba) to head (d7e9854).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #34   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           11        11           
  Lines          191       191           
  Branches         4         4           
=========================================
  Hits           191       191           

☔ 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The 0.6.0 target framework change removes .NET 9 from the package targets and adds .NET 11, which is a breaking change for consumers, so the release is classified as major.
The fingerprinted asset location cached every response for a year, including errors. Only successful and revalidated responses are now marked immutable, and range requests are disabled so complete assets are served consistently.
The SonarCloud and CodeQL jobs now opt into preview analysis so the pipeline runs the newer analyzer checks.
The service update workflow only accepted a pending patch release. It now honors a planned minor or major version in CHANGELOG.md, validates release dates, and accepts case-insensitive TBD markers.
Comment on lines +96 to +98
if pending_version > released_version:
# Preserve an explicitly planned patch, minor, or major release.
new_version = current_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 Release notes repeat a version

If a service update runs before the planned release is tagged, this branch now reuses that release number. With the current files, it selects 0.6.0 even though PackageReleaseNotes.txt already contains Version: 0.6.0. The later step always prepends another block, leaving two entries for the same release in the generated PR and package notes. When reusing a planned version, update its existing block instead.

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

Comment:
**Release notes repeat a version**

If a service update runs before the planned release is tagged, this branch now reuses that release number. With the current files, it selects `0.6.0` even though `PackageReleaseNotes.txt` already contains `Version: 0.6.0`. The later step always prepends another block, leaving two entries for the same release in the generated PR and package notes. When reusing a planned version, update its existing block instead.

---

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 1, 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