Repository navigation
Bump Aspire.Hosting.JavaScript and 19 others - #93
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 Aspire.Hosting.JavaScript from 13.6.1 to 13.6.4 Bumps Aspire.Hosting.PostgreSQL from 13.6.1 to 13.6.4 Bumps Marten from 9.47.0 to 9.55.0 Bumps Microsoft.AspNetCore.Authentication.JwtBearer from 10.0.12 to 10.0.14 Bumps Microsoft.AspNetCore.Mvc.Testing from 10.0.12 to 10.0.14 Bumps Microsoft.AspNetCore.OpenApi from 10.0.12 to 10.0.14 Bumps Microsoft.Extensions.Http.Resilience from 10.10.0 to 10.11.0 Bumps Microsoft.Extensions.ServiceDiscovery from 10.10.0 to 10.11.0 Bumps Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0 Bumps OpenTelemetry.Exporter.OpenTelemetryProtocol to 1.20.1 Bumps OpenTelemetry.Extensions.Hosting to 1.20.1 Bumps OpenTelemetry.Instrumentation.AspNetCore from 1.19.0 to 1.20.1 Bumps OpenTelemetry.Instrumentation.Http from 1.19.0 to 1.20.1 Bumps OpenTelemetry.Instrumentation.Runtime from 1.19.0 to 1.20.1 Bumps Testcontainers.PostgreSql from 4.15.0 to 4.16.0 Bumps WolverineFx from 6.48.1 to 6.57.0 Bumps WolverineFx.Http from 6.48.1 to 6.57.0 Bumps WolverineFx.Marten from 6.48.1 to 6.57.0 Bumps WolverineFx.RuntimeCompilation from 6.48.1 to 6.57.0 Bumps xunit.runner.visualstudio from 4.0.0 to 4.0.1 --- updated-dependencies: - dependency-name: Marten dependency-version: 9.55.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-version: 10.0.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.AspNetCore.OpenApi dependency-version: 10.0.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.Extensions.Http.Resilience dependency-version: 10.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.Extensions.ServiceDiscovery dependency-version: 10.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Extensions.Hosting dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Instrumentation.AspNetCore dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Instrumentation.Http dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Instrumentation.Runtime dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: WolverineFx dependency-version: 6.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: WolverineFx.Http dependency-version: 6.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: WolverineFx.Marten dependency-version: 6.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: WolverineFx.RuntimeCompilation dependency-version: 6.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: Aspire.Hosting.JavaScript dependency-version: 13.6.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Aspire.Hosting.PostgreSQL dependency-version: 13.6.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: OpenTelemetry.Extensions.Hosting dependency-version: 1.20.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: xunit.runner.visualstudio dependency-version: 4.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Marten dependency-version: 9.55.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.AspNetCore.Mvc.Testing dependency-version: 10.0.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Testcontainers.PostgreSql dependency-version: 4.16.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: xunit.runner.visualstudio dependency-version: 4.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Microsoft.AspNetCore.Mvc.Testing dependency-version: 10.0.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch - dependency-name: Testcontainers.PostgreSql dependency-version: 4.16.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-minor-and-patch - dependency-name: xunit.runner.visualstudio dependency-version: 4.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com>
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 Aspire.Hosting.JavaScript from 13.6.1 to 13.6.4.
Release notes
Sourced from Aspire.Hosting.JavaScript's releases.
13.6.4
What's New in Aspire 13.6.4
Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix.
🐛 Fixes
🖥️ Resources could fail to start after a DCP create request timed out — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature
FailedToStartstate when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured throughDcpPublisher:KubernetesApiTimeout,DcpPublisher:KubernetesInitializationAdditionalTimeout, andDcpPublisher:KubernetesCreateRecoveryTimeout. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes #20691. (#20868, backport of #20752, @danegsta)☁️ TypeScript AppHosts could fail to publish parameterized Azure enum properties — Assigning a
bicep().parameter(...)expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. (#20767, backport of #20557, @sebastienros)🔒 CLI diagnostic logs now use owner-only permissions on Unix — Log files are restricted to owner read/write access (
0600), including reused files, and the dedicated Aspire logs directory uses owner-only access (0700), repairing existing permissions when needed. Newly created custom log directories also use0700; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. (#21282, backport of #21276, @mitchdenny)Full Changelog: v13.6.3...v13.6.4
Full commit: c89352703f78ae46de90fbf751ed8b52b77b89bf
13.6.3
What's New in Aspire 13.6.3
Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations.
🐛 Fixes
🖥️ Resource operations could stall when a watch stopped being read — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. (#21002, backport of #20972, @danegsta)
🔄 Slow watchers could block other resource updates or watcher shutdown — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. (#21215, @danegsta; includes microsoft/dcp#307)
Full Changelog: v13.6.2...v13.6.3
Full commit: 38294b1b31552dae42a516cffa0cbc737ec08976
13.6.2
Full commit: af07e33f8d1ef733645138b3f8e36067d073148d
What's Changed
Full Changelog: microsoft/aspire@v13.6.1...v13.6.2
Commits viewable in compare view.
Updated Aspire.Hosting.PostgreSQL from 13.6.1 to 13.6.4.
Release notes
Sourced from Aspire.Hosting.PostgreSQL's releases.
13.6.4
What's New in Aspire 13.6.4
Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix.
🐛 Fixes
🖥️ Resources could fail to start after a DCP create request timed out — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature
FailedToStartstate when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured throughDcpPublisher:KubernetesApiTimeout,DcpPublisher:KubernetesInitializationAdditionalTimeout, andDcpPublisher:KubernetesCreateRecoveryTimeout. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes #20691. (#20868, backport of #20752, @danegsta)☁️ TypeScript AppHosts could fail to publish parameterized Azure enum properties — Assigning a
bicep().parameter(...)expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. (#20767, backport of #20557, @sebastienros)🔒 CLI diagnostic logs now use owner-only permissions on Unix — Log files are restricted to owner read/write access (
0600), including reused files, and the dedicated Aspire logs directory uses owner-only access (0700), repairing existing permissions when needed. Newly created custom log directories also use0700; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. (#21282, backport of #21276, @mitchdenny)Full Changelog: v13.6.3...v13.6.4
Full commit: c89352703f78ae46de90fbf751ed8b52b77b89bf
13.6.3
What's New in Aspire 13.6.3
Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations.
🐛 Fixes
🖥️ Resource operations could stall when a watch stopped being read — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. (#21002, backport of #20972, @danegsta)
🔄 Slow watchers could block other resource updates or watcher shutdown — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. (#21215, @danegsta; includes microsoft/dcp#307)
Full Changelog: v13.6.2...v13.6.3
Full commit: 38294b1b31552dae42a516cffa0cbc737ec08976
13.6.2
Full commit: af07e33f8d1ef733645138b3f8e36067d073148d
What's Changed
Full Changelog: microsoft/aspire@v13.6.1...v13.6.2
Commits viewable in compare view.
Updated Marten from 9.47.0 to 9.55.0.
Release notes
Sourced from Marten's releases.
9.55.0
Read before upgrading
Apps running under a Turkish or Azerbaijani culture (
tr-TR,az-AZ) with document types whose names contain an uppercaseI. Document aliases (#5778),DdlTemplatelookups and flat-table upsert function names (#5783) are now lowered with the invariant culture. Before this release, those cultures turnedIinto a dotlessı, so a document typeInvoicewas stored inmt_doc_ınvoice. From 9.55.0 it maps tomt_doc_invoice, and Marten will create that table empty. Rename the existing tables (and their upsert functions) to the invariant name before upgrading, or the existing documents will appear to be missing. Apps on any other culture are unaffected: the names they generate are unchanged.Behaviour change:
StoredDocument.Versionfor projection documents (#5773). For a mapping that usesUseVersionFromMatchingStreamwith revisions, the diagnostics version token is now<mt_version>:<mt_last_modified as epoch microseconds>(or an md5 of the document body when last-modified tracking is disabled). It used to bemt_versionalone, which did not change when the daemon rewrote the document at the same stream version. Anything that parsed the token as an integer must be updated. Undeleting a projection document through the diagnostics writer also no longer bumpsmt_versionpast the stream's version.Fixes worth calling out
x.Inner.Value, instead of falling back to the JSONB path.TrackConnections = TrackLevel.Verbose, amarten.append.eventactivity event is now emitted on every append route, including the Quick routes that are the V9 default. Expect more events per append than before.DatabaseSchemaNamethat is a reserved word or contains uppercase. Before, every schema apply after the first failed with42P07(weasel#750, contributed by @marc-RocketRez).StreamPagedByCursorwrites each page's bytes directly and disposes its pooled stream (#5776, @chrisbbe).What's Changed
New Contributors
Full Changelog: JasperFx/marten@v9.54.2...V9.55.0
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
9.51.0
What's Changed
Full Changelog: JasperFx/marten@V9.50.3...v9.51.0
9.50.3
The Native AOT and hard-delete release. One new feature on the event store, two schema-naming fixes that could not be worked around, and three behaviour changes — read those before upgrading.
New
TombstoneStream— a hard stream delete (#5673, #5674).session.Events.TombstoneStream(id)queues a single-statement delete of a stream's tag rows, its events and its stream row — plus themt_streams_identityrow under strict identity enforcement — scoped to the session tenant under conjoined tenancy. The event sequence is never touched, and projected documents are deliberately left alone. Queued untilSaveChangesAsync, like every other write.It is on the shared
IEventStoreOperationscontract as a default member that throwsNotSupportedException, so a store without a hard delete stays source-compatible, and the sharedStreamTombstoningCompliancesuite now runs against Marten.DCB tag types can be registered for Native AOT (#5649, #5674, #5676).
RegisterTagType<TTag>()discovers the tag's inner type by reflecting over its members and closes a generic registration at runtime, neither of which a native image can do — so a store with a DCB tag type could not even be configured under AOT.Naming the inner type closes the generic at compile time and the unwrapper replaces the reflection. The suffix is optional and defaults to the tag type's own name, so for a tag the inferring overload could register, this one registers the same inner type and the same table. It works identically under a JIT.
The inferring overloads are now annotated
[RequiresUnreferencedCode]/[RequiresDynamicCode], and — because an analyzer warning only reaches an application that is itself AOT-analyzed, while a store configured from inside a library gets nothing — a failure at runtime now throws naming the exact line to write, keeping the original exception as its inner exception. Automatic tag registration from projection identities logs a warning naming the same line, including the projection'sForAggregate<T>().With explicit registrations, tagging, tag rules,
EventTagQuery,EventsExistAsync,AggregateByTagsAsyncandFetchForWritingByTagsinto a[BoundaryAggregate]all run from a native binary. A CI job publishes and runs them.Fixed
A custom foreign key name is no longer discarded under conjoined tenancy (#5672, #5678). Moving
tenant_idto the front of a document foreign key regenerated the key's name unconditionally, so a name set through theforeignKeyConfigurationcallback was thrown away. That is what made the identifier-length failure unfixable: the exception tells you to override the database object name, and overriding it had no effect. A generated name is still regenerated; a chosen one survives, as does the name of aForeignKeyadded by hand.Archiving a tagged stream no longer fails with a foreign key violation (#5675, #5679). With
UseArchivedStreamPartitioningon and any DCB tag type registered,ArchiveStreamcame back as23503. Eachmt_event_tag_*table is partitioned byis_archivedand carries a composite foreign key tomt_events;mt_archive_streammoved the events between partitions without moving the tag rows that referenced them. It now moves them, in the order that keeps both sides of a non-deferrable key consistent at every statement.AllObjects()no longer applies the Hi-Lo DDL (#5665, #5670). Describing the schema provisioned part of it. The describing seam is now separate from the applying one, and is proven offline against an unreachable host.A failed Rebuild-mode run can be restarted and finished from its committed progress (#5668, #5669).
Performance
id = ANY($1)that could only return no rows, plus a second connection with the defaultUseIdentityMapForAggregates = false. The same guard removes a wasted round trip from an async daemon batch whose slices all hit the aggregate write cache.Behaviour changes
An empty DCB tag table suffix is refused.
RegisterTagType<T>("")used to be accepted and namedmt_event_tag_— a real table that every tag type registered that way would share. Pass a suffix, ornullfor the tag type's own name.A tag type that cannot be read now throws
InvalidOperationException, with the originalInvalidValueTypeExceptionas its inner exception, and a message naming the explicit registration. This happens whether or not dynamic code is available, because the same exception means "not a single-value wrapper" under a JIT and "the members were trimmed away" in a trimmed image, and nothing at runtime tells those apart.Document foreign key and index names longer than 63 characters are shortened with a deterministic hash suffix, the same treatment the document table's primary key already got. If you raised PostgreSQL's
NAMEDATALENand have a foreign key or index whose generated name is between 64 characters and your own limit, that object will be renamed and you will see it in a migration diff.Known, not fixed
DCB tag queries return archived events, where every other event query excludes them by default — #5677. It matters most for
EventsExistAsync, which is what a consistency boundary assertion is built on: an archived stream still answers yes. Independent of storage mode and of archived-stream partitioning.Dependencies
... (truncated)
9.50.2
A maintenance release. Nothing in a shipped Marten package changed, and nothing here requires a configuration or code change.
Dependencies
System.Security.Cryptography.Pkcs). Npgsql doesn't bring that package in. Every finding was in the Nuke build tool or the samples:System.Security.Cryptography.Pkcs,System.Security.Cryptography.XmlandNuGet.Packaging.EventPublishersample and the Aspire sample moved from 1.8.x to 1.19.x.The same advisory does reach Polecat and Weasel's SQL Server and Oracle packages, through their database drivers. Those are fixed in Polecat 5.40.2 and Weasel 9.45.1.
9.50.1
A patch release with one addition, for Wolverine's agent assignment. Nothing here requires a configuration or code change.
Event store
IEventStore.TryDescribeDatabasesAsync()is answered straight from the tenancy (#5664). JasperFx 2.87.1 adds this narrower call, the database half ofTryCreateUsage(). It returns each database's server, name and tenant ids without reading the highest event sequence or describing every projection, subscription, event type and tag type. Wolverine 6.50.0 asks for it on every leader heartbeat, for every store, where it used to build the full usage (JasperFx/wolverine#5002). It follows on from #5652, so thanks again to @uniquelau for a report that came with the heartbeat maths already done.Dependencies
9.50.0
A bug-fix release. Nothing here requires a configuration or code change, but three things change what an application observes — read the box below before upgrading.
LINQ —
Include()joined on the queried document's own idThree separate defects in the same corner, found by pulling on the first one. An
Include()joined on the queried document's own id builds a temp table, and that temp table was missing the id it is joined on.42703: column d.id does not existin a query session when the queried document had any duplicated field. Lightweight, identity-map and dirty-tracked sessions were unaffected. Thanks to @Blackclaws for the report and the fix (#5651).42703, in a query session, when the query also calledStats(). Unlike #5650 this did not depend on a duplicated field;Stats()wraps the select clause, which hid it from the check that puts the id back.Stats()with anInclude()and aSelect()projection reportedTotalResultsas the size of the page rather than the number of matches, wheneverTake()was used. No exception, just a wrong number, on every session kind. The temp table already held the correct count — PostgreSQL evaluates a window function beforeLIMIT— but re-applying the projection emitted a secondcount(*) over()against the already-truncated temp table.If you page a projected grid with
Stats()andInclude(), #5654 is the one to read.Event store
ERRORfor every attempt; underUseWolverineManagedEventSubscriptionDistributionthe leader does this for every store on a ten-second heartbeat, which is tens of thousands of server-sideERRORlines a day for a store that can never hold an event. Marten now asks the catalog first, so nothing reaches the server log. Thanks to @uniquelau for a report that came with the heartbeat maths already done.IEventStore.FindDatabaseForTenantAsync, so a caller waiting on or querying a single tenant touches only that tenant's database instead of all of them. Goes throughITenancy.TryFindDatabase, neverFindOrCreateDatabase, so a lookup cannot bring an unknown tenant into existence.Native AOT
#5649 (partial) — a DCB
[BoundaryAggregate]fetch failed natively withMissingMethodException, becauseEventGraph.Build<TDoc>()closedSingleStreamProjection<,>at runtime even though both type arguments were known at compile time. And tag-type auto-discovery swallowed the AOT failure in the same breath as a benign one, leaving a store running with the tag type quietly absent; it now says so. Verified by publishing and running the native binary, not by a clean publish.Still open:
RegisterTagType<TTag>()closes its own open generic and remains broken under Native AOT. That needs a reflection-free construction path in JasperFx.Events plus a new overload — see the discussion on #5649. Thanks to @skoging for an unusually thorough report, with native runs and three costed alternatives.Dependencies
db-patchdrop files no longer drop every schema withCASCADE; they roll back only what the patch touched (weasel#706). This changes what an existing drop file does. Primary keys can also now be added to and removed from existing tables (weasel#707).Known issue
Stats()withInclude()and aSelect()projection is fixed here, but note that theInclude()itself still follows the page, not the match set — it reads from the same truncated temp table. Only the statistics column outlives theTake(). That is existing, intended behaviour; it is called out because #5654 makes the distinction visible for the first time.9.49.0
The LINQ projection surface works under Native AOT
The theme of this release. #5624 came in as "a projection into an anonymous type cannot be
materialized under Native AOT". Publishing
Marten.AotRuntimeSmokenatively and running it showedsomething much wider: every
Select()projection into a new object failed from a native binary,a named DTO exactly as hard as an anonymous one, and it failed before the serializer was ever
reached.
A projection is parsed out of an expression tree, so the parser only has
selectExpression.Typeandclosed its select clause over that
TypewithMakeGenericType+Activator.CreateInstance— thedefect class of #5328, one step later in the pipeline. Only a bare
stringscalar survived, becauseits clause happens not to be generic, which is what made the surface look healthy.
Shapes that threw from a native binary before this release and run now:
Select(x => new Summary { ... })— a named DTOSelect(x => x.Lines)— a collection member, and the element type of aSelectMany(x => x.Lines)Select(x => x.Amount)for every framework scalar type,decimal?and the other nullable ones includedSelect(x => x.Status)andMaxAsync(x => x.Status)for an enum of your own — see the one line belowGroupBy(...).Select(g => new Tally { ... })The fix is
SelectClauseResolvers, which does for projected types what #5328'sDocumentStorageResolversdoes for document types: a registry populated fromMartenLinqQueryable<T>'s constructor, which every projected type reaches becauseQueryable.Select<TSource, TResult>()asks the provider forCreateQuery<TResult>(). The reflectivepath remains the fallback wherever a JIT is available, so nothing changes for JIT-mode apps.
One line for an enum or struct of your own
Marten's scalar select clause is declared
where T : structand the registration point aboveconstrains its own
Ttonotnull, so Marten can root the scalar types it renders itself —decimal,Guid,DateOnlyand the rest need nothing — but not one out of your assembly:Only bare scalar projections need it. Projecting the same enum as a member of a named type, and
filtering on it, never did. When the registration is missing, the failure now names that exact call
instead of reporting a missing parameterless constructor on an internal generic.
An anonymous projection is refused with the remedy
With a source-generated
JsonSerializerContextassigned to... (truncated)
9.48.0
Document diagnostics: filter and order by document properties (jasperfx#869, #5631)
IDocumentStoreDiagnostics.QueryDocumentsAsyncnow appliesDocumentQueryOptions.Where/OrderBy/Argumentsinstead of refusing them. The text goes ontoQuery<T>()through JasperFx 2.84.0's Dynamic LINQ helper, so member casing, enum storage, duplicated fields, conjoined tenancy, soft deletes and hierarchies are Marten's own; only the SELECT list is swapped for the diagnostics read's columns, so the JSON comes back byte-exact with its metadata, and the total counts the filtered rows. Operator text is never spliced into SQL, and the read issues no DDL.Measured against a LINQ-to-objects oracle over 83 shapes and three storage configurations; every shape is either right or refused:
<>/ a negated comparison on a nullable member unless the text says what null should do (JasperFx'sSqlNullSemantics). Date-part members and inlinein (…)lists are refused honestly by the provider.DateTimearguments compare correctly againsttimestamp without time zonelocators.Fixes
Count/LongCountpredicates through the Where parser, with null semantics and bound parameters (#5625).StartStreamthat loses a race for the same stream id now throwsExistingStreamIdCollisionExceptioninstead of a raw 23505, soQuickWithServerTimestampsbehaves like Rich and Quick (#5628).Dependencies
JasperFx 2.84.0
Commits viewable in compare view.
Updated Microsoft.AspNetCore.Authentication.JwtBearer from 10.0.12 to 10.0.14.
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.Mvc.Testing from 10.0.12 to 10.0.14.
Release notes
Sourced from Microsoft.AspNetCore.Mvc.Testing's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.AspNetCore.OpenApi from 10.0.12 to 10.0.14.
Release notes
Sourced from Microsoft.AspNetCore.OpenApi's releases.
No release notes found for this version range.
Commits viewable in compare view.
Pinned Microsoft.Extensions.Http.Resilience at 10.11.0.
Release notes
Sourced from Microsoft.Extensions.Http.Resilience's releases.
10.11.0
.NET Extensions 10.11.0
This release adds optional scope capture for buffered logs and updates experimental HTTP latency enrichment APIs. It also includes fixes for AI streaming and function invocation, evaluation reports, HybridCache invalidation, and logging.
Experimental API Changes
New Experimental APIs
GlobalLogBufferingOptions.IncludeScopesandPerRequestLogBufferingOptions.IncludeScopes(EXTEXP0003) #7813Breaking Changes to Experimental APIs
AddHttpLatencyTelemetryis renamed toAddHttpServerLatencyTelemetryand moves fromHttpLatencyTelemetryServiceCollectionExtensionstoHttpLoggingServiceCollectionExtensions. It remains experimental underEXTEXP0013in this release. #7730What's Changed
AI
AI Evaluation
Telemetry and Observability
ASP.NET Core Extensions
AI Project Templates
Caching
... (truncated)
10.10.1
This release fixes two OpenAI integration issues: a TypeLoadException on tool-carrying Responses API calls and a streaming crash against third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to 2.14.0.
Packages in this release
10.10.110.10.1What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.10.0...v10.10.1
Commits viewable in compare view.
Pinned Microsoft.Extensions.ServiceDiscovery at 10.11.0.
Release notes
Sourced from Microsoft.Extensions.ServiceDiscovery's releases.
10.11.0
.NET Extensions 10.11.0
This release adds optional scope capture for buffered logs and updates experimental HTTP latency enrichment APIs. It also includes fixes for AI streaming and function invocation, evaluation reports, HybridCache invalidation, and logging.
Experimental API Changes
New Experimental APIs
GlobalLogBufferingOptions.IncludeScopesandPerRequestLogBufferingOptions.IncludeScopes(EXTEXP0003) #7813Breaking Changes to Experimental APIs
AddHttpLatencyTelemetryis renamed toAddHttpServerLatencyTelemetryand moves fromHttpLatencyTelemetryServiceCollectionExtensionstoHttpLoggingServiceCollectionExtensions. It remains experimental underEXTEXP0013in this release. #7730What's Changed
AI
AI Evaluation
Telemetry and Observability
ASP.NET Core Extensions
AI Project Templates
Caching
... (truncated)
10.10.1
This release fixes two OpenAI integration issues: a TypeLoadException on tool-carrying Responses API calls and a streaming crash against third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to 2.14.0.
Packages in this release
10.10.110.10.1What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.10.0...v10.10.1
Commits viewable in compare view.
Updated Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0.
Release notes
Sourced from Microsoft.NET.Test.Sdk's releases.
18.11.0
What's Changed
New Contributors
Full Changelog: microsoft/vstest@v18.10.1...v18.11.0
Commits viewable in compare view.
Pinned OpenTelemetry.Exporter.OpenTelemetryProtocol at 1.20.1.
Release notes
Sourced from OpenTelemetry.Exporter.OpenTelemetryProtocol's releases.
1.20.1
For highlights and announcements pertaining to this release see: Release Notes > 1.20.1.
The following changes are from the previous release 1.20.0.
NuGet: OpenTelemetry v1.20.1
Fixed a possible race condition on ARM64 when multiple threads record the
first measurement with no tags, or the first overflow measurement, that could
cause the measurement to be recorded incorrectly.
(#7951)
Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
and prefixed JWTs.
(#7955)
Fixed default HTTP client log filtering when registering the OTLP log exporter
through
OpenTelemetryLoggerOptions.(#7959)
Fixed legacy self-diagnostics logging terminating the process when the log
file is truncated or the log volume runs out of space.
(#7956)
Experimental (pre-release builds only): Fixed
Logger.EmitLogignoringinstrumentation suppression, which could cause recursive exports or deadlocks.
(#7961)
Fixed delta double counters losing subsequent measurements after a non-finite
or large value and idle metric points with a
NaNvalue failing to be reclaimed.(#7963)
Improve the assignment of values to exponential histogram buckets when the
value is near a bucket boundary by using a pre-computed lookup table.
(#7911)
Fixed
LogRecords being returned to the shared pool while still queued forexport when an exporter stops enumerating a single-item or array
Batch<LogRecord>early which could cause aBatchLogRecordExportProcessoron the same provider to export missing or incorrect data.
(#7965)
Fixed a
SuppressInstrumentationScope.Enter()reference count never beingreleased when the
Activityit was entered for is not recorded, which causedall subsequent telemetry in that execution context to be suppressed.
(#7966)
Self-diagnostics log files, whether configured through
OTEL_DIAGNOSTICS.jsonor
SelfDiagnosticsOptions, are now always created as new files.(#7968)
... (truncated)
1.20.1-rc.1
The following changes are from the previous release 1.20.0.
NuGet: OpenTelemetry v1.20.1-rc.1
Fixed a possible race condition on ARM64 when multiple threads record the
first measurement with no tags, or the first overflow measurement, that could
cause the measurement to be recorded incorrectly.
(#7951)
Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
and prefixed JWTs.
(#7955)
Fixed default HTTP client log filtering when registering the OTLP log exporter
through
OpenTelemetryLoggerOptions.(#7959)
Fixed legacy self-diagnostics logging terminating the process when the log
file is truncated or the log volume runs out of space.
(#7956)
Experimental (pre-release builds only): Fixed
Logger.EmitLogignoringinstrumentation suppression, which could cause recursive exports or deadlocks.
(#7961)
Fixed delta double counters losing subsequent measurements after a non-finite
or large value and idle metric points with a
NaNvalue failing to be reclaimed.(#7963)
Improve the assignment of values to exponential histogram buckets when the
value is near a bucket boundary by using a pre-computed lookup table.
(#7911)
Fixed
LogRecords being returned to the shared pool while still queued forexport when an exporter stops enumerating a single-item or array
Batch<LogRecord>early which could cause aBatchLogRecordExportProcessoron the same provider to export missing or incorrect data.
(#7965)
Fixed a
SuppressInstrumentationScope.Enter()reference count never beingreleased when the
Activityit was entered for is not recorded, which causedall subsequent telemetry in that execution context to be suppressed.
(#7966)
Self-diagnostics log files, whether configured through
OTEL_DIAGNOSTICS.jsonor
SelfDiagnosticsOptions, are now always created as new files.(#7968)
Self-diagnostics messages written to the sinks configured by
SelfDiagnosticsOptionsare now truncated to 16,384 characters so that the... (truncated)
1.20.1-beta.1
The following changes are from the previous release 1.20.0-beta.1.
NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.20.1-beta.1
Fixed scrape responses being handed to the server in a single write, which
made the server buffer a full copy of the response for each client that did
not read it until the request completed or timed out. Responses are now
written in bounded slices so the server's back-pressure applies.
(#7957)
Fixed startup scrapes permanently omitting
target_infoand configuredresource constant labels from subsequent scrape responses.
(#7984)
Updated OpenTelemetry core component version(s) to
1.20.1.(#7990)
See CHANGELOG for details.
NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.20.1-beta.1
Fixed scrape responses being handed to the server in a single write, which
on Linux and macOS made the listener allocate and hold a full copy of the
response for each client that did not read it until the request completed or
timed out. Responses are now written in bounded slices.
(#7957)
Fixed scrape requests that announce a request body holding a thread pool
thread after their response had been sent on Linux and macOS for as long as
the client kept trickling in the body. The connection is now closed after
responding to a request with a body instead of being kept alive.
(#7962)
Fixed startup scrapes permanently omitting
target_infoand configuredresource constant labels from subsequent scrape responses.
(#7984)
Updated OpenTelemetry core component version(s) to
1.20.1.(#7990)
See CHANGELOG for details.
NuGet: OpenTelemetry.Shims.OpenTracing v1.20.1-beta.1
1.20.1.(#7990)
See CHANGELOG for details.
1.20.0
For highlights and announcements pertaining to this release see: Release Notes > 1.20.0.
The following changes are from the previous release 1.19.1.
NuGet: OpenTelemetry v1.20.0
SuppressInstrumentationScopereference counts leaking between inherited a..._Descri...
Description has been truncated