Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .docfx/includes/availability-modern.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Availability: .NET 10
Availability: .NET 10 and .NET 11
9 changes: 6 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This repository is part of the Codebelt .NET library estate. The instructions be
## Before you start

- Read the repository `README.md` and open an issue before starting a non-trivial feature or behavioral change.
- Use an installed .NET SDK that can build the target frameworks listed below. This repository currently targets: **net10.0**.
- Install the .NET 10 and .NET 11 SDKs to build **net10.0** and **net11.0** and run all tests. This supplies the required .NET and ASP.NET Core runtimes for both targets.
- The solution is `Codebelt.Extensions.Carter.slnx`. Central package versions are maintained in `Directory.Packages.props`.
- The shared build behavior is in `Directory.Build.props` and `Directory.Build.targets`; repository-specific TFMs, package references and metadata remain local to this library.

Expand Down Expand Up @@ -35,11 +35,14 @@ Run tests one project at a time so a failing or hanging project is attributable.
```powershell
$testProjects = Get-ChildItem test -Filter *.csproj -Recurse
foreach ($project in $testProjects) {
dotnet test $project.FullName --configuration Release --no-restore
dotnet test --project $project.FullName --configuration Release --no-build
if ($LASTEXITCODE -ne 0) { throw "Tests failed: $($project.FullName)" }
}
```

The CI test plan currently runs **6** project(s) and excludes **0** project(s). The workflow also has an optional macOS test job.
The CI test plan runs all **6** test projects on both **net10.0** and **net11.0**, in Debug and Release on Linux and Windows for x64 and ARM64. The workflow also has an optional macOS test job. SDK installation includes preview releases so .NET 11 can be tested before its final release.

NuGet publishing requires successful builds, packaging, the test quality gate, SonarCloud, Codecov, and CodeQL.

## Integration and infrastructure

Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/ci-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ permissions:
jobs:
init:
name: initialize
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
outputs:
run-mac-tests: ${{ steps.vars.outputs.run-mac-tests }}
run-privileged-jobs: ${{ steps.vars.outputs.run-privileged-jobs }}
Expand Down Expand Up @@ -59,10 +59,11 @@ jobs:
configuration: [Debug, Release]
uses: codebeltnet/jobs-dotnet-build/.github/workflows/default.yml@v3
with:
include-preview: true
configuration: ${{ matrix.configuration }}
strong-name-key-filename: ${{ needs.init.outputs.strong-name-key-filename }}
build-switches: ${{ needs.init.outputs.build-switches }}
runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-26.04-arm' || 'ubuntu-26.04' }}
upload-build-artifact-name: build-${{ matrix.configuration }}-${{ matrix.arch }}
secrets: inherit

Expand All @@ -74,6 +75,7 @@ jobs:
configuration: [Debug, Release]
uses: codebeltnet/jobs-dotnet-pack/.github/workflows/default.yml@v3
with:
include-preview: true
configuration: ${{ matrix.configuration }}
version: ${{ needs.build.outputs.version }}
download-build-artifact-pattern: build-${{ matrix.configuration }}-X64
Expand All @@ -88,7 +90,8 @@ jobs:
arch: [X64, ARM64]
uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3
with:
runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
include-preview: true
runs-on: ${{ matrix.arch == 'ARM64' && 'ubuntu-26.04-arm' || 'ubuntu-26.04' }}
configuration: ${{ matrix.configuration }}
build-switches: -p:SkipSignAssembly=true
build: true # we need to build due to xUnitv3
Expand All @@ -105,6 +108,7 @@ jobs:
arch: [X64, ARM64]
uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3
with:
include-preview: true
runs-on: ${{ matrix.arch == 'ARM64' && 'windows-11-arm' || 'windows-2025' }}
configuration: ${{ matrix.configuration }}
build-switches: -p:SkipSignAssembly=true
Expand All @@ -123,6 +127,7 @@ jobs:
configuration: [Debug, Release]
uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3
with:
include-preview: true
runs-on: ${{ matrix.arch == 'ARM64' && 'macos-26' || 'macos-26-intel' }}
configuration: ${{ matrix.configuration }}
build-switches: -p:SkipSignAssembly=true
Expand All @@ -134,7 +139,7 @@ jobs:
if: ${{ always() }}
name: test-qualitygate
needs: [init, test_linux, test_windows, test_mac]
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Evaluate test results
shell: bash
Expand Down Expand Up @@ -180,6 +185,7 @@ jobs:
needs: [init, build, test_qualitygate]
uses: codebeltnet/jobs-sonarcloud/.github/workflows/default.yml@v3
with:
include-preview: true
organization: geekle
projectKey: codebelt-carter
version: ${{ needs.build.outputs.version }}
Expand All @@ -199,6 +205,8 @@ jobs:
name: call-codeql
needs: [init, build, test_qualitygate]
uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v3
with:
include-preview: true
permissions:
security-events: write

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/service-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ jobs:
NEW="${{ steps.newver.outputs.new }}"
for f in .nuget/*/PackageReleaseNotes.txt; do
[ -f "$f" ] || continue
TFM=$(grep -m1 "^Availability:" "$f" | sed 's/Availability: //' || echo ".NET 10, .NET 9 and .NET Standard 2.0")
TFM=$(grep -m1 "^Availability:" "$f" | sed 's/Availability: //' || echo ".NET 10 and .NET 11")
ENTRY="Version: ${NEW}\nAvailability: ${TFM}\n\n# ALM\n- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)\n\n"
{ printf "$ENTRY"; cat "$f"; } > "$f.tmp" && mv "$f.tmp" "$f"
done
Expand Down
Original file line number Diff line number Diff line change
@@ -1,59 +1,65 @@
Version: 1.1.0
Availability: .NET 11 and .NET 10

# ALM
- CHANGED Target frameworks by adding .NET 11 (net11.0) so the package now targets .NET 11 and .NET 10

Version: 1.0.9
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.8
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.7
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.6
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.5
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.4
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.3
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.2
Availability: .NET 10
# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
Version: 1.0.1
Availability: .NET 10
# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
Version: 1.0.0
Availability: .NET 10
# New Features
- ADDED NewtonsoftJsonNegotiator class in the Codebelt.Extensions.Carter.AspNetCore.Newtonsoft.Json namespace that provides a JSON response negotiator for Carter, capable of serializing response models to JSON format using Newtonsoft.Json
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.2
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.1
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.0
Availability: .NET 10

# New Features
- ADDED NewtonsoftJsonNegotiator class in the Codebelt.Extensions.Carter.AspNetCore.Newtonsoft.Json namespace that provides a JSON response negotiator for Carter, capable of serializing response models to JSON format using Newtonsoft.Json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

A Newtonsoft.Json-powered response negotiator for Carter in ASP.NET Core minimal APIs.

Target frameworks: .NET 10 (`net10.0`) and .NET 11 (`net11.0`).

## About

**Codebelt.Extensions.Carter.AspNetCore.Newtonsoft.Json** extends the **Codebelt.Extensions.Carter** package with a dedicated JSON response negotiator for Carter, capable of serializing response models to JSON format using Newtonsoft.Json.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,59 +1,59 @@
Version: 1.0.9
Availability: .NET 10
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
Comment on lines +1 to +5

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


Version: 1.0.8
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.7
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.6
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.5
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.4
Availability: .NET 10
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.3
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.2
Availability: .NET 10
# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
Version: 1.0.1
Availability: .NET 10
# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
Version: 1.0.0
Availability: .NET 10
# New Features
- ADDED JsonResponseNegotiator class in the Codebelt.Extensions.Carter.AspNetCore.Text.Json namespace that provides a JSON response negotiator for Carter, capable of serializing response models to JSON format using System.Text.Json
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.2
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.1
Availability: .NET 10

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 1.0.0
Availability: .NET 10

# New Features
- ADDED JsonResponseNegotiator class in the Codebelt.Extensions.Carter.AspNetCore.Text.Json namespace that provides a JSON response negotiator for Carter, capable of serializing response models to JSON format using System.Text.Json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

A System.Text.Json-powered response negotiator for Carter in ASP.NET Core minimal APIs.

Target frameworks: .NET 10 (`net10.0`) and .NET 11 (`net11.0`).

## About

**Codebelt.Extensions.Carter.AspNetCore.Text.Json** extends the **Codebelt.Extensions.Carter** package with a dedicated JSON response negotiator for Carter, capable of serializing response models to JSON format using System.Text.Json.
Expand Down
Loading
Loading