Repository navigation
Wolverine 6.1.0
Wolverine 6.1.0
Minor release. Critter Stack dependency refresh, plus the rollup of the entire post-6.0.0 6.0.x line — most significantly the AOT runtime-scanning-elimination work and a new command-line handler-discovery diagnostic.
ℹ️ There was no standalone
6.0.1tag/GitHub release (it shipped as a NuGet version only), so the changelog below covers every PR merged since 6.0.0 — which includes everything released as 6.0.1 through 6.0.3.
Dependencies
- Marten / Marten.AspNetCore / Marten.Newtonsoft:
9.0.1→9.2.0 - JasperFx.* (non-RuntimeCompiler):
2.1.3→2.2.0(#2938) - Polecat:
4.1.1(unchanged — already latest) - JasperFx.RuntimeCompiler:
5.0.0(unchanged — own 5.x line)
Marten 9.2.0 now bundles JasperFx.Events.SourceGenerator as an analyzer, so projects referencing Wolverine.Marten receive it transitively. The previously-explicit analyzer references were dropped from the 8 Marten-referencing projects to avoid running the generator twice, which produced duplicate Evolve/*Evolver build errors (#2939). PolecatTests retains its explicit reference because Polecat does not bundle the generator.
New & Noteworthy
AOT: eliminate runtime assembly scanning — AOT Publishing. Static-mode apps no longer scan assemblies at startup; discovery now flows through source-generated manifests:
- Handlers + message types — #2906 / #2928
- HTTP endpoints — #2925 / #2929
- gRPC services (incl. the direct-mapped mode) — #2926 / #2930 / #2934
[WolverineHandlerModule]assemblies, with no filesystem probe — #2905 / #2935- Extension discovery manifest — #2902 / #2918
- Remaining ad-hoc discovery scans routed through JasperFx
TypeQuery— #2909 / #2932 - Generated HTTP/gRPC types attached by full name instead of a
GetTypes()scan — #2908 / #2936
Command-line handler-discovery diagnostic — Command Line Integration · Command Line Diagnostics tutorial. New dotnet run -- wolverine-diagnostics describe-handlers <Type> runs DescribeHandlerMatch from the CLI so you can troubleshoot handler discovery without editing your bootstrapping code — #2921 / #2923
Build-time OpenAPI generation — Command Line Integration. dotnet run -- openapi generates the OpenAPI document without starting the host (no database/broker required) — #2903 / #2911
SQS fair queues on standard queues — support MessageGroupId on standard Amazon SQS queues — #2886 / #2889
SignalR ClaimsPrincipal — the connection's ClaimsPrincipal is now exposed on SignalREnvelope — #2927 / #2937
EF Core transactional outbox timing fix — the EF Core transaction and outbox flush now complete before the HTTP response is written — #2917 / #2920
Mixed-lifetime IEnumerable<T> support; Lamar removed — handlers depending on a mixed singleton/scoped IEnumerable<T> now resolve every element correctly; Lamar is no longer used or supported, and the built-in ServiceProvider is the container — #2896 / #2914
Aggregate handler naming clarity — clarified and guarded the *AggregateHandler naming convention vs. [ReadAggregate] — #2924
Production code-generation guidance — Code Generation. How to drop Roslyn from production images, with a linked CqrsMinimalApi sample — #2900 / #2912
Bug fixes
- Ancillary store outbox schema for projection side effects — #2887 / #2888
- NRE from null-
Senderroutes built during description mode — #2897 / #2899
What's Changed
- Improve tests by @dmytro-pryvedeniuk in #2884
- Fix ancillary store outbox schema for projection side effects (GH-2887) by @jeremydmiller in #2888
- Support MessageGroupId on standard SQS queues for fair queues (GH-2886) by @jeremydmiller in #2889
- Repoint JasperFx.SourceGeneration → JasperFx.SourceGenerator 2.0.1 by @jeremydmiller in #2891
- Upgrade Critter Stack deps (Marten 9.0.1 / Polecat 4.1.1 / JasperFx 2.0.1) and bump to 6.0.1 by @jeremydmiller in #2892
- Add 6.0.1 release notes by @jeremydmiller in #2893
- Fix NRE from null-Sender routes built during description mode (GH-2897) by @jeremydmiller in #2899
- docs(codegen): how to drop Roslyn from production images + link the CqrsMinimalApi sample (GH-2900) by @jeremydmiller in #2912
- Add Wolverine.Http
openapicommand for build-time OpenAPI generation (GH-2903) by @jeremydmiller in #2911 - Upgrade JasperFx.* to 2.1.3; bump to 6.0.3 by @jeremydmiller in #2913
- Fix #2896 (mixed-lifetime IEnumerable singleton support) + remove Lamar from CoreTests by @jeremydmiller in #2914
- Flush EF Core outbox before writing the HTTP response (GH-2917) by @jeremydmiller in #2920
- Add 'describe-handlers' diagnostics command + Command Line Diagnostics docs by @jeremydmiller in #2921
- Eliminate ExtensionLoader assembly scanning via source-generated extension manifest (GH-2902) by @jeremydmiller in #2918
- Add 'wolverine-diagnostics describe-handlers' command + CLI smoke test by @jeremydmiller in #2923
- Clarify + guard the *AggregateHandler naming convention vs [ReadAggregate] (supersedes #2922) by @jeremydmiller in #2924
- Capture message types in the handler manifest + pin customization ordering (GH-2906) by @jeremydmiller in #2928
- Generate an HTTP endpoint manifest to skip discovery scanning under Static (GH-2925) by @jeremydmiller in #2929
- Generate a gRPC service manifest to skip discovery scanning under Static (GH-2926) by @jeremydmiller in #2930
- Route remaining ad-hoc discovery scans through JasperFx TypeQuery (GH-2909) by @jeremydmiller in #2932
- Manifest the fourth gRPC discovery mode (direct-mapped services) — completes GH-2907 by @jeremydmiller in #2934
- Discover [WolverineHandlerModule] assemblies without a filesystem probe (GH-2905) by @jeremydmiller in #2935
- Attach generated HTTP/gRPC types by full name instead of a GetTypes() scan (GH-2908) by @jeremydmiller in #2936
- Expose the connection's ClaimsPrincipal on SignalREnvelope (GH-2927) by @jeremydmiller in #2937
- Upgrade JasperFx.* packages to 2.2.0 (RuntimeCompiler stays on 5.x) by @jeremydmiller in #2938
- Upgrade Marten family to 9.2.0; release 6.1.0 by @jeremydmiller in #2939
Full Changelog: V6.0.0...V6.1.0