Skip to content

Wolverine 6.1.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 28 May 00:52
b698d3a

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.1 tag/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-Sender routes built during description mode — #2897 / #2899

What's Changed

Full Changelog: V6.0.0...V6.1.0