Bump Marten from 7.34.1 to 9.6.0#25
Open
dependabot[bot] wants to merge 1 commit into
Open
Conversation
--- updated-dependencies: - dependency-name: Marten dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
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 7.34.1 to 9.6.0.
Release notes
Sourced from Marten's releases.
9.6.0
There's a couple tenant aware APIs that are new, so this had to be a minor point bump. The majority of the work in this release was stress testing projection rebuilds and ensuring there was never any concurrent access of un-thread safe dictionaries inside of the async daemon that happened as a side effect of 9.0 changes.
What's Changed
Full Changelog: JasperFx/marten@V9.5.3...V9.6.0
9.5.3
This is a little optimization to the new 9.* code that eliminated the runtime codegen, and a fix for the daemon being a little vulnerable to concurrency in its internals -- which is also an optimization here.
What's Changed
Full Changelog: JasperFx/marten@9.5.2...V9.5.3
9.5.2
Bug fixes
mt_archive_streamemits explicit column lists in its INSERT…SELECT, survivingALTER TABLE ADD COLUMNmigrations that reorder the physical column layout (previously failed with42804after a column was added tomt_events).BulkInsertEventsAsyncwritesmt_streams.typefrom theStreamAction'sAggregateType, restoringUseMandatoryStreamTypeDeclarationsupport on the bulk path.AddMartenManagedTenantsAsyncno longer leaves a half-installed schema underAutoCreate.None. The admin call eagerly applies the events feature via a per-featureCreateMigrationAsync+ scopedCreateOrUpdateapply, so the next append succeeds end-to-end on a virgin schema (previously failed with42P01/42883).e.tenant_id = t.tenant_id, eliminating own-event duplication under per-tenant sequences withUseTenantPartitionedEvents.Test coverage
TenantPartitionedEventsTestsproject (~170 tests across 50 files) covering append / read / projections / admin / DCB / async daemon / regressions underUseTenantPartitionedEvents.FlatTableProjection), #4651 (DetermineActionAsync), #4652 (doc-tables-NOT-partitioned-by-default invariant).AutoCreate.CreateOnlycontinues to work via the lazy schema-apply path, by design (no SUT change needed).Known follow-up — NOT in this release
AddGlobalProjection × UseTenantPartitionedEventsfailsMT002because the global event decorator writes to the*DEFAULT*tenant slot, which can't be a Postgres partition suffix. Test pin is in master asserting the throw; the underlying fix requires either routing global-aggregate events through a sibling non-partitioned table or reserving a default-tenant partition suffix. Marked as an enhancement, deferred to a later release.🤖 Release notes assembled with Claude Code
9.5.1
What's Changed
Full Changelog: JasperFx/marten@V9.5.0...V9.5.1
9.5.0
The minor point bump here is because of some CritterWatch related features, otherwise this is all bug fixes
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V9.4.0...V9.5.0
9.4.0
Marten 9.4.0
Per-tenant event partitioning and a tenant-aware async projection daemon (#4596 / CritterWatch#209). Built on JasperFx 2.5.0.
Highlights
opts.Events.UseTenantPartitionedEvents = true. On top of conjoined event tenancy, Marten partitionsmt_events/mt_streamsbytenant_id(native PostgreSQL LIST partitioning), gives each tenant its own event sequence (mt_events_sequence_{suffix}), and keysmt_event_progressionby(name, tenant_id). Removes the single shared event store as a scalability bottleneck across tenants.{Name}:Allshard.Constraints for per-tenant partitioning
Validated at
DocumentStoreconstruction:Events.TenancyStyle = TenancyStyle.Conjoined.EventAppendMode.Quick/QuickWithServerTimestamps);EventAppendMode.Richis out of scope.Events.UseArchivedStreamPartitioning(sub-partitioning by bothtenant_idandis_archivedis a planned follow-up).The flag defaults to
false; existing stores keep the global append path byte-for-byte.Dependencies
SubscriptionAgentoptimized-rebuild double-load fix).Documentation
9.3.5
What's Changed
Full Changelog: JasperFx/marten@V9.3.4...V9.3.5
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.8.37.2
Patch release containing #4599:
EnumerableContains.Parsecrash on programmatically-builtContains()receivers (e.g. HotChocolate's[UseFiltering]inoperator) when the wrapper type overridesToString(). See #4600 (master) and #4601 (8.0 backport).8.37.1
What's Changed
Full Changelog: JasperFx/marten@V8.37.0...V8.37.1
8.37.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.36.0...V8.37.0
8.36.0
Highlights
Marten 8.36.0 closes out #4329 by adopting JasperFx.Events 1.35.0 and ships the corresponding docs and integration tests, plus a separately-tracked docs improvement for modular
IConfigureMartenprojection registration (#4326) and two LINQ fixes.Options.CacheLimitPerTenantis a memory tunable again, not a correctness lever for downstreamEnrichWith<T>/TryFindUpstreamCachelookups.ForEntityIdsfor fan-out enrichment (via JasperFx.Events 1.35.0). New first-class declarative shape for events that reference several entities of the same type:composite.mdcalls out that downstream stages can't SQL-query upstream stages' in-flight writes, lists the four supported alternatives (Updated<T>synthetic events,EnrichWith<T>().AddReferences(),TryFindUpstreamCache<TId, T>,ReferencePeerView<T>), and includes inline samples sourced from the integration tests.IConfigureMarten+ DI projection registration docs. New section inevents/projections/ioc.mdshowing how a module-style configuration can register a service-aware projection by taking its dependencies through theIConfigureMartenconstructor and building the projection insideConfigure(...). Closes #4326.string[].Containsparse failure under C# 14 + nullable + method init (#4332), andWhereclauses on the inner source ofGroupJoinare now honored.What's Changed
Whereclauses on the inner source ofGroupJoinby @snrnats in HonorWhereclauses on the inner source ofGroupJoinJasperFx/marten#4331New Contributors
Whereclauses on the inner source ofGroupJoinJasperFx/marten#4331Full Changelog: JasperFx/marten@V8.35.0...V8.36.0
8.35.0
Heads up, this will cause a DDL change for some upsert functions due to a bug that was only apparent under high concurrency
What's Changed
Full Changelog: JasperFx/marten@V8.34.2...V8.35.0
8.34.2
What's Changed
Patch release. One bug fix.
Money(decimal Value, Guid CurrencyId), the LINQ resolver would throwBadLinqExpressionExceptionon any nested member access (x.MoneyProp.Amount > 0). Root cause wasValueTypeIdGeneration.IsCandidatefiltering properties only to those inDocumentMapping.ValidIdTypes(Guid/int/long/string), so a multi-field struct with a single matching property + a staticZero(Guid)builder got misdetected as a strong-typed-id wrapper. As a side effect the misdetection registeredMoneyas auuidcolumn on Weasel's globalPostgresqlProvider.Instance, poisoning LINQ resolution for the rest of the process. Fix: reject types whose canonical constructor takes more than one parameter before any further matching. Reported with full root-cause analysis by @mmidkiff.Full Changelog: JasperFx/marten@V8.34.1...V8.34.2
8.34.1
What's Changed
Patch release. Two fixes — one regression in the cold-start path, one Scoped-subscription bug that's been latent since
AddSubscriptionWithServicesshipped.CultureNotFoundExceptionatDocumentStore..ctoron hosts running with<InvariantGlobalization>true</InvariantGlobalization>(implied by<PublishAot>true</PublishAot>). The cold-start prefilter inProjectionGraph.IsAssemblyKnownToHaveNoEvolverswas readingassembly.GetName().Name, which under invariant-globalization mode throws on culture-tagged satellite assemblies likept-br. Reported today against the cold-start optimization changes that landed in 8.34.0.AddSubscriptionWithServices<T>(ServiceLifetime.Scoped, configure)setOptions.BatchSize,Options.SubscribeFromPresent(),Name, orVersionin its constructor, those values were silently lost. OnlyIncludedEventTypes,StreamType, andIncludeArchivedEventswere copied from the resolved innerTto the wrapper. The Singleton path was unaffected. Thanks to @Casper-Olsen for the root-cause analysis.Full Changelog: JasperFx/marten@V8.34.0...V8.34.1
8.34.0
What's Changed
This release rolls in the JasperFx 1.28 / JasperFx.Events 1.31 upgrade chain, several cold-start and runtime-perf optimizations, two stability fixes (advisory locks, projection version suffix), and a new declarative ancillary-store enrichment API.
Full Changelog: JasperFx/marten@V8.33.0...V8.34.0
8.33.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.32.1...V8.33.0
8.32.1
Just bug fixes this time
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.32.0...V8.32.1
8.32.0
What's Changed
Full Changelog: JasperFx/marten@V8.31.0...V8.32.0
8.31.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.30.1...V8.31.0
8.30.1
What's Changed
Full Changelog: JasperFx/marten@V8.30.0...V8.30.1
8.30.0
What's Changed
Full Changelog: JasperFx/marten@V8.29.3...V8.30.0
8.29.3
What's Changed
Full Changelog: JasperFx/marten@V8.29.0...V8.29.3
8.29.0
What's Changed
Full Changelog: JasperFx/marten@V8.28.0...V8.29.0
8.28.0
What's Changed
Full Changelog: JasperFx/marten@V8.27.0...V8.28.0
8.27.0
What's Changed
Full Changelog: JasperFx/marten@V8.26.2...V8.27.0
8.26.2
What's Changed
Full Changelog: JasperFx/marten@V8.26.1...V8.26.2
8.26.1
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.26.0...V8.26.1
8.26.0
What's Changed
Full Changelog: JasperFx/marten@V8.25...V8.26.0
8.25.0
This was 100% about exposing information to CritterWatch through extended projection progression tracking and nothing else. Completely opt in as well
What's Changed
Full Changelog: JasperFx/marten@V8.24.0...V8.25
8.24.0
What's Changed
Full Changelog: JasperFx/marten@V8.23.0...V8.24.0
8.23.0
What's Changed
Full Changelog: JasperFx/marten@V8.22.2...V8.23.0
8.22.2
All of this was for CritterWatch and has no value otherwise over 8.22.1
What's Changed
Full Changelog: JasperFx/marten@V8.22.1...V8.22.2
8.22.1
The JasperFx update helps address an issue with Composite Projections in Marten + Wolverine.
What's Changed
Full Changelog: JasperFx/marten@V8.22.0...V8.22.1
8.22.0
What's Changed
Full Changelog: JasperFx/marten@V8.21.0...V8.22.0
8.21.0
What's Changed
Full Changelog: JasperFx/marten@V8.20...V8.21.0
8.20.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.19.0...V8.20
8.19.0
What's Changed
This release improves the recent "Composite Projection" feature by accounting for upstream projections being deleted. This
release also adds the presence of an
ILogger Logger {get;}property for projections so users no longer have to use IoC integrationsjust to get an ILogger into a projection.
New Contributors
Full Changelog: JasperFx/marten@V8.18.3...V8.19.0
8.18.3
Finally correctly addresses the bad tenant id problem. Please upgrade from 8.18.1/2.
Full Changelog: JasperFx/marten@V8.18.2...V8.18.3
8.18.2
What's Changed
Full Changelog: JasperFx/marten@V8.18.1...V8.18.2
8.18.1
Fixes JasperFx/marten#4085
What's Changed
Full Changelog: JasperFx/marten@V8.18.0...V8.18.1
8.18.0
Blog Post: Easier Query Models with Marten
What's Changed
New Contributors
Full Changelog: JasperFx/marten@v8.17.0...V8.18.0
8.17.0
This release includes a rewrite of the daemon's advisory lock, as well as some fixes to multi-host support.
The distributed lock now includes a keepalive check so a node holding a lock will be notified if the lock is lost and permit the daemon to shutdown. This improves the recovery capabilities in the event a postgres instance is restarted or fails over, and reduces the risk of multiple nodes running the daemon concurrently.
What's Changed
Full Changelog: JasperFx/marten@V8.16.4...v8.17.0
8.16.4
What's Changed
Full Changelog: JasperFx/marten@v8.16.3...V8.16.4
8.16.3
This release fixes compatibility issues with C# 14 projects & includes performance improvements to Marten's initialization, especially for projects with many event types and/or upcasters.
What's Changed
New Contributors
Full Changelog: JasperFx/marten@v8.16.2...v8.16.3
8.16.2
What's Changed
Full Changelog: JasperFx/marten@V8.16.1...v8.16.2
8.16.1
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.16.0...V8.16.1
8.16.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.15.3...V8.16.0
8.15.3
What's Changed
Full Changelog: JasperFx/marten@V8.15.1...V8.15.3
8.15.1
What's Changed
Full Changelog: JasperFx/marten@V8.15.0...V8.15.1
8.15.0
This is adding .NET 10 support, and absolutely nothing else
What's Changed
Full Changelog: JasperFx/marten@V8.14.0...V8.15.0
8.14.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.13.3...V8.14.0
8.13.3
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.13.2...V8.13.3
8.13.2
What's Changed
Full Changelog: JasperFx/marten@V8.13.1...V8.13.2
8.13.1
What's Changed
Full Changelog: JasperFx/marten@V8.13.0...V8.13.1
8.13.0
This was a "fix" for an unforeseen failure condition, and more importantly, the ability to:
ISubscriptionorEventProjectionWhat's Changed
Full Changelog: JasperFx/marten@V8.12.0...V8.13.0
8.12.0
System.Threading.Channels
This release finally pulls in the branch that completely replaces the usage of TPL DataFlow with Channels. We expect no issues around this, and it changes nothing about your usage at all. Just know that happened.
What's Changed
Full Changelog: JasperFx/marten@V8.11.0...V8.12.0
8.11.0
What's Changed
Full Changelog: JasperFx/marten@V8.10.1...V8.11.0
8.10.1
What's Changed
Full Changelog: JasperFx/marten@V8.10.0...V8.10.1
8.10.0
What's Changed
Full Changelog: JasperFx/marten@V8.9.0...V8.10.0
8.9.0
What's Changed
Full Changelog: JasperFx/marten@V8.8.2...V8.9.0
8.8.2
What's Changed
Full Changelog: JasperFx/marten@V8.8.1...V8.8.2
8.8.1
Reverses an accidental incompatibility downstream with Wolverine.Marten.
Mea culpa everyone,
Jeremy
8.8.0
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V8.7.0...V8.8.0
8.7.0
What's Changed
New Contributors
Full Changelog: https://gith....
Description has been truncated