Repository navigation
Bump the backend-dependencies group with 9 updates - #39
Open
dependabot[bot] wants to merge 1 commit into
Open
dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps MailKit from 4.18.1 to 4.18.2 Bumps Marten from 9.51.0 to 9.54.2 Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 11.0.0-rc.2.26504.105 to 11.0.0-rc.3.26522.148 Bumps Microsoft.AspNetCore.OpenApi from 11.0.0-rc.2.26504.105 to 11.0.0-rc.3.26522.148 Bumps OpenTelemetry.Instrumentation.AspNetCore from 1.20.0 to 1.20.1 Bumps OpenTelemetry.Instrumentation.Http from 1.20.0 to 1.20.1 Bumps OpenTelemetry.Instrumentation.Runtime from 1.20.0 to 1.20.1 Bumps WolverineFx from 6.51.2 to 6.56.0 Bumps WolverineFx.RuntimeCompilation from 6.51.2 to 6.56.0 --- updated-dependencies: - dependency-name: MailKit dependency-version: 4.18.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: Marten dependency-version: 9.54.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: backend-dependencies - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-version: 11.0.0-rc.3.26522.148 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: Microsoft.AspNetCore.OpenApi dependency-version: 11.0.0-rc.3.26522.148 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: OpenTelemetry.Instrumentation.AspNetCore dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: OpenTelemetry.Instrumentation.Http dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: OpenTelemetry.Instrumentation.Runtime dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-dependencies - dependency-name: WolverineFx dependency-version: 6.56.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: backend-dependencies - dependency-name: WolverineFx.RuntimeCompilation dependency-version: 6.56.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: backend-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
|
Backend coverage
Full report: the coverage artifact of this run. |
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 MailKit from 4.18.1 to 4.18.2.
Release notes
Sourced from MailKit's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Marten from 9.51.0 to 9.54.2.
Release notes
Sourced from Marten's releases.
9.54.2
What's Changed
New Contributors
Full Changelog: JasperFx/marten@V9.54.1...v9.54.2
9.54.1
Full Changelog: JasperFx/marten@V9.54.0...V9.54.1
9.54.0
Full Changelog: JasperFx/marten@v9.53.0...V9.54.0
9.53.0
9.53.0 is a minor release. It picks up JasperFx 2.94.0 and implements the three members that release adds, for CritterWatch's Document Store Explorer and Event Store Explorer (#5756).
New
IReadOnlyEventStore.QueryEventData<T>(tenantId)(jasperfx#1073): store-agnostic LINQ over the bodies of one event type, across every stream. It runs through the sharedDocumentQueryableExtensionsterminators (ToListAsync,CountAsync,AnyAsync,FirstOrDefaultAsync).QueryRawEventDataOnly<T>()under the shared name. Events in archived streams are excluded, as they are there.BadLinqExpressionExceptionnaming it.QueryStreamStates:NotSupportedException;IDocumentStoreDiagnosticsWriter.PreviewDocumentJsonAsync(jasperfx#1071): a dry run ofSaveDocumentJsonAsync.ExpectedVersion.DocumentTypeRef.IsSoftDeleted(jasperfx#1070):IDocumentStoreDiagnostics.DocumentTypesAsyncreports whether each type usesDeleteStyle.SoftDelete. A sub-class reports its root mapping's delete style.Compliance
EventDataQueryComplianceis newly enrolled.ReportsDocumentDeleteStyleandSupportsDocumentWritePreviewgates are on.Dependencies
9.52.0
Highlights and behaviour changes
Built on JasperFx 2.93.1.
mt_event_projection_floors. Every event store gets this table as a schema migration on its nextapply (#5740). It holds the persisted projection start floors behind the new
AsyncOptions.SubscribeFromFirstRun().A database whose schema has not been migrated yet keeps starting its projections exactly as before. Floors survive
DeleteAllDocumentsAsync,DeleteAllEventDataAsyncandResetAllData, and they are removed along with a tenant.StoreOptions.Advanced.ExceptionTransforms(#5682). Register your own exception transforms, consultedbefore Marten's built-in ones, to turn a
PostgresExceptionwith your own SQLSTATE into a typed exception.UndeleteDocumentAsync), and ordera document page by last modified, numeric revision or created time ("newest first").
shard reports
ShardFailureCategory.ApplyEventand names the event, where it used to reportOtherwith no event.It is still not dead-lettered, and it was never retried before either.
IEventStore.PreviewHighWaterAdvanceAsync/AdvanceHighWaterMarkToLatestAsync(#5738): preview, thenadvance, the high-water mark to the latest event, the store-agnostic operation CritterWatch calls.
UseTenantPartitionedEventsno longer fails with23503, whether the store has DCB tagrows (#5720) or a
[NaturalKey]aggregate (#5742);intpastint.MaxValue, soILongVersionedworks as #4526 advised (#5723);
UndoDeleteWhere/HardDeleteWhereno longer cause a falseConcurrencyExceptionon a numeric-revision writelater in the same session (#5743).
Aspire.AppHost.Sdk13.6.3 with a PostgreSQL resource. The NuGet publish workflow nolonger installs the obsolete aspire workload (#5724).
What's Changed
Full Changelog: JasperFx/marten@v9.51.0...v9.52.0
Commits viewable in compare view.
Updated Microsoft.AspNetCore.Authentication.JwtBearer from 11.0.0-rc.2.26504.105 to 11.0.0-rc.3.26522.148.
Release notes
Sourced from Microsoft.AspNetCore.Authentication.JwtBearer's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.AspNetCore.OpenApi from 11.0.0-rc.2.26504.105 to 11.0.0-rc.3.26522.148.
Release notes
Sourced from Microsoft.AspNetCore.OpenApi's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated OpenTelemetry.Instrumentation.AspNetCore from 1.20.0 to 1.20.1.
Release notes
Sourced from OpenTelemetry.Instrumentation.AspNetCore's releases.
1.20.1
NuGet: OpenTelemetry.Extensions.AWS v1.20.1
1.20.1.(#5651)
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWS v1.20.1
No notable changes.
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWSLambda v1.20.1
No notable changes.
See CHANGELOG for details.
1.20.1-rc.1
NuGet: OpenTelemetry.Instrumentation.Process v1.20.1-rc.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-beta.1
NuGet: OpenTelemetry.Extensions.Enrichment v1.20.1-beta.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-alpha.1
NuGet: OpenTelemetry.Instrumentation.EventCounters v1.20.1-alpha.1
1.20.1.(#5651)
See CHANGELOG for details.
Commits viewable in compare view.
Updated OpenTelemetry.Instrumentation.Http from 1.20.0 to 1.20.1.
Release notes
Sourced from OpenTelemetry.Instrumentation.Http's releases.
1.20.1
NuGet: OpenTelemetry.Extensions.AWS v1.20.1
1.20.1.(#5651)
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWS v1.20.1
No notable changes.
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWSLambda v1.20.1
No notable changes.
See CHANGELOG for details.
1.20.1-rc.1
NuGet: OpenTelemetry.Instrumentation.Process v1.20.1-rc.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-beta.1
NuGet: OpenTelemetry.Extensions.Enrichment v1.20.1-beta.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-alpha.1
NuGet: OpenTelemetry.Instrumentation.EventCounters v1.20.1-alpha.1
1.20.1.(#5651)
See CHANGELOG for details.
Commits viewable in compare view.
Updated OpenTelemetry.Instrumentation.Runtime from 1.20.0 to 1.20.1.
Release notes
Sourced from OpenTelemetry.Instrumentation.Runtime's releases.
1.20.1
NuGet: OpenTelemetry.Extensions.AWS v1.20.1
1.20.1.(#5651)
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWS v1.20.1
No notable changes.
See CHANGELOG for details.
NuGet: OpenTelemetry.Instrumentation.AWSLambda v1.20.1
No notable changes.
See CHANGELOG for details.
1.20.1-rc.1
NuGet: OpenTelemetry.Instrumentation.Process v1.20.1-rc.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-beta.1
NuGet: OpenTelemetry.Extensions.Enrichment v1.20.1-beta.1
1.20.1.(#5651)
See CHANGELOG for details.
1.20.1-alpha.1
NuGet: OpenTelemetry.Instrumentation.EventCounters v1.20.1-alpha.1
1.20.1.(#5651)
See CHANGELOG for details.
Commits viewable in compare view.
Updated WolverineFx from 6.51.2 to 6.56.0.
Release notes
Sourced from WolverineFx's releases.
6.56.0
New
opts.UseHttpTransport()registers the HTTP transport insideUseWolverine().http/httpsURIs then resolve inListenForMessagesFrom(),PublishMessage<T>().To(uri), and runtimeEndpointFor()/ToDestination(). Before this, the transport was only registered byToHttpEndpoint(), and any otherhttpURI failed withUnknown Transport scheme 'http'./_wolverine/invokenow answers 415 instead of 500 for a content type with no registered serializer.Fixes
IHost.StopAsync()and throwObjectDisposedExceptionagainst a disposedNpgsqlDataSource.DeferAsync()used to call back into the receiver inline, so the failed inbox write and the defer recursed. A deferred Kafka envelope now goes back to the receiver on its own task after a short pause, and only while the listener is running. After a stop or inbox-recovery pause, its uncommitted offset brings it back. Because Kafka has no native requeue, aRequeueerror policy on a Kafka endpoint now redelivers after about one second instead of immediately./_wolverine/invokecould delete an outgoing envelope that was never received. HTTP transport responses are now disposed.6.55.1
Fixes
DatabaseBatchCommandExceptionand logged as an Error. Genuine SQL/connection failures are still reported.HttpEndpointaimed at/_wolverine/invokein its default (buffered) mode now delivers by posting each envelope individually, instead of receiving a 415 for every batch and retrying forever./batch/{queue}and.SendInline()endpoints are unchanged.6.55.0
Highlights
WolverineFx.Bobcat is out of alpha, on Bobcat 1.0.0 (#5222, #5229). Bobcat 1.0.0 shipped tonight, and
WolverineFx.BobcatandWolverineFx.Bobcat.EventModelnow publish as stable 6.55.0 instead of-alpha.1.WolverineFx.Bobcat.Httpstays6.55.0-alpha.1until Alba 9 ships stable, because a stable package cannot depend on Alba 9.0.0-rc.2. A spec project thatwrite-specsgenerates with no--wolverine-versionpins the stableWolverineFx.Bobcat(#5222, #5223).MessageCausedBynames your handler (#5224, #5225).IWolverineObserver.MessageCausedByreported the generated handler class (Internal.Generated.WolverineHandlers.StartTripHandler939323516). It now reports the handler you wrote (TripService.StartTripHandler), the same string as themessage.handlerspan tag, resolved at codegen time. Code generated by an earlier version keeps working through the old overload.CosmosDB sagas start with a conditional create (#5221, thanks @thechucklingatom). A second start message for an existing saga id used to silently overwrite the running saga. It now fails with the
SagaConcurrencyExceptionthat Marten, Azure Blob and S3 already raise, so oneOnException<SagaConcurrencyException>()policy covers every provider.Fixes
ListeningAgent.StartAsyncis serialized, and deliveries are deferred to a drainedBufferedReceiver(#5228)CancellationTokenSource(#5226)Dependencies
Originno longer raises aSourceDisagreement)Full Changelog: JasperFx/wolverine@V6.54.0...V6.55.0
6.54.0
Highlights
Dead letter failure groups (#5209, #5210). Wolverine now fingerprints every message as it moves to dead letter storage, so dead letters can be managed one failure group at a time:
IDeadLetterFingerprinterhashes the exception type and the first stack frame from application code. Register your own to replace it.DeadLetterEnvelopeQuerygainsFailureGroup,ExceptionMessageMatch(Exact / Contains),TenantIdandArchived.SummarizeAllAsyncoverload groups by failure group, message type or endpoint, with first and last failure times.ReplayMatchingAsync,DiscardMatchingAsync,ArchiveMatchingAsyncandRestoreMatchingAsyncreport how many dead letters they affected.ReplayCount,LastReplayedAtandFirstFailedAt.DurabilitySettings.ArchivedDeadLetterRetention.IDeadLetters.Capabilitiestells you what a store supports.All changes are additive. The relational stores pick up seven nullable columns on
wolverine_dead_letters, an index and a newwolverine_dead_letter_historytable through the normal schema migration. See the dead letter storage guide.Deduplication fixes (#5205, #5206, #5208), and Bobcat 1.0.0-rc.4 dependency pins (#5211). The
WolverineFx.Bobcat*packages remain alpha (6.54.0-alpha.1).What's Changed
Full Changelog: JasperFx/wolverine@V6.53.0...V6.54.0
6.53.0
What's Changed
New Contributors
Full Changelog: JasperFx/wolverine@V6.52.0...V6.53.0
6.52.0
Wolverine 6.52.0 is a feature release. The headline items are Aspire-style registration by connection-string name for every transport and every message store, timer agents for short-cadence recurring schedules, and the 6.x groundwork for Wolverine 7.0's one-chain-per-handler model. There are no breaking API changes. Two behavior changes are worth knowing about up front: recurring schedules that fire more often than every 15 minutes now run on a timer agent (opt out per schedule with
UseScheduledMessages()), and outgoing envelopes a transport cannot map are dead-lettered instead of being logged and deleted.Many thanks to everyone who reported issues and sent fixes: @uniquelau, @johnkaram02, @erdtsieck, @ahmetvayhan and @pritamrao.
Aspire parity: named connections
NpgsqlDataSource/MySqlDataSourcefrom the container, named static tenants, a Named Connection Strings table indescribe, and docs that lead with the named form (GH-5127, GH-5156) by @jeremydmiller in Message storage by connection-string name for every RDBMS provider, plus named-connection docs and describe (GH-5127, GH-5156) JasperFx/wolverine#5174wolverine.slnx, with a ServiceDefaults project for traces, metrics and/health(GH-5124) by @jeremydmiller in GH-5124 Aspire samples on Aspire 13.6.3 with shared service defaults, in wolverine.slnx JasperFx/wolverine#5182Messaging and error handling
opts.Schedules.TimerThreshold(15 minutes), same dedup id as the scheduled path, pause and resume throughIRecurringScheduleControl(GH-5168) by @jeremydmiller in GH-5168 Timer-based recurring messages: one agent per short-cadence schedule JasperFx/wolverine#5183DoThenRetry(action, maxAttempts)error policy that works both inline and from a queue (GH-5068) by @jeremydmiller in GH-5068 DoThenRetry() error policy that works inline and from a queue JasperFx/wolverine#5179MultipleHandlerBehavior.ClassicCombineIntoOneLogicalHandleris[Obsolete](still the default), a startup warning for combined handlers, opt-inAssertNoCombinedHandlers(), fixes for latentSeparatedbugs, ahandler.typeOpenTelemetry tag on every chain, and logical deduplication scoped per chain (GH-5133) by @jeremydmiller in GH-5133 6.x prep for 7.0's one chain per handler type: obsolete ClassicCombine, fix latent Separated bugs, per-handler OTel tag, per-chain dedup scoping JasperFx/wolverine#5184HTTP
[DeduplicatedWithResponse]ClaimInTransaction, plus two Marten commit-failure fixes (GH-5160, GH-5165, GH-5166) by @jeremydmiller with @uniquelau in GH-5160, GH-5165, GH-5166: [DeduplicatedWithResponse] ClaimInTransaction, plus two Marten commit-failure fixes JasperFx/wolverine#5169WolverineHttpOptions.DefaultClaimInTransaction, an application-wide default (GH-5160) by @jeremydmiller in GH-5160: WolverineHttpOptions.DefaultClaimInTransaction, a global opt-in for [DeduplicatedWithResponse(ClaimInTransaction)] JasperFx/wolverine#5173Content-Length(GH-5187) by @johnkaram02 in GH-5187: a string response declares its UTF-8 byte count as Content-Length JasperFx/wolverine#5188[FromQuery]name is not a C# identifier (GH-5189) by @johnkaram02 in GH-5189: bind array and list query parameters whose [FromQuery] name is not a C# identifier JasperFx/wolverine#5190Operability and diagnostics
ServiceCapabilitiesreads each store on its own and reportsFailedSections, so a failed section is distinguishable from an empty one (GH-5162) by @jeremydmiller in GH-5162 ServiceCapabilities: isolate each store, record FailedSections JasperFx/wolverine#5175AssignmentGrid.Agent.UnplacedReason(AwaitingCapacity,NoCapableNode,Paused,TakeoverHold,Superseded), a capacity log line and an optionalNodeAcceptThreshold(GH-5163) by @jeremydmiller in GH-5163 Unplaced agents carry an UnplacedReason; leader logs agents awaiting capacity JasperFx/wolverine#5176 and GH-5163 follow-up: UnplacedReason names are a stable contract; close the null-reason gaps JasperFx/wolverine#5186DeadLetterEnvelopeQuery, honored by bulk replay and discard, across every dead letter store (GH-5164) by @jeremydmiller in GH-5164 DeadLetterEnvelopeQuery header-equality filter JasperFx/wolverine#5181db-list/db-dump/db-patchdiscover the Oracle message store (GH-5172) by @jeremydmiller in GH-5172 Oracle message store is discoverable by the Weasel db-* commands JasperFx/wolverine#5177Documentation
MaximumHopperSizeto about 2 xBatchSize(GH-5170, follow-up JasperFx/jasperfx#1076) by @jeremydmiller in Bump to 6.52.0 JasperFx/wolverine#5199Full Changelog: JasperFx/wolverine@V6.51.3...V6.52.0
6.51.3
Wolverine 6.51.3 is a durability release. Nearly everything in it came out of a run of reports against the durable inbox and outbox, plus a new durable receiver compliance rig (
src/Testing/DurableComplianceRig, Bobcat specs across PostgreSQL, SQL Server, Marten and EF Core over local, database, RabbitMQ and SQS endpoints) that turned up the rest. There are no breaking API changes; the one schema addition (a nullableenvelope_idcolumn on the deduplication table) is optional and an unmigrated table keeps working.Many thanks to everyone who reported these with reproductions: @billshuck, @dbelinsky-accureference, @endava-marinela-marchitan, @devployment, @kowalczb, @Patrick2607 and @ahmetvayhan.
Durable inbox hardening
DbTransactiondispose inMessageContext.ClearState()could kill another handler's Npgsql transactionHandledonly after its own commit, and inside the tenant transaction for database-per-tenantReScheduleAsyncand then returns normally keeps its retry[Deduplicated]claim stranded by a crash can be taken over by the same envelope (new nullableenvelope_idcolumn, opt-inIEnvelopeAwareDeduplicationStore)Envelope.DeduplicationIdnow crosses RabbitMQ, the genericEnvelopeMapperbrokers and MQTTDuplicateIncomingEnvelopeExceptioninstead of pausing the listener or tripping the tenant write brake (PostgreSQL, SQL Server, MySQL, SQLite, Oracle)x-delivery-limit(.DeliveryLimit(n),DeliveryLimitForDurableQuorumQueues(n)), a startup warning, andDeferAsyncpublishes before it acks. New docs section "Quorum Queues and the Durable Inbox"Durable bug fixes
Testing
Full Changelog: JasperFx/wolverine@V6.51.2...V6.51.3
Commits viewable in compare view.
Updated WolverineFx.RuntimeCompilation from 6.51.2 to 6.56.0.
Release notes
Sourced from WolverineFx.RuntimeCompilation's releases.
6.56.0
New
opts.UseHttpTransport()registers the HTTP transport insideUseWolverine().http/httpsURIs then resolve inListenForMessagesFrom(),PublishMessage<T>().To(uri), and runtimeEndpointFor()/ToDestination(). Before this, the transport was only registered byToHttpEndpoint(), and any otherhttpURI failed withUnknown Transport scheme 'http'./_wolverine/invokenow answers 415 instead of 500 for a content type with no registered serializer.Fixes
IHost.StopAsync()and throwObjectDisposedExceptionagainst a disposedNpgsqlDataSource.DeferAsync()used to call back into the receiver inline, so the failed inbox write and the defer recursed. A deferred Kafka envelope now goes back to the receiver on its own task after a short pause, and only while the listener is running. After a stop or inbox-recovery pause, its uncommitted offset brings it back. Because Kafka has no native requeue, aRequeueerror policy on a Kafka endpoint now redelivers after about one second instead of immediately./_wolverine/invokecould delete an outgoing envelope that was never received. HTTP transport responses are now disposed.6.55.1
Fixes
DatabaseBatchCommandExceptionand logged as an Error. Genuine SQL/connection failures are still reported.HttpEndpointaimed at/_wolverine/invokein its default (buffered) mode now delivers by posting each envelope individually, instead of receiving a 415 for every batch and retrying forever./batch/{queue}and.SendInline()endpoints are unchanged.6.55.0
Highlights
WolverineFx.Bobcat is out of alpha, on Bobcat 1.0.0 (#5222, #5229). Bobcat 1.0.0 shipped tonight, and
WolverineFx.BobcatandWolverineFx.Bobcat.EventModelnow publish as stable 6.55.0 instead of-alpha.1.WolverineFx.Bobcat.Httpstays6.55.0-alpha.1until Alba 9 ships stable, because a stable package cannot depend on Alba 9.0.0-rc.2. A spec project thatwrite-specsgenerates with no--wolverine-versionpins the stableWolverineFx.Bobcat(#5222, #5223).MessageCausedBynames your handler (#5224, #5225).IWolverineObserver.MessageCausedByreported the generated handler class (Internal.Generated.WolverineHandlers.StartTripHandler939323516). It now reports the handler you wrote (TripService.StartTripHandler), the same string as themessage.handlerspan tag, resolved at codegen time. Code generated by an earlier version keeps working through the old overload.CosmosDB sagas start with a conditional create (#5221, thanks @thechucklingatom). A second start message for an existing saga id used to silently overwrite the running saga. It now fails with the
SagaConcurrencyExceptionthat Marten, Azure Blob and S3 already raise, so oneOnException<SagaConcurrencyException>()policy covers every provider.Fixes
ListeningAgent.StartAsyncis serialized, and deliveries are deferred to a drainedBufferedReceiver(#5228)CancellationTokenSource(#5226)Dependencies
Originno longer raises aSourceDisagreement)Full Changelog: JasperFx/wolverine@V6.54.0...V6.55.0
6.54.0
Highlights
Dead letter failure groups (#5209, #5210). Wolverine now fingerprints every message as it moves to dead letter storage, so dead letters can be managed one failure group at a time:
IDeadLetterFingerprinterhashes the exception type and the first stack frame from application code. Register your own to replace it.DeadLetterEnvelopeQuerygainsFailureGroup,ExceptionMessageMatch(Exact / Contains),TenantIdandArchived.SummarizeAllAsyncoverload groups by failure group, message type or endpoint, with first and last failure times.ReplayMatchingAsync,DiscardMatchingAsync,ArchiveMatchingAsyncandRestoreMatchingAsyncreport how many dead letters they affected.ReplayCount,LastReplayedAtandFirstFailedAt.DurabilitySettings.ArchivedDeadLetterRetention.IDeadLetters.Capabilitiestells you what a store supports.All changes are additive. The relational stores pick up seven nullable columns on
wolverine_dead_letters, an index and a newwolverine_dead_letter_historytable through the normal schema migration. See the dead letter storage guide.Deduplication fixes (#5205, #5206, #5208), and Bobcat 1.0.0-rc.4 dependency pins (#5211). The
WolverineFx.Bobcat*packages remain alpha (6.54.0-alpha.1).What's Changed
Full Changelog: JasperFx/wolverine@V6.53.0...V6.54.0
6.53.0
What's Changed
New Contributors
Full Changelog: JasperFx/wolverine@V6.52.0...V6.53.0
6.52.0
Wolverine 6.52.0 is a feature release. The headline items are Aspire-style registration by connection-string name for every transport and every message store, timer agents for short-cadence recurring schedules, and the 6.x groundwork for Wolverine 7.0's one-chain-per-handler model. There are no breaking API changes. Two behavior changes are worth knowing about up front: recurring schedules that fire more often than every 15 minutes now run on a timer agent (opt out per schedule with
UseScheduledMessages()), and outgoing envelopes a transport cannot map are dead-lettered instead of being logged and deleted.Many thanks to everyone who reported issues and sent fixes: @uniquelau, @johnkaram02, @erdtsieck, @ahmetvayhan and @pritamrao.
Aspire parity: named connections
NpgsqlDataSource/MySqlDataSourcefrom the container, named static tenants, a Named Connection Strings table indescribe, and docs that lead with the named form (GH-5127, GH-5156) by @jeremydmiller in Message storage by connection-string name for every RDBMS provider, plus named-connection docs and describe (GH-5127, GH-5156) JasperFx/wolverine#5174wolverine.slnx, with a ServiceDefaults project for traces, metrics and/health(GH-5124) by @jeremydmiller in GH-5124 Aspire samples on Aspire 13.6.3 with shared service defaults, in wolverine.slnx JasperFx/wolverine#5182Messaging and error handling
opts.Schedules.TimerThreshold(15 minutes), same dedup id as the scheduled path, pause and resume throughIRecurringScheduleControl(GH-5168) by @jeremydmiller in GH-5168 Timer-based recurring messages: one agent per short-cadence schedule JasperFx/wolverine#5183DoThenRetry(action, maxAttempts)error policy that works both inline and from a queue (GH-5068) by @jeremydmiller in GH-5068 DoThenRetry() error policy that works inline and from a queue JasperFx/wolverine#5179MultipleHandlerBehavior.ClassicCombineIntoOneLogicalHandleris[Obsolete](still the default), a startup warning for combined handlers, opt-inAssertNoCombinedHandlers(), fixes for latentSeparatedbugs, ahandler.typeOpenTelemetry tag on every chain, and logical deduplication scoped per chain (GH-5133) by @jeremydmiller in GH-5133 6.x prep for 7.0's one chain per handler type: obsolete ClassicCombine, fix latent Separated bugs, per-handler OTel tag, per-chain dedup scoping JasperFx/wolverine#5184HTTP
[DeduplicatedWithResponse]ClaimInTransaction, plus two Marten commit-failure fixes (GH-5160, GH-5165, GH-5166) by @jeremydmiller with @uniquelau in GH-5160, GH-5165, GH-5166: [DeduplicatedWithResponse] ClaimInTransaction, plus two Marten commit-failure fixes JasperFx/wolverine#5169WolverineHttpOptions.DefaultClaimInTransaction, an application-wide default (GH-5160) by @jeremydmiller in GH-5160: WolverineHttpOptions.DefaultClaimInTransaction, a global opt-in for [DeduplicatedWithResponse(ClaimInTransaction)] JasperFx/wolverine#5173Content-Length(GH-5187) by @johnkaram02 in GH-5187: a string response declares its UTF-8 byte count as Content-Length JasperFx/wolverine#5188[FromQuery]name is not a C# identifier (GH-5189) by @johnkaram02 in GH-5189: bind array and list query parameters whose [FromQuery] name is not a C# identifier JasperFx/wolverine#5190Operability and diagnostics
ServiceCapabilitiesreads each store on its own and reportsFailedSections, so a failed section is distinguishable from an empty one (GH-5162) by @jeremydmiller in GH-5162 ServiceCapabilities: isolate each store, record FailedSections JasperFx/wolverine#5175AssignmentGrid.Agent.UnplacedReason(AwaitingCapacity,NoCapableNode,Paused,TakeoverHold,Superseded), a capacity log line and an optionalNodeAcceptThreshold(GH-5163) by @jeremydmiller in GH-5163 Unplaced agents carry an UnplacedReason; leader logs agents awaiting capacity JasperFx/wolverine#5176 and GH-5163 follow-up: UnplacedReason names are a stable contract; close the null-reason gaps JasperFx/wolverine#5186DeadLetterEnvelopeQuery, honored by bulk replay and discard, across every dead letter store (GH-5164) by @jeremydmiller in GH-5164 DeadLetterEnvelopeQuery header-equality filter JasperFx/wolverine#5181db-list/db-dump/db-patchdiscover the Oracle message store (GH-5172) by @jeremydmiller in GH-5172 Oracle message store is discoverable by the Weasel db-* commands JasperFx/wolverine#5177Documentation
MaximumHopperSizeto about 2 xBatchSize(GH-5170, follow-up JasperFx/jasperfx#1076) by @jeremydmiller in Bump to 6.52.0 JasperFx/wolverine#5199Full Changelog: JasperFx/wolverine@V6.51.3...V6.52.0
6.51.3
Wolverine 6.51.3 is a durability release. Nearly everything in it came out of a run of reports against the durable inbox and outbox, plus a new durable receiver compliance rig (
src/Testing/DurableComplianceRig, Bobcat specs across PostgreSQL, SQL Server, Marten and EF Core over local, database, RabbitMQ and SQS endpoints) that turned up the rest. There are no breaking API changes; the one schema addition (a nullableenvelope_idcolumn on the deduplication table) is optional and an unmigrated table keeps working.Many thanks to everyone who reported these with reproductions: @billshuck, @dbelinsky-accureference, @endava-marinela-marchitan, @devployment, @kowalczb, @Patrick2607 and @ahmetvayhan.
Durable inbox hardening
DbTransactiondispose inMessageContext.ClearState()could kill another handler's Npgsql transactionHandledonly after its own commit, and inside the tenant transaction for database-per-tenantReScheduleAsyncand then returns normally keeps its retry[Deduplicated]claim stranded by a crash can be taken over by the same envelope (new nullableenvelope_idcolumn, opt-inIEnvelopeAwareDeduplicationStore)Envelope.DeduplicationIdnow crosses RabbitMQ, the genericEnvelopeMapperbrokers and MQTTDuplicateIncomingEnvelopeExceptioninstead of pausing the listener or tripping the tenant write brake (PostgreSQL, SQL Server, MySQL, SQLite, Oracle)x-delivery-limit(.DeliveryLimit(n),DeliveryLimitForDurableQuorumQueues(n)), a startup warning, andDeferAsyncpublishes before it acks. New docs section "Quorum Queues and the Durable Inbox"Durable bug fixes
Testing
Full Changelog: JasperFx/wolverine@V6.51.2...V6.51.3
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 <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions