Skip to content

chore(deps): Bump WolverineFx.EntityFrameworkCore from 5.39.3 to 6.2.2#121

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/backend/WolverineFx.EntityFrameworkCore-6.1.0
Closed

chore(deps): Bump WolverineFx.EntityFrameworkCore from 5.39.3 to 6.2.2#121
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/backend/WolverineFx.EntityFrameworkCore-6.1.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 28, 2026

Updated WolverineFx.EntityFrameworkCore from 5.39.3 to 6.2.2.

Release notes

Sourced from WolverineFx.EntityFrameworkCore's releases.

6.2.2

Patch release on top of 6.2.1.

🐛 Bug Fixes / Codegen

#​2963 (closes #​2958): EF Core transaction middleware + post-save cascade flush

The HTTP-handler codegen path under the EF Core transaction middleware + outbox cascade (GH-536) no longer fails handler compilation. Two related codegen issues addressed in this PR:

  • CS0128 duplicate var messageContext declaration in the generated handler. Cherry-picked from #​2959, originally authored by @​kentcooper — credit preserved on commit 9df45bfde. Root cause: MessageBusSource was returning a fresh CreateMessageContextWithMaybeTenantFrame per call; once cached + always returning the concrete MessageContext, the duplicate goes away.
  • CS1061 'IMessageContext' does not contain a definition for EnqueueCascadingAsync — surfaced after the cache fix because once the source produced a concrete MessageContext Variable, the downstream CaptureCascadingMessages frame still declared its MethodCall target as typeof(IMessageContext) and emitted a bad ((IMessageContext)messageContext).EnqueueCascadingAsync(…) cast. Fixed by re-targeting CaptureCascadingMessages to the concrete MessageContext type — mirrors the existing FlushOutgoingMessages pattern. Latent in src/Wolverine/Runtime/Handlers/CaptureCascadingMessages.cs since 020e79013e (2022-09-16); the variable-cache fix is what flipped it from masked to visible.

📦 Dependency bumps

  • JasperFx + JasperFx.Events + JasperFx.Events.SourceGenerator + JasperFx.SourceGenerator 2.2.1 → 2.2.3
  • JasperFx.RuntimeCompiler unchanged (own 5.x line, stays at 5.0.0)
  • Marten / Polecat unchanged (9.2.0 / 4.2.1)

Upstream JasperFx 2.2.2 release: https://github.com/JasperFx/jasperfx/releases/tag/V2.2.2 (Fix source-created codegen variable reuse, #​392). 2.2.3 was a same-day version-bump-only re-roll.

📖 Documentation

  • #​2960 (@​outofrange-consulting): clarify the JasperFx command-line integration link in the diagnostics docs.
  • #​2964 (closes #​2962): re-align the dead-letter REST API reference with the current DeadLetterEnvelopeGetRequest / DeadLetterEnvelopeResults / DeadLetterEnvelopeIdsRequest signatures — the docs still described the pre-5 cursor-based pagination (StartId/NextId) and the legacy DeadLetterEnvelopesFoundResponse wrapper. Updated for offset-based PageNumber pagination, the multi-store IReadOnlyList<DeadLetterEnvelopeResults> response shape, and tenant-aware Ids request bodies.

🧪 Known issues

  • #​2965: SharedMemory transport does not serialize envelopes on cross-host send. Surfaces as a MartenTests.Distribution.with_ancillary_stores.spread_out_over_multiple_hosts failure where AssignAgent system commands arrive at the destination node with empty Data/MessageType and the receive pipeline can't deserialize them. Long-standing — the marten CI workflow has been red on this test through V6.2.0 and V6.2.1, predates this release line entirely. Unblocked the V6.2.2 cycle by adding [Fact(Skip = "…")] referencing #​2965; the underlying serialization bug is tracked separately and is out of scope for a JasperFx pin-bump patch release.

Full changelog: JasperFx/wolverine@V6.2.1...V6.2.2

6.2.1

Patch release picking up upstream JasperFx 2.2.1 fixes. No Wolverine code changes — pure dependency bump.

Bumped pins

Package From To
JasperFx 2.2.0 2.2.1
JasperFx.Events 2.2.0 2.2.1
JasperFx.Events.SourceGenerator 2.2.0 2.2.1
JasperFx.SourceGenerator 2.2.0 2.2.1

Unchanged

Package Version Reason
JasperFx.RuntimeCompiler 5.0.0 Own 5.x line — the Roslyn runtime-compiler package was decoupled from the JasperFx 2.x family in #​2876.
Marten family 9.2.0 Latest.
Polecat 4.2.1 Latest (bumped in 6.2.0 via #​2947).

Related links

6.2.0

Bug-fix + feature release on top of 6.1.0 — 13 PRs.

✨ New features

Custom Result<T> Support — #​2952 (refs #​2221)

First three phases of native Result<T>-style handler return-value support: ResultPolicy registry, handler-side unwrapping seams, and caller-side InvokeAsync<T> unwrap. Lays the groundwork for integrating with libraries like ErrorOr, OneOf, FluentResults, etc.

DbContext Abstractions for EF Core Transaction Middleware — #​2919, #​2954

The EF Core transaction middleware now binds correctly when handler parameters are declared as interface or abstract base abstractions over a concrete DbContext. Multiple abstractions to the same DbContext are supported in a single handler — the runtime resolves them all to the same scoped instance, and the transaction still auto-applies.

📖 DbContext Abstractions docs

🚀 Performance

Outgoing Envelope Pooling — #​2956 (closes #​2955)

MessageRouter.RouteForPublish now acquires from the runtime envelope pool (originally introduced in #​2741 for the Executor sites in 6.1.0) when the route's sender is an InlineSendingAgent or BufferedSendingAgent. Measured −504 B/op (−90 %) on the transport-bound publish/send paths in the CritterStackScalability harness, with ~10× fewer Gen0 collections per 1k ops. DurableSendingAgent, local-queue agents, and ISenderRequiresCallback senders are explicitly excluded — different lifecycle plumbing required, tracked as follow-ups.

🐛 Bug fixes

Marten / Polecat

  • #​2943 Fix scheduled-cascade loss from [ReadAggregate] / [DocumentExists] handlers (closes #​2941).
  • #​2948 Pre-populate chain.AncillaryStoreType in Phase A so the inbox-routing map sees [MartenStore] (closes #​2944).
  • #​2947 Bump Polecat 4.1.1 → 4.2.1 and unskip the three Polecat scheduled-cascade tests.

Persistence (Postgres / MySQL)

  • #​2945 Route PostgresqlQueue identifiers through Weasel's PostgresqlIdentifier.Shorten() so long queue names don't overflow Postgres's 63-byte identifier limit (closes #​2942).
  • #​2946 Emit PersistNodeRecord SQL with unquoted schema (MySQL, closes #​2940).

Pulsar

  • #​2950 Fix KeyNotFoundException acking batch messages on partitioned topics (supersedes #​2883).

Distributed agents

  • #​2951 Bump remote-node agent InvokeAsync<T> reply timeout 10 s → 30 s (closes #​2949).

Quality

  • #​2894 Dispose more resources (@​dmytro-pryvedeniuk).

📖 Documentation

  • #​2953 AOT callout for FluentValidation in the HTTP validation guide (addresses #​2910). 📖 HTTP validation docs
  • #​2954 Extended docs + scenario tests for the new EF Core DbContext abstractions (above).

📦 Dependency bumps

  • Polecat 4.1.1 → 4.2.1 (#​2947).

Full changelog: JasperFx/wolverine@V6.1.0...V6.2.0
... (truncated)

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.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.19.2.0
  • JasperFx.* (non-RuntimeCompiler): 2.1.32.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 scanningAOT 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 diagnosticCommand 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 generationCommand 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 guidanceCode 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

6.0.0

Wolverine 6.0.0 — Critter Stack 2026

The messaging/orchestration release completing the Critter Stack 2026 wave, on the final foundation (JasperFx 2.0 / Weasel 9.0 / Marten 9.0 / Polecat 4.0).

Highlights

  • Foundation (final): JasperFx 2.0.0 / JasperFx.RuntimeCompiler 5.0.0 / Marten 9.0.0 / Polecat 4.0.0 / Weasel 9.0.0. Targets net9.0;net10.0.
  • Runtime codegen decoupled from core (BREAKING): WolverineFx no longer ships Roslyn. Apps in the default TypeLoadMode.Dynamic must add WolverineFx.RuntimeCompilation, or pre-generate via codegen write + TypeLoadMode.Static (the trimmer then drops Roslyn). See the migration guide.
  • ServiceLocationPolicy.NotAllowed is the default (BREAKING) — restructure registrations, allow-list per type, or call opts.RestoreV5Defaults() to revert.
  • AOT-clean (pillar #​213): every packaged library carries IsAotCompatible=true (except the intentional WolverineFx.RuntimeCompilation); Static-mode publish drops Roslyn.
  • Cold-start (pillar #​212): Tier-1 pre-generated static handler registry skips handler-discovery scanning in Static mode.
  • Newtonsoft extracted to WolverineFx.Newtonsoft / WolverineFx.Http.Newtonsoft; IForwardsTo<T> discovery now explicit; removed [Obsolete] APIs (EventForwardingToWolverine, RedisTransport.BuildRedisStreamUri, PulsarEndpoint.UriFor).

Migration guide: https://wolverinefx.net/guide/migration.html (or docs/guide/migration.md). Master plan: wolverine#​2715. Remaining release-cut comms items tracked in #​2745.

Commits viewable in compare view.

---
updated-dependencies:
- dependency-name: WolverineFx.EntityFrameworkCore
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels May 28, 2026
@github-actions
Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 1e1e737.
Ensure that dependencies are being submitted on PR branches. Re-running this action after a short time may resolve the issue. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 30, 2026

Looks like WolverineFx.EntityFrameworkCore is updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this May 30, 2026
@dependabot dependabot Bot changed the title chore(deps): Bump WolverineFx.EntityFrameworkCore from 5.39.3 to 6.1.0 chore(deps): Bump WolverineFx.EntityFrameworkCore from 5.39.3 to 6.2.2 May 30, 2026
leehopper added a commit that referenced this pull request May 30, 2026
…125)

Coordinated major upgrade of the full Critter Stack, consolidating the four
dependabot PRs (#119 Marten, #120 WolverineFx, #121 WolverineFx.EntityFrameworkCore,
#122 WolverineFx.Marten) that each failed in isolation because the five packages
are interdependent and must move together.

Packages (backend/Directory.Packages.props):
- Marten / Marten.EntityFrameworkCore 8.37.1 -> 9.2.1
- WolverineFx / .EntityFrameworkCore / .Marten 5.39.3 -> 6.1.0
- WolverineFx.RuntimeCompilation 6.1.0 (new)

Breaking-change fixes (Marten 9 / Wolverine 6 / JasperFx 2.0):
- [Identity] attribute moved Marten.Schema -> JasperFx (IdempotencyMarker)
- TenancyStyle -> JasperFx.MultiTenancy, TrackLevel -> JasperFx.OpenTelemetry
- DocumentAlreadyExistsException moved Marten.Exceptions -> JasperFx
  (Program.cs OnException registration + WolverineErrorRoutingTests)
- convention-method projections (OnboardingProjection, PlanProjection) must now
  be partial so the compile-time JasperFx.Events source generator emits the
  aggregate dispatcher; the runtime reflection fallback was removed
- Wolverine 6 extracted runtime Roslyn codegen into WolverineFx.RuntimeCompilation,
  required for the Development/test host (TypeLoadMode.Auto); production stays
  Static and never invokes it

Verified locally: dotnet build clean (0 warnings), full suite 1124/1124 passing
on Testcontainers Postgres (Solo async daemon + ApplyAllDatabaseChangesOnStartup
boot clean; upcaster and idempotency error-routing tests green).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@leehopper
Copy link
Copy Markdown
Owner

Superseded by #125, which upgraded the full Critter Stack together — Marten 9.2.1 + Marten.EntityFrameworkCore 9.2.1 + WolverineFx/.EntityFrameworkCore/.Marten 6.1.0 (+ new WolverineFx.RuntimeCompilation 6.1.0). These four PRs each failed CI in isolation because the packages are interdependent and must move as one. Auto-closed now that main carries the target versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant