Skip to content

V1.1.0/double digits - #17

Open
gimlichael wants to merge 13 commits into
mainfrom
v1.1.0/double-digits
Open

gimlichael wants to merge 13 commits into
mainfrom
v1.1.0/double-digits

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request adds .NET 11 targeting alongside .NET 10 for the Carter libraries, tests, and benchmark configuration. It updates CI for preview SDKs, aligns framework guidance and package metadata, and normalizes source and test formatting.

Build and CI:

  • Target net11.0 and net10.0 through the shared build configuration and upgrade Codebelt.Coverlet.MTP to 10.1.1.
  • Move Linux CI jobs to Ubuntu 26.04 and enable preview SDK installation for builds, packaging, tests, and code analysis.
  • Update the service release workflow's fallback availability text to .NET 10 and .NET 11.

Framework guidance and package metadata:

  • Document both target frameworks in repository guidance, API availability text, and NuGet package READMEs.
  • Record .NET 11 targeting in the 1.1.0 package release notes.
  • Update contributor instructions for installing both SDKs, running tests, and understanding CI and publishing gates.

Formatting consistency:

  • Normalize line endings and whitespace across production sources, unit tests, and functional tests.

Shared build properties now target net11.0 alongside net10.0 for the source, test, and benchmark projects so the libraries can be built and tested against .NET 11.
Moves the central package version of Codebelt.Coverlet.MTP to the latest stable release to keep the test coverage tooling current.
Converts affected source and test files to LF line endings and removes stray indentation and trailing whitespace so formatting matches the rest of the codebase.
Updates the README, AGENTS guidance, and availability include to describe .NET 11 alongside .NET 10 as supported targets.
Explains which SDKs contributors need to build and test both target frameworks and describes the updated test loop and CI coverage.
Moves CI runners to Ubuntu 26.04 and opts in to preview SDKs so .NET 11 can be built and tested before its final release. The default availability text in the service update workflow now lists .NET 10 and .NET 11.
Records the .NET 11 target in the package release notes and adds a target framework line to each package README so NuGet consumers see the supported frameworks.
@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 cache and contributor-guide fixes recommended.

Fix All in CodexFindings

  1. P2 Missing assets stay cached ▶
  2. P2 WSL guide names wrong version ▶
  3. P2 Previous release notes disappear ▶
Fix with agent prompt
### Issue 1
.docfx/nginx.conf:14
Adding `always` gives 404 responses the same year-long cache policy as successful responses. If an asset is temporarily missing, browsers and shared caches can keep the error even after the asset becomes available. Remove `always` from this header, or give error responses a separate no-store policy.

```suggestion
    add_header Cache-Control "public, max-age=31536000, immutable";
```

### Issue 2
testenvironments.json:7
`testenvironments.json` now selects `Ubuntu-26.04`, but `.github/CONTRIBUTING.md` still says `WSL-Ubuntu` uses `Ubuntu-24.04`. Contributors following the guide can install the wrong distribution and then fail to start the configured environment. Update the guide alongside this change.

### Issue 3
.nuget/Codebelt.Extensions.Carter.AspNetCore.Text.Json/PackageReleaseNotes.txt:1-5
The new `1.1.0` entry replaces `1.0.9` instead of being added above it. The YAML and XML package notes do the same. Because `Directory.Build.targets` copies each whole file into NuGet release notes, these three packages lose their published `1.0.9` history. Restore that entry below `1.1.0`, as the core and Newtonsoft.Json packages already do.

---

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

Summary

Adds .NET 11 targeting alongside .NET 10 and updates CI, package guidance, and formatting.

  • Carter packages and shared projects target .NET 11 alongside .NET 10.
  • CI builds and tests both frameworks with preview SDKs on updated runners.
  • Repository guidance and API pages now describe both supported frameworks.
  • Fingerprint-named documentation assets keep their cache header on error responses.
  • C# files must use file-scoped namespaces.
  • Source, tests, and build files use consistent line endings and formatting.

Reviews (2) · Last reviewed commit: "📝 normalize line endings in agent folde..." · Reviewed by Greptile

Comment on lines +1 to +5
Version: 1.1.0
Availability: .NET 11 and .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
- CHANGED Target frameworks by adding .NET 11 (net11.0) so the package now targets .NET 11 and .NET 10

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 Previous release notes disappear

The new 1.1.0 entry replaces 1.0.9 instead of being added above it. The YAML and XML package notes do the same. Because Directory.Build.targets copies each whole file into NuGet release notes, these three packages lose their published 1.0.9 history. Restore that entry below 1.1.0, as the core and Newtonsoft.Json packages already do.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .nuget/Codebelt.Extensions.Carter.AspNetCore.Text.Json/PackageReleaseNotes.txt
Line: 1-5

Comment:
**Previous release notes disappear**

The new `1.1.0` entry replaces `1.0.9` instead of being added above it. The YAML and XML package notes do the same. Because `Directory.Build.targets` copies each whole file into NuGet release notes, these three packages lose their published `1.0.9` history. Restore that entry below `1.1.0`, as the core and Newtonsoft.Json packages already do.

---

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

Fix in Codex

Centralizes the SonarAnalyzer.CSharp package version and makes file-scoped namespaces a build error across the solution, so the project-wide style rule is enforced rather than suggested. Line endings and byte order marks in these files are normalized in the same pass.
Moves the CI test matrix to the .NET 10 and .NET 11 runner images and tunes nginx cache headers for the DocFX site. Also normalizes byte order marks and line endings in the DocFX files, so the published docs match the new targets.
Records the .NET 11 target framework addition, the Coverlet.MTP upgrade and the CI runner move for the 1.1.0 release.
Keeps the contributor and NuGet-facing docs in line with the .NET 11 target framework added in this release.
Brings the two unit test files in line with the file-scoped namespace rule. Assertions are unchanged.
Brings the tracked .bot/README.md in line with the repository line-ending policy at the user's request. The file has no content change.
Comment thread .docfx/nginx.conf
# cached permanently because changed content is published under a different URL.
location ~ "^/public/.+-[A-Z0-9]{8}(?:-[A-Z0-9]{8})?(?:\.min)?\.(?:(?:css|js)(?:\.map)?|woff2?)$" {
try_files $uri =404;
add_header Cache-Control "public, max-age=31536000, immutable" always;

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 Missing assets stay cached

Adding always gives 404 responses the same year-long cache policy as successful responses. If an asset is temporarily missing, browsers and shared caches can keep the error even after the asset becomes available. Remove always from this header, or give error responses a separate no-store policy.

Suggested change
add_header Cache-Control "public, max-age=31536000, immutable" always;
add_header Cache-Control "public, max-age=31536000, immutable";
Prompt To Fix With AI
This is a comment left during a code review.
Path: .docfx/nginx.conf
Line: 14

Comment:
**Missing assets stay cached**

Adding `always` gives 404 responses the same year-long cache policy as successful responses. If an asset is temporarily missing, browsers and shared caches can keep the error even after the asset becomes available. Remove `always` from this header, or give error responses a separate no-store policy.

```suggestion
    add_header Cache-Control "public, max-age=31536000, immutable";
```

---

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 guide names wrong version

testenvironments.json now selects Ubuntu-26.04, but .github/CONTRIBUTING.md still says WSL-Ubuntu uses Ubuntu-24.04. Contributors following the guide can install the wrong distribution and then fail to start the configured 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 guide names wrong version**

`testenvironments.json` now selects `Ubuntu-26.04`, but `.github/CONTRIBUTING.md` still says `WSL-Ubuntu` uses `Ubuntu-24.04`. Contributors following the guide can install the wrong distribution and then fail to start the configured 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

@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