Bump Temporalio from 1.5.0 to 1.15.0 - #81
Merged
Merged
Conversation
--- updated-dependencies: - dependency-name: Temporalio dependency-version: 1.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
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 Temporalio from 1.5.0 to 1.15.0.
Release notes
Sourced from Temporalio's releases.
1.15.0
Breaking Changes
💥 Outbound Workflow Interceptor Nexus Operation Types and Methods Renamed
WorkflowOutboundInterceptortype,StartNexusOperationAsyncmethod renamed toScheduleNexusOperationAsyncStartNexusOperationInputtype renamed toScheduleNexusOperationInputHighlights
Standalone Nexus Operations (Experimental)
Added support for Standalone Nexus Operations, allowing clients to start and manage Nexus operations directly outside of a Workflow. Documentation, Samples, and instructions to request enablement in Temporal Cloud will be linked here when available.
Standalone Nexus Operations is experimental and currently only supported on pre-release versions of the dev server.
This release includes a bugfix in the Core library that changes incorrect behavior that may have unintentionally worked previously. Specifically, local activities that start running, and continue running while their associated workflow was evicted from the cache, could possibly be "re-attached" to the workflow if it was recreated before they finished. This behavior was unsound. Now, any running local activities are invalidated when a workflow is evicted. This change was really only likely to be encountered if you were running with the workflow cache disabled, which we never recommend doing.
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@a0ad876 to temporalio/sdk-rust@6a8355a
... (truncated)
1.14.1
Highlights
DNS Load Balancing Options
A new load balancing feature was added in temporalio/sdk-rust#1212 which has caused networking issues in certain networking setups. This is now disabled by default and options have been added to enable it in temporalio/sdk-dotnet#689.
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@a9481aa to temporalio/sdk-rust@a0ad876
New Contributors
Full Changelog: temporalio/sdk-dotnet@1.14.0...1.14.1
1.14.0
Highlights
💥 Record task latency even for WFT failures that were dropped
Workflow task failure latency is now recorded in the
workflow_task_execution_latencyhistogram even if the workflow task failure is not reported to the server. This brings the SDK in alignment with the Go and Java SDKs for this instrument.What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@24703da to temporalio/sdk-rust@a9481aa
static_summary,static_detailsand current_details` in the Rust sdk in Supportstatic_summary,static_detailsand current_details` in the Rust sdk temporalio/sdk-rust#1208... (truncated)
1.13.1
Known Issues
OpenTelemetry.Api security advisory (fixed in 1.14.0+)
GHSA-g94r-2vxg-569j reports a vulnerability in
OpenTelemetry.Apiversions earlier than 1.15.3. The required dependency bump introduces source-incompatible changes inTemporalio.Extensions.OpenTelemetry, so it was shipped in 1.14.0 and intentionally not backported to 1.13.1 in order to preserve source compatibility within the 1.13.x line. Customers needing the mitigation should upgrade to 1.14.0 or later.Highlights
Fix for worker shutdown ordering
There was an issue with worker shutdown when the frontend.enableCancelWorkerPollsOnShutdown dynamic config flag is enabled on server. The issue was causing shutdown to stall until the full 30s worker shutdown timeout was hit, as server was waiting for a message that the SDK was not sending. This fixes the SDK to send the proper message, allowing shutdown to occur normally.
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@24703da to temporalio/sdk-rust@5a0de4d
Full Changelog: temporalio/sdk-dotnet@1.13.0...1.13.1
1.13.0
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@c6b601d to temporalio/sdk-rust@24703da
wait_conditionin fix(sdk): implement FusedFuture forwait_conditiontemporalio/sdk-rust#1192Full Changelog: temporalio/sdk-dotnet@1.12.0...1.13.0
1.12.1
Known Issues
OpenTelemetry.Api security advisory (fixed in 1.14.0+)
GHSA-g94r-2vxg-569j reports a vulnerability in
OpenTelemetry.Apiversions earlier than 1.15.3. The required dependency bump introduces source-incompatible changes inTemporalio.Extensions.OpenTelemetry, so it was shipped in 1.14.0 and intentionally not backported to 1.12.1 in order to preserve source compatibility within the 1.12.x line. Customers needing the mitigation should upgrade to 1.14.0 or later.Highlights
Fix for worker shutdown ordering
There was an issue with worker shutdown when the frontend.enableCancelWorkerPollsOnShutdown dynamic config flag is enabled on server. The issue was causing shutdown to stall until the full 30s worker shutdown timeout was hit, as server was waiting for a message that the SDK was not sending. This fixes the SDK to send the proper message, allowing shutdown to occur normally.
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@c6b601d to temporalio/sdk-rust@7c8df5b
Full Changelog: temporalio/sdk-dotnet@1.12.0...1.12.1
1.12.0
Highlights
💥 Standalone Activities (Experimental, Pre-Release)
Activities can now be started directly from a
ITemporalClient, independent of any workflow.As part of this change, some
ISerializationContextimplementation properties have been made nullable or obsolete.See https://docs.temporal.io/standalone-activity and temporalio/sdk-dotnet#609 for details.
💥 Nexus Changes (Pre-Release)
Rename Nexus Operation Classes Inside a Workflow
In preparation for Stand Alone Nexus Operations we renamed the Nexus classes inside a workflow to help distinguish them from future client classes. All classes are now prefixed by
NexusWorkflowinstead of justNexus.See temporalio/sdk-dotnet#619 for details.
Standardize Nexus Operation Input Argument Deserialization
This release changes some of the behavior when a handler fails to deserialize the input arguments for a Nexus operation. Previously the SDK would treat any failure as always retry-able. Now the SDK will treat failures at the payload converter level as non-retryable. This aligns the .NET SDK with the other Temporal SDKs.
See temporalio/sdk-dotnet#615 for details.
What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@372b270 to temporalio/sdk-rust@c6b601d
WorkflowUpdateHandle::get_resultpoll in fix(client): retryWorkflowUpdateHandle::get_resultpoll temporalio/sdk-rust#1150... (truncated)
1.11.1
Highlights
ResourceExhaustedand other gRPC errors. See PRs Poller autoscaler: add backoff on ResourceExhausted errors temporalio/sdk-rust#1110 and Poller autoscaler: further refinement of backoff on grpc errors temporalio/sdk-rust#1111 for more details.What's Changed
SDK Core Update
Updated from temporalio/sdk-rust@372b270 to temporalio/sdk-rust@12c656f
Full Changelog: temporalio/sdk-dotnet@1.11.0...1.11.1
1.11.0
Highlights
Linux musl arm64 Support
The .NET SDK now supports running on Linux musl arm64 installations. See PR temporalio/sdk-dotnet#598 for more details.
Client Environment Configuration General Availability
The client environment configuration feature is no longer experimental and is now generally available. See PR temporalio/sdk-dotnet#605 for more details.
Deployment-Based Worker Versioning General Availability
The deployment-based worker versioning feature is no longer experimental and is now generally available. The older style worker deployment APIs have been marked as obsolete. See PR temporalio/sdk-dotnet#605 and documentation at https://docs.temporal.io/worker-deployments for more details.
What's Changed
New Contributors
Full Changelog: temporalio/sdk-dotnet@1.10.0...1.11.0
1.10.0
Highlights
Plugins
Plugins are a new way of providing easy configuration of workers and clients. See PR temporalio/sdk-dotnet#548 and the plugins guide for more details.
Windows arm64 Support
The .NET SDK now supports running on Windows arm64 machines. See PR temporalio/sdk-dotnet#541 for more details.
💥 BREAKING BEHAVIOR CHANGE - TLS is assumed if API key is set.
When
TemporalConnectionOptions.ApiKeyis set, TLS is automatically enabled. To explicitly disable TLS when an API key is provided, set theTemporalConnectionOptions.Tlsproperty to aTlsOptioninstance withDisabledset totrue. See PR temporalio/sdk-dotnet#567 for more details.💥 MINOR BREAKING CHANGE - Core bridge library rename
The core bridge library has been renamed to
temporalio_sdk_core_c_bridge.dllon Windows,libtemporalio_sdk_core_c_bridge.dylibon MacOS, andlibtemporalio_sdk_core_c_bridge.soon Linux. See PR temporalio/sdk-dotnet#570 for more details.💥 MINOR BREAKING CHANGE - ClientEnvConfig namespace change
Moved
ClientEnvConfigfromTemporalio.Client.EnvConfigtoTemporalio.Common.EnvConfig. See PR temporalio/sdk-dotnet#545 for more details.What's Changed
Temporalio.Workflows.NexusOperationOptions.OperationNameby @cretz in Remove erroneousTemporalio.Workflows.NexusOperationOptions.OperationNametemporalio/sdk-dotnet#544... (truncated)
1.9.0
Get from NuGet and read the README
Highlights
Environment Configuration Support (experimental)
Users can now use
Temporalio.Client.EnvConfig.ClientEnvConfigto load environment configuration from config files or environment variables. This is the same configuration approach that can be used across other SDKs and CLI. See https://docs.temporal.io/develop/environment-configuration for more details.Nexus Support (experimental)
The Nexus .NET SDK has been released and this release adds Temporal support for implementing Nexus services with Temporal and calling Nexus services from Temporal workflows. See the Temporal SDK Developer Guide, Nexus SDK README, the Temporal SDK README section, and the initial Nexus .NET sample.
💥 MINOR BREAKING BEHAVIOR CHANGE - Serialization Context Change in Workflows
For advanced users of custom converters/codecs that were also leveraging the recent serialization context feature, there is a slight change in how they are handled in workflows. Previously, we eagerly created and used the converter/codec for all workflow use with the singular workflow context which meant we "stacked" contexts when they were also used for activities and children and such. Now we are properly not stacking the outer workflow context when making these other calls. So technically if there was a custom converter using advanced serialization contexts that relied on this context stacking, this can be a breaking change. See the PR at temporalio/sdk-dotnet#525 for more details.
💥 MINOR BREAKING BEHAVIOR CHANGE - TLS cert override causes native certs to not be used
When a TLS server CA cert is explicitly set in TLS options to override system roots, the system roots will not be loaded. Prior to this version, system roots would still be loaded even if cert overrides were present.
Specific Changes
2025-09-18 - 45e61c8 - Activity reset (#521)
2025-09-18 - 95f840a - Fixed error message of
BinaryProtoConverter.AssertProtoPayloadnot filling a placeholder (#520)2025-09-22 - 2319df1 - Added retry policy to activity info (#511)
2025-09-22 - 8db923c - Env config (#509)
2025-09-22 - da7202a - Nexus support (#517)
2025-09-22 - e29940d - Added summary to local activity options (#524)
2025-09-25 - d4a0765 - Update version to 1.9.0 (#527)
2025-09-25 - f99bca3 - 💥 Fix how serialization context is applied in workflows [MINOR COMPAT BREAK] (#525)
2025-09-25 - fad7fb3 - Fix issue with search attribute keyword list type (#529)
1.8.0
Get from NuGet and read the README
Highlights
💥 BREAKING CHANGE - C bridge has been moved to Core SDK repository, library file names have changed
The C bridge library used to integrate .Net SDK with Core SDK has been moved to facilitate using it for SDKs in other languages. As part of the move, the bridge library, its functions and its artifacts have been given more specific names.
Previously, the C bridge library had the filename
temporal_sdk_bridge.dllon Windows,libtemporal_sdk_bridge.soon Linux, andlibtemporal_sdk_bridge.dylibon macOS.The filename has changed to
temporal_sdk_core_c_bridge.dllon Windows,libtemporal_sdk_core_c_bridge.soon Linux, andlibtemporal_sdk_core_c_bridge.dylibon macOS.If your build process depends on the exact naming of these files, it needs to be updated to use the new file names. Furthermore, if you were using the C bridge library directly, there have been further breaking changes in the library itself. See the following Core SDK PR for details: temporalio/sdk-rust#951
Task Queue Fairness Support (experimental)
This release adds support for Task Queue Fairness. Fairness is a new feature of Temporal's task queues that allows for more control over the order that tasks are dispatched from a backlog. It's intended to address common situations like multi-tenant applications and reserved capacity bands.
This is in addition to "Workflow & Activity Priorities" provided last release.
Specific Changes
2025-06-18 - 165569d - Deprecate VersioningIntent (#491)
2025-06-26 - 99847b5 - Add defaults for Poller automation (#493)
2025-06-30 - d1fedb0 - Fix issue where child workflow starts and completes in same activation (#492)
2025-07-02 - 8e94382 - Moved C Bridge from dotnet-sdk to core-sdk repo (💥 BREAKING CHANGE) (#494)
2025-07-16 - 2a7621c - Remove experimental notices from update with start calls (#497)
2025-07-17 - 5b15fb8 - Missed an UwS experimental warning (#498)
2025-08-04 - f225d76 - Remove CLI version pin for internal tests (#501)
2025-08-07 - b55175e - Made
TemporalWorker.ExecuteAsync()keep working even afterDispose()(#503)2025-08-11 - 6f27e45 - Do not require heartbeating to be done in context (#504)
2025-08-22 - deb2756 - Fairness Keys & Weights (#508)
2025-09-02 - 77f839d - Added FirstExecutionRunId to WorkflowInfo (#516)
1.7.0
Get from NuGet and read the README
Highlights
Workflow & Activity Priorities
Users can now set a priority key when scheduling a workflow, activity or child workflows. The priority key will be used to help prioritize certain tasks over others when there is a backlog. Priority is currently not supported in any OSS Temporal release, but support will be coming soon. To experiment with this feature please see the pre-release development server or if you are a Temporal Cloud customer reach out to your SA.
Worker deployment versioning preview
This release introduces a preview of new APIs that gracefully manage code changes and worker pools that support them. The goal is to better control which workers should execute new, and existing, workflows and activities tasks, based on their code and configuration.
VersioningBehavior.AutoUpgradeandVersioningBehavior.Pinnedare two Versioning Behaviors that can be specified on a workflow implementation using theVersioningBehaviorargument to theWorkflowattribute. Pinned workflows are typically short lived, and are never affected by new versions, i.e., they do not need to use the patch API for compatibility. AutoUpgrade workflows are mostly long running, but they need to use patching to safely transition to new versions. The choice of Pinned vs AutoUpgrade ultimately depends on your willingness to keep old worker fleets running vs the complexity of patching.To manage Worker Deployments please use the Temporal CLI, or
Temporalio.Client.WorkflowServiceAutomatic Poller Scaling
You can configure Workers to automatically adjust the number of concurrent polls they make for tasks! Set the
WorkflowTaskPollerBehaviorandActivityTaskPollerBehaviorarguments of the Worker options toPollerBehavior.Autoscalingto try it out. You can expect fewer unnecessary polls during low load, and increased polls during high load when they can be used to increase task throughput.Activity pause support
Activity pausing (not GA currently) will now cancel the activity cancellation token thereby interrupting activity execution similar to how activity cancel and worker shut down does. There is a new
CancellationDetailsproperty on theActivityExecutionContextthat provides the reason for cancellation token being set.Specific Changes
2025-04-28 - 98db10f - Add CODEOWNERS (#467)
2025-04-28 - d48377d - Handle errors with update result serialization (#468)
2025-04-28 - dcf7e1c - Replace BuildJet in build-binary smoke test (#469)
2025-05-08 - 1890573 - Fail the workflow task if a requested local activity is not registered (#472)
2025-05-14 - 4205a59 - Expose poller automation (#477)
2025-05-14 - cbf20f9 - Worker Deployment Versioning (#466)
2025-05-16 - 910fb1c - Improve/verbosify error messages in various ToInteropOptions methods (#481)
2025-05-19 - 8918a31 - Properly restore auto-time-skipping after disabled (#475)
2025-05-19 - b94084b - Add WorkflowInfo.WorkflowStartTime (#476)
2025-05-27 - 864e654 - Activity pause support (#482)
2025-05-29 - fa93167 - Added Category to ApplicationFailureException (#483)
2025-06-06 - 761465d - Updated sdk-core to latest (#485)
2025-06-06 - a7ca5ec - Make static summary/details lazy on workflow description (#486)
1.6.0
Get from NuGet and read the README
Highlights
New Event Loop Algorithm
A significant change was made to the event loop internals to allow for proper expectations on tasks and wait conditions. Specifically for most users, the biggest difference is that only one
WaitConditionAsyncwill be resolved at a time before the tasks continue. So now if you have multiple coroutines/tasks with:That kind of a mutex now works, whereas before it would wake up all wait conditions at once. So before you could not guarantee that the wait condition was satisfied on the line after the wait condition, but now you can.
This change can cause backwards incompatible history, so we took care to make sure past workflows still use the previous algorithm. See temporalio/sdk-dotnet#432 for more details.
💥 BREAKING CHANGE - Removed assumed use-worker-versioning in DI when build ID present
This is a breaking change only for those that used non-GA versioning and use build IDs specifically in their
AddHostedTemporalWorkercalls. We previously assumed that the simple presence of a build ID was enough to opt-in to this non-GA versioning (which is being replaced with a newer form of versioning anyways). We now no longer assume this, so for any users relying on this unstable form of versioning,UseWorkerVersioningworker option will have to be explicitly set totrueinstead of relying on it being done implicitly when build ID is present.This only affects a very small subset of users trying out a pre-release form of versioning. See temporalio/sdk-dotnet#432 for more details.
MUSL-based Builds Supported
We now publish Linux-musl builds for x64 to NuGet which means users can use Alpine-based .NET docker images.
Serialization Context Available For Converters/Codecs
Payload converters, failure converters, and payload codecs can now implement
IWithSerializationContextthat will haveWithSerializationContextcalled when needing to do context-specific conversion for workflows or activities. A common use case for this is to allow codecs to have different encryption keys per workflow ID or namespace. See temporalio/sdk-dotnet#446 for more details.Specific Changes
2025-02-28 - bbbfad1 - Add advanced signal-handling tests (#418)
2025-03-17 - 612fe2f - Use RawValue for built-in query response (#424)
2025-03-17 - 7829fd3 - Allow unaltered payload response from codec (#425)
2025-03-18 - 8631656 - add protected constructors for metric instrumentation in Temporalio.Common namespace (#431)
2025-03-18 - fc0fd7b - change readme activity examples from scheduletoclose to starttoclose (#433)
2025-03-19 - bac42d3 - Apply modern event loop algorithm with new SDK flag (#432)
2025-04-09 - 5cb605e - Add
Workflow.Unsafe.WithTracingEventListenerDisabled(#443)2025-04-09 - 9ac9d69 - Increase visibility on some client constructs and minor docs updates (#434)
2025-04-10 - 0ef89ac - Add ActivityDefinition.CreateWithoutAttribute overload (#451)
2025-04-10 - 409e53f - Remove assumed use-worker-versioning in DI when build ID present (#452)
2025-04-10 - 6c2a78f - Provide MUSL-based build (#447)
2025-04-10 - fc4ea01 - Allow absent payloads on some responses (#449)
2025-04-15 - 6dbf752 - Serialization context for converters and codecs (#446)
2025-04-16 - 6a0eb69 - Update Core (with changes needed) and update version to 1.6.0 (#453)
2025-04-17 - 464b895 - Custom histogram metric buckets (#456)
2025-04-17 - 4fed10a - Expose root execution (#454)
2025-04-17 - 5531bfe - proposed readme nits (#455)
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 this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)