chore(deps): Bump Marten and WolverineFx.Marten#122
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps Marten from 8.37.1 to 9.2.0 Bumps WolverineFx.Marten from 5.39.3 to 6.1.0 --- updated-dependencies: - dependency-name: Marten dependency-version: 9.2.0 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: WolverineFx.Marten dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure 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 FilesNone |
Contributor
Author
|
Looks like these dependencies are updatable in another way, so this is no longer needed. |
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>
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 |
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.
Updated Marten from 8.37.1 to 9.3.4.
Release notes
Sourced from Marten's releases.
9.3.4
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V9.3.3...V9.3.4
9.3.3
What's Changed
Full Changelog: JasperFx/marten@V9.3.2...V9.3.3
9.3.2
What's Changed
Full Changelog: JasperFx/marten@V9.3.1...V9.3.2
9.3.1
Marten 9.3.1
Fix release — bumps all four
JasperFx.*dependencies to 2.2.1.JasperFxJasperFx.EventsJasperFx.Events.SourceGeneratorJasperFx.SourceGeneratorNo Marten-side code changes — straight dependency bump (#4585).
Full Changelog: JasperFx/marten@V9.3.0...V9.3.1
9.3.0
Marten 9.3.0
The big-ticket items in this release are binary event serialization (#4515) and the PostGIS + pgvector companion packages lifted into the Marten repo from CritterWatch.
Major
Binary event serialization for the event store (#4515 — landed across #4578, #4581, #4583, #4584). Opt individual event types into a binary wire format (MemoryPack out of the box, or any
IEventBinarySerializeryou bring) on a per-event-type basis. JSON-serialized and binary-serialized events coexist in the samemt_eventstable so the feature can be turned on in an existing system with no migration of existing data. Works on everyEventAppendMode(Rich + Quick + QuickWithServerTimestamps) and throughBulkEventAppender. New optional NuGet:Marten.MemoryPack. See the binary-serialization docs for the design, registration, and the versioned-event-types schema-evolution recommendation.PostGIS + pgvector companion packages (#4576). Two new optional NuGets imported from CritterWatch:
Marten.PostGIS—UsePostGIS()opt-in that enables thepostgisextension on every database Marten manages (multi-tenant aware), wires NetTopologySuite + GeoJSON serialization, and exposes four spatial query helpers (NearestToAsync,WithinDistanceAsync,ContainingAsync,IntersectingAsync). See the PostGIS docs.Marten.PgVector—UsePgVector()opt-in that enables thevectorextension on every database (also addresses #2515 — extensions in tenant databases).VectorSearchAsyncfor similarity search plus an embedding-awareVectorProjectionbase class. See the pgvector docs.Fixes
CreatedAt.MapTo()regression in v9 (#4577). The closed-shape storage rewrite ported every other metadata-column read-back but missedmt_created_at; this restores the v8 behavior where a[CreatedAt]-annotated /m.CreatedAt.MapTo(...)-mapped member is populated after a load.Build / Release
Pack target updated (#4582).
Marten.PostGIS,Marten.PgVector, andMarten.MemoryPackare now included in the NukePacktarget — without this they would silently never reach NuGet. 9 packages ship in 9.3.0 (up from 6):Marten,Marten.Newtonsoft,Marten.NodaTime,Marten.AspNetCore,Marten.EntityFrameworkCore,Marten.SourceGenerator,Marten.PostGIS,Marten.PgVector,Marten.MemoryPack.Weasel 9.0.2 dependency bump (JasperFx/weasel#299). Fixes
PostgresqlMigrator.executeWithConcurrencyRetryAsyncto reopen a Closed/Broken connection between retry attempts — eliminates the intermittentConnection is not openfailure surfaced under concurrent migration races.Documentation updates
Pages added or updated in 9.3.0:
Local docker
The local
docker-compose.yml(from #4576) layerspostgresql-17-postgis-3+postgresql-17-pgvectoron the official multi-archpostgres:17image so the Marten test suite can exercise the new extensions locally. PLv8 was dropped — Marten core SQL no longer requires it.Full Changelog: JasperFx/marten@V9.2.1...V9.3.0
9.2.1
What's Changed
Full Changelog: JasperFx/marten@V9.2.0...V9.2.1
9.2.0
Marten 9.2.0
Features & changes
IEventStore.AllDatabases()onDocumentStore(#4570, #4571). Implements the store-agnostic database accessor added toJasperFx.Events.IEventStore. Delegates straight toITenancy(mirroringIMartenStorage.AllDatabases()) and projects toIEventDatabase, so store-neutral monitoring/tooling can reach every database to call the read abstractions (AllProjectionProgress,FetchDeadLetterCountsAsync/CountDeadLetterEventsAsync) even when onlyIEventStoreis registered in DI.Dependencies
JasperFx.*packages to 2.2.0 (JasperFx,JasperFx.Events,JasperFx.Events.SourceGenerator,JasperFx.SourceGenerator).Full Changelog: JasperFx/marten@V9.0.2...V9.2.0
9.0.2
Marten 9.0.2
A patch release that fixes #4557 — self-aggregating projections failing for consumers that reference only the
Martenpackage.Fixes
#4557 — Self-aggregating projections now work out of the box. Marten 9 dispatches conventional
Apply/Create/ShouldDeleteprojection methods through the compile-timeJasperFx.Events.SourceGeneratorand has no runtime fallback, but the generator shipped as aDevelopmentDependencyand never flowed to a consumer that only referenced theMartenpackage — surfacing asInvalidProjectionException: No source-generated dispatcher found ...atDocumentStore.For(...). Marten now bundles the analyzer in its own NuGet package, so a plain<PackageReference Include="Marten" />runs the generator automatically. (#4558)Self-aggregating
recordaggregates work without aSnapshot<T>call site and withoutpartial. BumpedJasperFx.Events/JasperFx.Events.SourceGeneratorto 2.1.1 (JasperFx/jasperfx#367): the generator now emits a self-aggregating evolver for arecordfrom its own declaration (parity with classes), which also fixes the cross-assembly case where the aggregate type is defined in a different assembly than its registration.Docs. Corrected the migration guide's projection section, which incorrectly stated Marten falls back to a runtime evolver lookup for non-
partialconvention projections; documented that self-aggregatingSnapshot<T>types do not need to bepartial(only projection subclasses do).Dependency bumps
JasperFx.Events2.1.0 → 2.1.1JasperFx.Events.SourceGenerator2.1.0 → 2.1.1No public API changes from 9.0.1.
9.0.1
Marten 9.0.1
A patch release on the Critter Stack 2026 foundation, rolling up the latest JasperFx 2.0.1 / JasperFx.Events 2.1.0 / Weasel 9.0.1 dependencies along with several source-generator and reliability fixes.
Foundation bumps
Fixes
requiredmembers on self-aggregating snapshot types no longer break generated evolver construction;default!is emitted only when a public parameterless constructor exists, otherwiseRuntimeHelpers.GetUninitializedObjectis used.[ReadAggregate]aggregate parameters generate correctly.IEventDatabasedead-letter count reads (CountDeadLetterEventsAsync/FetchDeadLetterCountsAsync) are implemented onMartenDatabasevia LINQ over theDeadLetterEventdocument.SystemTextJsonSerializer.UseTypeInfoResolver) for AOT/trimming-friendly metadata.feature_flag_positiveadvisory-lock contention (distinctApplyChangesLockId, #4553) and the conjoined multi-tenantquery_before_savingXX000: tuple concurrently updatedmigration-DDL race (resolved upstream in Weasel 9.0.1 / weasel#293).No public API breaking changes from 9.0.0.
RestoreV8Defaults()continues to revert the 9.0 default flips.9.0.0
Marten 9.0.0 — Critter Stack 2026
The headline release of the Critter Stack 2026 wave, on the final JasperFx 2.0 + Weasel 9.0 foundation.
Highlights
net9.0;net10.0.JasperFx.RuntimeCompileris no longer a dependency. Document/event storage is hand-written closed-shape; compiled queries useMarten.SourceGenerator. Nocodegen writestep for Marten.Staticmode; lazy document-mapping materialization; per-query handler-factory caching.IStorageOperationrebased onWeasel.Core; async-daemon distributor concretes consumed fromJasperFx.Events.Daemon;OperationRole/BulkInsertModerelocated toWeasel.Core.QuickWithServerTimestampsappend mode, advanced async tracking, bigint events, lightweight default sessions, System.Text.Json default — all revertable viaRestoreV8Defaults().IRevisioned.Versionstaysint(V8-compatible); newILongVersioned(long) forMultiStreamProjectiondocuments.FetchForWritingByTags<T>for identity-less boundary aggregates.See the migration guide (
docs/migration-guide.md). Master plan: marten#4349. Ships in lockstep with Polecat 4.0.Commits viewable in compare view.
Updated WolverineFx.Marten from 5.39.3 to 6.2.2.
Release notes
Sourced from WolverineFx.Marten'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:
var messageContextdeclaration in the generated handler. Cherry-picked from #2959, originally authored by @kentcooper — credit preserved on commit9df45bfde. Root cause:MessageBusSourcewas returning a freshCreateMessageContextWithMaybeTenantFrameper call; once cached + always returning the concreteMessageContext, the duplicate goes away.'IMessageContext' does not contain a definition for EnqueueCascadingAsync— surfaced after the cache fix because once the source produced a concreteMessageContextVariable, the downstreamCaptureCascadingMessagesframe still declared itsMethodCalltarget astypeof(IMessageContext)and emitted a bad((IMessageContext)messageContext).EnqueueCascadingAsync(…)cast. Fixed by re-targetingCaptureCascadingMessagesto the concreteMessageContexttype — mirrors the existingFlushOutgoingMessagespattern. Latent insrc/Wolverine/Runtime/Handlers/CaptureCascadingMessages.cssince020e79013e(2022-09-16); the variable-cache fix is what flipped it from masked to visible.📦 Dependency bumps
JasperFx+JasperFx.Events+JasperFx.Events.SourceGenerator+JasperFx.SourceGenerator2.2.1 → 2.2.3JasperFx.RuntimeCompilerunchanged (own 5.x line, stays at 5.0.0)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
DeadLetterEnvelopeGetRequest/DeadLetterEnvelopeResults/DeadLetterEnvelopeIdsRequestsignatures — the docs still described the pre-5 cursor-based pagination (StartId/NextId) and the legacyDeadLetterEnvelopesFoundResponsewrapper. Updated for offset-basedPageNumberpagination, the multi-storeIReadOnlyList<DeadLetterEnvelopeResults>response shape, and tenant-awareIdsrequest bodies.🧪 Known issues
SharedMemorytransport does not serialize envelopes on cross-host send. Surfaces as aMartenTests.Distribution.with_ancillary_stores.spread_out_over_multiple_hostsfailure whereAssignAgentsystem commands arrive at the destination node with emptyData/MessageTypeand 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
JasperFxJasperFx.EventsJasperFx.Events.SourceGeneratorJasperFx.SourceGeneratorUnchanged
JasperFx.RuntimeCompilerRelated 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:ResultPolicyregistry, handler-side unwrapping seams, and caller-sideInvokeAsync<T>unwrap. Lays the groundwork for integrating with libraries likeErrorOr,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 sameDbContextare 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.RouteForPublishnow acquires from the runtime envelope pool (originally introduced in #2741 for the Executor sites in 6.1.0) when the route's sender is anInlineSendingAgentorBufferedSendingAgent. 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, andISenderRequiresCallbacksenders are explicitly excluded — different lifecycle plumbing required, tracked as follow-ups.🐛 Bug fixes
Marten / Polecat
[ReadAggregate]/[DocumentExists]handlers (closes #2941).chain.AncillaryStoreTypein Phase A so the inbox-routing map sees[MartenStore](closes #2944).Persistence (Postgres / MySQL)
PostgresqlQueueidentifiers through Weasel'sPostgresqlIdentifier.Shorten()so long queue names don't overflow Postgres's 63-byte identifier limit (closes #2942).PersistNodeRecordSQL with unquoted schema (MySQL, closes #2940).Pulsar
KeyNotFoundExceptionacking batch messages on partitioned topics (supersedes #2883).Distributed agents
InvokeAsync<T>reply timeout 10 s → 30 s (closes #2949).Quality
📖 Documentation
📦 Dependency bumps
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.xline — most significantly the AOT runtime-scanning-elimination work and a new command-line handler-discovery diagnostic.Dependencies
9.0.1→9.2.02.1.3→2.2.0(#2938)4.1.1(unchanged — already latest)5.0.0(unchanged — own 5.x line)Marten 9.2.0 now bundles
JasperFx.Events.SourceGeneratoras an analyzer, so projects referencingWolverine.Martenreceive it transitively. The previously-explicit analyzer references were dropped from the 8 Marten-referencing projects to avoid running the generator twice, which produced duplicateEvolve/*Evolverbuild errors (#2939).PolecatTestsretains 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:
[WolverineHandlerModule]assemblies, with no filesystem probe — #2905 / #2935TypeQuery— #2909 / #2932GetTypes()scan — #2908 / #2936Command-line handler-discovery diagnostic — Command Line Integration · Command Line Diagnostics tutorial. New
dotnet run -- wolverine-diagnostics describe-handlers <Type>runsDescribeHandlerMatchfrom the CLI so you can troubleshoot handler discovery without editing your bootstrapping code — #2921 / #2923Build-time OpenAPI generation — Command Line Integration.
dotnet run -- openapigenerates the OpenAPI document without starting the host (no database/broker required) — #2903 / #2911SQS fair queues on standard queues — support
MessageGroupIdon standard Amazon SQS queues — #2886 / #2889SignalR
ClaimsPrincipal— the connection'sClaimsPrincipalis now exposed onSignalREnvelope— #2927 / #2937EF 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/scopedIEnumerable<T>now resolve every element correctly; Lamar is no longer used or supported, and the built-inServiceProvideris the container — #2896 / #2914Aggregate handler naming clarity — clarified and guarded the
*AggregateHandlernaming convention vs.[ReadAggregate]— #2924Production code-generation guidance — Code Generation. How to drop Roslyn from production images, with a linked
CqrsMinimalApisample — #2900 / #2912Bug fixes
Senderroutes built during description mode — #2897 / #2899What's Changed
... (truncated)
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
net9.0;net10.0.WolverineFxno longer ships Roslyn. Apps in the defaultTypeLoadMode.Dynamicmust addWolverineFx.RuntimeCompilation, or pre-generate viacodegen write+TypeLoadMode.Static(the trimmer then drops Roslyn). See the migration guide.ServiceLocationPolicy.NotAllowedis the default (BREAKING) — restructure registrations, allow-list per type, or callopts.RestoreV5Defaults()to revert.IsAotCompatible=true(except the intentionalWolverineFx.RuntimeCompilation); Static-mode publish drops Roslyn.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.