Skip to content

Bump Marten and Marten.AspNetCore - #24

Closed
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/nuget/code/K9Crush-scaffold/K9Crush/multi-9bb847b17a
Closed

Bump Marten and Marten.AspNetCore#24
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/nuget/code/K9Crush-scaffold/K9Crush/multi-9bb847b17a

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updated Marten from 9.17.1 to 9.20.1.

Release notes

Sourced from Marten's releases.

9.20.1

Two real improvements:

  1. Less log noise and faster/cleaner shutdowns at production time
  2. Adjustments to the "high water mark" detection to ignore idle transactions from advisory locks in advancing the high water mark. This was a side effect of the extra work we did in 9.18 to try to stop event skipping from slow transactions

What's Changed

Full Changelog: JasperFx/marten@V9.20.0...V9.20.1

9.20.0

Bug fixes around permutations of the natural key usage, new convenience mechanisms for querying for event store data

What's Changed

Full Changelog: JasperFx/marten@V9.19.0...V9.20.0

9.19.0

Marten 9.19.0 is a maintenance release adopting the coordinated JasperFx / JasperFx.Events 2.35.0 drop, with a new projection side-effect capability and a secondary-store fix.

Event sourcing

  • RaiseSideEffects slice-identity overload — JasperFx.Events 2.35.0 (jasperfx#​561) adds a backwards-compatible aggregation-projection overload RaiseSideEffects(IDocumentOperations operations, TId id, IEventSlice<TDoc> slice). The new id parameter hands you the slice identity even when slice.Snapshot is null because the aggregate was deleted in the same batch — so a MultiStreamProjection can recover the aggregate key to emit a follow-on event or publish a message on deletion. The original two-argument overload is unchanged, and the new one delegates to it by default. Documented with a compiled sample in Side Effects.

Fixes

  • #​5039SecondaryStoreConfig.Build threw UriFormatException when a secondary store was registered with a generic marker interface (e.g. AddMartenStore<IMartenStoreMarker<MyContext>>()). A closed generic CLR type name contains a backtick + arity, which is not a valid URI host. The marten:// subject is now sanitized (arity stripped, generic argument names folded in so distinct closed generics still map to distinct subjects).

Dependencies

  • JasperFx / JasperFx.Events / JasperFx.Events.SourceGenerator / JasperFx.SourceGenerator → 2.35.0
  • Weasel.Postgresql / Weasel.Storage → 9.17.0 (unchanged)

Notes

  • The LINQ query-plan cache proposal (#​5013 / #​5018) is not in this release — review surfaced a correctness gap on null filter values; it remains open for a follow-up.
  • #​5001 (running_on_node under managed distribution) is resolved on the Marten side and closed; the node-stamping half ships in the JasperFx 2.35.0 / Wolverine distribution layer.

9.18.0

Marten 9.18.0 focuses on raw-JSON streaming endpoints for ASP.NET Core, server-side LINQ Select() projection, and continued event-store observability work.

ASP.NET Core streaming & pagination

  • StreamPaged<T> — stream a paged JSON envelope (pageNumber/pageSize/totalItemCount/pageCount/hasNextPage/hasPreviousPage/items) in a single round trip via a count(*) OVER() window column (#​5014). Test coverage hardened to pin the camelCase wire contract, page-past-end behavior, and filtered totals (#​5028).
  • StreamPagedByCursor<T> — keyset ("seek") pagination that costs the same regardless of depth, using an opaque continuation cursor (#​5016). Now streams the raw, already-persisted data column byte-identical to StreamMany/StreamPaged (no hydrate + re-serialize) by reading the next cursor's ORDER BY key values off the same reader; a malformed client-supplied cursor now returns a clean 400 instead of a 500 (#​5033).
  • ETag / If-None-Match (304) conditional-request support on StreamOne<T> and StreamAggregate<T> (#​5015). StreamOne<T> now reads the document's mt_version inline in the same single round trip (no follow-up metadata query), and the where T : notnull constraint tightening was reversed (#​5030).

LINQ

  • Simple Select() projections (x => new Dto { A = x.A, B = x.Nested.B }) now translate to a server-side jsonb_build_object(...) expression that is streamable as raw JSON, instead of hydrating the full document and projecting on the client (#​5017). Value-preserving conversions — widening numerics (intlong/decimal), boxing to object, nullable wrapping, enum→integral under EnumStorage.AsInteger — stay translatable and streamable; only lossy/computed conversions fall back (#​5032).
  • DCB tag operators usable in Where() over events (#​5004).
  • AggregateToMany() LINQ operator — run an event query through a multi-stream projection (#​5003).

Event store, projections & daemon

  • Marten.TimescaleDB extension — projection + document hypertables (#​4995).
  • Extended-progression telemetry: batched per-flush heartbeat writes (#​5008); fixed a shutdown telemetry race in extended_progression_batch_write (#​5023); running_on_node write-path regression coverage (#​5001 / #​5007). The cross-repo running_on_node population under Wolverine-managed distribution is completed via JasperFx 2.34.0 + Wolverine.
  • Tenant-scoped event/tag explorer readsReadStreamAsync / GetRecentStreamsAsync overrides honor tenancy (#​5020, #​5025), plus a MultiStreamProjection stepthrough via the instrumented fold in EventStoreExplorer (#​5002).
  • HighWaterHealthCheck scoped to owned databases, with per-tenant and ExternallyManaged daemon support (#​4992).
  • Surface JasperFx's application-assembly-reuse warning (GH-3521) at startup (#​5000).

Multi-tenancy & infrastructure

  • Token-capable maintenance connection for tenant database provisioning (#​5006).
  • Docs: connecting to Azure Database for PostgreSQL with Entra ID / managed identity (#​4993).

Dependencies

  • JasperFx / JasperFx.Events 2.34.0, Weasel 9.17.0.

Full changelog: JasperFx/marten@V9.17.0...V9.18.0

Commits viewable in compare view.

Updated Marten.AspNetCore from 9.17.1 to 9.20.1.

Release notes

Sourced from Marten.AspNetCore's releases.

9.20.1

Two real improvements:

  1. Less log noise and faster/cleaner shutdowns at production time
  2. Adjustments to the "high water mark" detection to ignore idle transactions from advisory locks in advancing the high water mark. This was a side effect of the extra work we did in 9.18 to try to stop event skipping from slow transactions

What's Changed

Full Changelog: JasperFx/marten@V9.20.0...V9.20.1

9.20.0

Bug fixes around permutations of the natural key usage, new convenience mechanisms for querying for event store data

What's Changed

Full Changelog: JasperFx/marten@V9.19.0...V9.20.0

9.19.0

Marten 9.19.0 is a maintenance release adopting the coordinated JasperFx / JasperFx.Events 2.35.0 drop, with a new projection side-effect capability and a secondary-store fix.

Event sourcing

  • RaiseSideEffects slice-identity overload — JasperFx.Events 2.35.0 (jasperfx#​561) adds a backwards-compatible aggregation-projection overload RaiseSideEffects(IDocumentOperations operations, TId id, IEventSlice<TDoc> slice). The new id parameter hands you the slice identity even when slice.Snapshot is null because the aggregate was deleted in the same batch — so a MultiStreamProjection can recover the aggregate key to emit a follow-on event or publish a message on deletion. The original two-argument overload is unchanged, and the new one delegates to it by default. Documented with a compiled sample in Side Effects.

Fixes

  • #​5039SecondaryStoreConfig.Build threw UriFormatException when a secondary store was registered with a generic marker interface (e.g. AddMartenStore<IMartenStoreMarker<MyContext>>()). A closed generic CLR type name contains a backtick + arity, which is not a valid URI host. The marten:// subject is now sanitized (arity stripped, generic argument names folded in so distinct closed generics still map to distinct subjects).

Dependencies

  • JasperFx / JasperFx.Events / JasperFx.Events.SourceGenerator / JasperFx.SourceGenerator → 2.35.0
  • Weasel.Postgresql / Weasel.Storage → 9.17.0 (unchanged)

Notes

  • The LINQ query-plan cache proposal (#​5013 / #​5018) is not in this release — review surfaced a correctness gap on null filter values; it remains open for a follow-up.
  • #​5001 (running_on_node under managed distribution) is resolved on the Marten side and closed; the node-stamping half ships in the JasperFx 2.35.0 / Wolverine distribution layer.

9.18.0

Marten 9.18.0 focuses on raw-JSON streaming endpoints for ASP.NET Core, server-side LINQ Select() projection, and continued event-store observability work.

ASP.NET Core streaming & pagination

  • StreamPaged<T> — stream a paged JSON envelope (pageNumber/pageSize/totalItemCount/pageCount/hasNextPage/hasPreviousPage/items) in a single round trip via a count(*) OVER() window column (#​5014). Test coverage hardened to pin the camelCase wire contract, page-past-end behavior, and filtered totals (#​5028).
  • StreamPagedByCursor<T> — keyset ("seek") pagination that costs the same regardless of depth, using an opaque continuation cursor (#​5016). Now streams the raw, already-persisted data column byte-identical to StreamMany/StreamPaged (no hydrate + re-serialize) by reading the next cursor's ORDER BY key values off the same reader; a malformed client-supplied cursor now returns a clean 400 instead of a 500 (#​5033).
  • ETag / If-None-Match (304) conditional-request support on StreamOne<T> and StreamAggregate<T> (#​5015). StreamOne<T> now reads the document's mt_version inline in the same single round trip (no follow-up metadata query), and the where T : notnull constraint tightening was reversed (#​5030).

LINQ

  • Simple Select() projections (x => new Dto { A = x.A, B = x.Nested.B }) now translate to a server-side jsonb_build_object(...) expression that is streamable as raw JSON, instead of hydrating the full document and projecting on the client (#​5017). Value-preserving conversions — widening numerics (intlong/decimal), boxing to object, nullable wrapping, enum→integral under EnumStorage.AsInteger — stay translatable and streamable; only lossy/computed conversions fall back (#​5032).
  • DCB tag operators usable in Where() over events (#​5004).
  • AggregateToMany() LINQ operator — run an event query through a multi-stream projection (#​5003).

Event store, projections & daemon

  • Marten.TimescaleDB extension — projection + document hypertables (#​4995).
  • Extended-progression telemetry: batched per-flush heartbeat writes (#​5008); fixed a shutdown telemetry race in extended_progression_batch_write (#​5023); running_on_node write-path regression coverage (#​5001 / #​5007). The cross-repo running_on_node population under Wolverine-managed distribution is completed via JasperFx 2.34.0 + Wolverine.
  • Tenant-scoped event/tag explorer readsReadStreamAsync / GetRecentStreamsAsync overrides honor tenancy (#​5020, #​5025), plus a MultiStreamProjection stepthrough via the instrumented fold in EventStoreExplorer (#​5002).
  • HighWaterHealthCheck scoped to owned databases, with per-tenant and ExternallyManaged daemon support (#​4992).
  • Surface JasperFx's application-assembly-reuse warning (GH-3521) at startup (#​5000).

Multi-tenancy & infrastructure

  • Token-capable maintenance connection for tenant database provisioning (#​5006).
  • Docs: connecting to Azure Database for PostgreSQL with Entra ID / managed identity (#​4993).

Dependencies

  • JasperFx / JasperFx.Events 2.34.0, Weasel 9.17.0.

Full changelog: JasperFx/marten@V9.17.0...V9.18.0

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps Marten from 9.17.1 to 9.20.1
Bumps Marten.AspNetCore from 9.17.1 to 9.20.1

---
updated-dependencies:
- dependency-name: Marten
  dependency-version: 9.20.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Marten.AspNetCore
  dependency-version: 9.20.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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 Jul 28, 2026
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednuget/​marten@​9.17.1 ⏵ 9.20.19910090100100
Updatednuget/​marten.aspnetcore@​9.17.1 ⏵ 9.20.110010090100100

View full report

Powerworks added a commit that referenced this pull request Jul 31, 2026
WolverineFx/.Http/.Marten/.RabbitMQ/.RuntimeCompilation to 6.23.1, Marten/
Marten.AspNetCore to 9.20.1 - applied as one manual bump instead of
merging Dependabot PRs #24/#27/#28/#29/#30 individually, since those
packages release in lockstep (per this file's own existing comment) and
the 5 PRs disagreed with each other on shared version lines (#24 vs #28
both touched Marten to different targets; #27/#29/#30 all touched
WolverineFx independently). Verified: solution builds clean, all 383
non-integration tests pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Powerworks

Copy link
Copy Markdown
Owner

Superseded by e3f9593 — WolverineFx/.Http/.Marten/.RabbitMQ/.RuntimeCompilation and Marten/Marten.AspNetCore are consolidated into one manual bump instead of merging this PR individually, since these packages release in lockstep and several of these Dependabot PRs disagreed with each other on the same version lines (e.g. this PR vs #24/#28 both touching Marten to different targets, or #27/#29/#30 all touching WolverineFx independently). Verified: build clean, all 383 non-integration tests pass.

@Powerworks Powerworks closed this Jul 31, 2026
@Powerworks
Powerworks deleted the dependabot/nuget/code/K9Crush-scaffold/K9Crush/multi-9bb847b17a branch July 31, 2026 03:38
@dependabot @github

dependabot Bot commented on behalf of github Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

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