Repository navigation
V6.0.0/double digits - #64
Open
gimlichael wants to merge 36 commits into
Open
gimlichael wants to merge 36 commits into
gimlichael wants to merge 36 commits into
Conversation
Moves the shared build baseline from net9.0 and net10.0 to net11.0 and net10.0, including the test target selection in CI. The net9.0-only System.Linq.Async reference in Savvyio.Messaging is removed because both remaining targets provide async LINQ.
Adds net11 package versions for the Entity Framework Core, SQLite, logging, and cryptography dependencies, moves the net9-specific pins out, and refreshes AWS SDK, Dapper, and Coverlet versions to their latest stable releases.
The CI pipeline now installs preview .NET SDKs so the net11.0 target can build and test before it is generally available across all runners.
The service update automation now keeps an explicitly planned TBD minor or major version instead of resetting it to the next patch, and avoids duplicating an existing pending release block in PackageReleaseNotes.txt.
The Dockerfile used to run tests against the .NET 10 SDK with a .NET 9 runtime, which is no longer needed once net9.0 support is dropped.
Updates the modern availability include to .NET 11 and .NET 10, and renders namespace child types as definition lists so each type summary reads as a single entry.
The root README and agent guidance describe the library as targeting .NET 10 and .NET 11, matching the new target framework baseline.
Documents the .NET 11 baseline change, the removal of .NET 9 support, and the service automation changes in the changelog, and updates contributor guidance to list net11.0 as the CI target.
Adds a 6.0.0 release notes block to each package describing the .NET 11 target addition and the .NET 9 removal, so consumers see the breaking framework baseline in NuGet package notes.
Package README files now describe the supported runtime as .NET 10 and .NET 11 instead of .NET 9 and .NET 10, so the NuGet landing pages match the new target framework baseline.
Namespace declarations across the solution now use file-scoped syntax, matching the repository style. This is a mechanical change with no behavior impact, and it prepares the codebase for enforcing the rule in .editorconfig.
The namespace rule is now an error instead of a suggestion, and the note that existing block-scoped files should be left alone is removed. The codebase is converted in the previous commit, so the rule can be enforced without new violations.
Remove the UTF-8 byte order mark and normalize line endings to LF so the files match the charset and end_of_line rules in .editorconfig.
Apply formatting-only cleanups to the NATS, RabbitMQ, and messaging code and tests, including target-typed new expressions and collection expression spacing. No behavior changes.
Tracked text files were stored with mixed CRLF line endings and a UTF-8 byte order mark. Normalize them to LF without a BOM so diffs only show real changes and the new line ending check passes.
The new line_endings job fails the test quality gate when tracked text files are not stored with LF line endings. The CI jobs move from ubuntu-24.04 to ubuntu-26.04 to match the current runner image.
Savvyio's own AssemblyContext duplicated the scanning logic now provided by Cuemon. The dispatcher, handler, and cloud event converters use Cuemon's implementation and exclude the Savvyio core assembly from brute-force scanning.
Assembly scanning now uses Cuemon's AssemblyContext, so the Savvyio.Reflection copy is no longer needed. Its tests are rewritten against the Cuemon implementation.
Configured options are now provided by Cuemon's AddConfiguredOptions, so these test files import Cuemon.Extensions.DependencyInjection instead of relying on the Savvyio copy that is being removed.
AddConfiguredOptions now comes from Cuemon.Extensions.DependencyInjection, which shares one options instance across TOptions and IOptions<TOptions>. Removing the Savvyio copy is a breaking change for callers that used it from this package.
The Cuemon configured options share one instance between direct options and IOptions<TOptions>.Value, and defer setup until materialization. The tests now assert that behavior instead of the previous eager, separate instance.
Documents the .NET 11 baseline, the removal of .NET 9 support, and the move of configured options to Cuemon so consumers can see the breaking changes in the release notes.
The benchmark fixture prompt is removed from the repository prompts folder, so benchmark guidance is no longer generated from this file.
[High impact] The changes appear safe to merge, with all previous findings addressed and no new blocking issue established. SummaryThis PR moves Savvy I/O to .NET 10 and .NET 11 and replaces its assembly discovery and configured-options APIs with Cuemon implementations.
Reviews (3) · Last reviewed commit: "📝 clarify which files in bot folder are..." · Reviewed by Greptile |
PublishAsync now checks the cancellation token before serializing and sending, so a cancelled publish no longer reaches the NATS server. The test asserts the bus publishes nothing and surfaces the original cancellation token.
The schema comparison now normalizes line endings and trims trailing whitespace before matching, so the assertion does not fail on whitespace differences in the EF Core model output.
The single Docker test environment is split into separate net10.0 and net11.0 runners, each using its matching testrunner image. The Ubuntu WSL distribution is also moved to Ubuntu-26.04.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #64 +/- ##
==========================================
- Coverage 98.70% 98.63% -0.08%
==========================================
Files 177 176 -1
Lines 3643 3589 -54
Branches 327 318 -9
==========================================
- Hits 3596 3540 -56
- Misses 46 48 +2
Partials 1 1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Aligns the central NuGet versions with the latest stable and release-candidate listings for .NET 10 and .NET 11, including the pinned System.Security.Cryptography.Pkcs baseline, so the test and build matrix runs against current packages.
File-scoped namespaces are mandatory for C# files in this repository. Setting IDE0161 to error makes the analyzer enforce the rule at build time instead of only flagging it as a suggestion.
Trims trailing spaces in comments of the .gitattributes file. The change has no effect on Git behavior and keeps the file clean for future diffs.
Contributors read this guide to learn which frameworks and test environments CI covers. The targets are listed in sorted order, the CI description no longer claims a specific local framework split, and the issue template now names the Docker-Ubuntu environment.
The .bot folder is local-only by default, but this README is intentionally tracked. Stating that exception keeps future contributors from ignoring or moving it by mistake.
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This pull request moves Savvy I/O to .NET 10 and .NET 11 and replaces its assembly discovery and configured-options implementations with Cuemon APIs. It also updates CI and release automation, documents the breaking migration, and applies repository-wide source formatting conventions.
Framework support and dependencies:
Cuemon integration:
CI and release automation:
Documentation and code consistency: