chore: Bump Marten from 8.37.1 to 9.5.2#295
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
--- updated-dependencies: - dependency-name: Marten dependency-version: 9.5.2 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Marten dependency-version: 9.5.2 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Marten dependency-version: 9.5.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Superseded by #299. |
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.5.2.
Release notes
Sourced from Marten's releases.
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).Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)