Repository navigation
JasperFx 2.98.0 - #5801
Merged
Merged
JasperFx 2.98.0#5801
Conversation
Carries the correlation id a slice's events agree on onto its side effects (#1101, #1105), correlation and causation on cloned events (#1107), SubscriptionDescriptor.PublishedTypes and the descriptor fixes (#1102, #1106, #1108), and the 2.97.1 fixes that never reached NuGet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
elexisvenator
pushed a commit
to elexisvenator/marten
that referenced
this pull request
Nov 2, 2026
Three of the six issues in this Weasel release are SQL Server only and inert here. What reaches Marten is the PostgreSQL parameter-type work and one PostgreSQL partitioning fix. weasel#758/JasperFx#759 is the headline: a private helper in five providers ended in `?? <catch-all>`, which can never return null, so every fall-through branch after the first was dead code. PostgreSQL was one of the two providers that already fell through correctly, so the resolution behaviour Marten sees is unchanged. The part that was a hard failure rather than a slow query: both AddParameters overloads resolved through ToParameterType on the TYPE, going around the value-aware seam weasel#403 added for Npgsql, so a UTC DateTime in a parameter bag was bound as `timestamp without time zone` and Npgsql threw outright, while the same value through AddNamedParameter worked. weasel#764 fixes PostgreSQL's numeric arm in PartitionExtensions.FormatSqlValue, which rendered with the current culture: a decimal partition bound carried a comma separator under de-DE and a negative one a U+2212 minus sign under sv-SE, fi-FI, lt-LT or nb-NO. The date arms were already invariant, which is what made the numeric one read as deliberate. No Marten code changes. Restores and builds clean against the published packages; the JasperFx 2.98.0 floor Weasel.Core now declares was already satisfied by JasperFx#5801. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Nov 3, 2026
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.
Moves Marten to the JasperFx 2.98.0 line. Newest stable versions were read from the NuGet flat container, not assumed.
What moved
JasperFxJasperFx.EventsJasperFx.Events.ComplianceTestsJasperFx.Events.SourceGeneratorJasperFx.SourceGeneratorAll five live in
Directory.Packages.props. There is noVersionOverride, no nested props file and no doc stating the version.JasperFx.RuntimeCompilerhas no pin here. Weasel pins are unchanged.What had to change
Nothing beyond the pins, plus the usual dated note above them in
Directory.Packages.props. The solution compiles as it stands, with no name clash onIPublishesTypesorEventModelEntryPoint, and the compliance suites that compile insideEventSourcingTestsstill compile. No test expectation was changed.What 2.98.0 brings (release notes):
slice.PublishMessagecarries the correlation id the slice's events agree on (Projection side effects drop the correlation id of the event that caused them, and the async daemon merges unrelated flows jasperfx#1101, Carry the correlation a slice's events agree on onto its side effects (#1101) jasperfx#1105).ProjectionBatch.PublishMessageAsync(object, MessageMetadata)already forwards metadata to the batch. The fake batches in the tests implement only the tenant overload, and the default interface method forwards to it, so they keep working.SubscriptionDescriptor.PublishedTypesand the descriptor fixes (SubscriptionDescriptor should carry a projection's published types jasperfx#1102, Carry a projection's published types on SubscriptionDescriptor (#1102) jasperfx#1106, Describe a projection as it was registered; keep nothing-to-store types out of teardown jasperfx#1108).Run locally
dotnet build src/Marten.slnx -c Release, all 57 projects on net9.0 and net10.0: 0 errors, 2,925 warnings. Restore resolved 2.98.0 inEventSourcingTests.Marten.SourceGenerator.Tests, which needs no database: 19 of 19 passed on net9.0 and on net10.0.EventSourcingTestsandCoreTestswith the connection pointed at a closed port, to pick out what needs no database (DEFAULT_SERIALIZER=SystemTextJson).testing_projectionswas excluded because it hard-codes port 5432. Results were identical on both frameworks:EventSourcingTestsCoreTestsThose failures are expected in this setup: every one was checked and traces to the closed port (
Failed to connect, or the store fixture failing to start). They say nothing about the database behaviour, and passing counts are the only signal from that run.Left to CI
No database suite ran locally, because no Marten test database was available. That is all of the real coverage for this bump:
EventSourcingTests(including the compliance suites) andCoreTestsagainst Postgres,DaemonTests,TenantPartitionedEventsTests,DocumentDbTests,LinqTests,MultiTenancyTests,PatchingTests,ValueTypeTests,CompiledQueryTests,ContainerScopedProjectionTests,ModularConfigTests, and the extension suites. The side effect correlation change is only exercised there. A search found no test that pins the old correlation id on a side effect, but that was by reading, not by running.🤖 Generated with Claude Code