Skip to content

Bump JasperFx 1.27 → 1.28.1 + JasperFx.Events 1.30 → 1.31.0 (replaces #4003)#4312

Merged
jeremydmiller merged 1 commit intomasterfrom
replace-pr-4003-single-tenant-doc-in-mt-ancillary
Apr 28, 2026
Merged

Bump JasperFx 1.27 → 1.28.1 + JasperFx.Events 1.30 → 1.31.0 (replaces #4003)#4312
jeremydmiller merged 1 commit intomasterfrom
replace-pr-4003-single-tenant-doc-in-mt-ancillary

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

Picks up the latest JasperFx + JasperFx.Events; also bumps JasperFx.RuntimeCompiler to 4.5.0 so the transitive set is consistent. Closes #4003 — the test additions in that PR were already brought into master via 8ee1d2348 (Add test reproductions from PR #4155 and #4003), so the only remaining work was the package bump.

One required call-site fix

JasperFx 1.28 moved the ICodeFile codegen extension methods — notably InitializeSynchronously — into the JasperFx.CodeGeneration namespace (JasperFx/jasperfx#194) and marked the JasperFx.RuntimeCompiler copies [Obsolete]. The new method requires IAssemblyGenerator to be registered in DI, which is part of the deliberate AOT-prep work.

Marten currently calls InitializeSynchronously with services: null at four sites:

  • src/Marten/DocumentStore.CompiledQueryCollection.cs:51
  • src/Marten/Internal/ProviderGraph.cs:62, 81
  • src/Marten/Internal/SecondaryStoreConfig.cs:130

The new method's runtime path would throw InvalidOperationException on those null-services calls. To avoid behavior change in 8.x, this PR fully-qualifies those four calls to the JasperFx.RuntimeCompiler.CodeFileExtensions.InitializeSynchronously overload (which still falls back to new AssemblyGenerator()). Directory.Build.props already suppresses CS0618 (Obsolete), so the explicit qualification doesn't generate noise.

Proper migration — registering IAssemblyGenerator in Marten's DI graph and switching to the new namespace's method — is tracked as part of the AOT-friendly mode work in #4309.

Test plan

  • Build clean (Marten + StressTests + CoreTests)
  • StressTests sweep including the test originally proposed in Extra test for single tenanted document in multi-tenancy partioned nc… #4003 (use_a_single_tenanted_document_in_multi_tenancy_ancillary_store) — 8 passed
  • CoreTests — 327 passed, 1 pre-existing skip
  • Event-sourcing smoke (118 tests across end_to_end_event_capture_and_fetching_the_stream + archiving_events)

🤖 Generated with Claude Code

Picks up the latest JasperFx + JasperFx.Events. Also bumps the
JasperFx.RuntimeCompiler pin to 4.5.0 so the transitive dep set is
consistent.

JasperFx 1.28 moved the ICodeFile codegen extension methods (notably
InitializeSynchronously) into the JasperFx.CodeGeneration namespace
(JasperFx/jasperfx#194) and marked the JasperFx.RuntimeCompiler copies
[Obsolete]. The new method requires IAssemblyGenerator to be registered
in DI (raising a descriptive InvalidOperationException otherwise) -- a
deliberate AOT-prep step. Marten currently passes a null IServiceProvider
to InitializeSynchronously at four call sites in ProviderGraph,
DocumentStore.CompiledQueryCollection, and SecondaryStoreConfig, so the
new method's runtime path would throw.

Disambiguate by fully-qualifying those four calls to the
JasperFx.RuntimeCompiler overload. The Obsolete warning code (CS0618) is
already in NoWarn at the repo root, so the explicit qualification stays
clean. Proper migration to the new method (registering IAssemblyGenerator
in Marten's DI graph) is tracked under the AOT-mode work for Marten 9.0
(issue #4309).

Effectively obsoletes PR #4003: the test additions from that PR have
already been brought into master via 8ee1d23 ("Add test reproductions
from PR #4155 and #4003"), so the only thing left is this package bump
and the runtime-compiler disambiguation. The test
use_a_single_tenanted_document_in_multi_tenancy_ancillary_store passes
against the new package set.

Closes #4003.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jeremydmiller jeremydmiller merged commit 8ed2d4d into master Apr 28, 2026
6 checks passed
@jeremydmiller jeremydmiller deleted the replace-pr-4003-single-tenant-doc-in-mt-ancillary branch April 28, 2026 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant