chore(deps): Update module go.temporal.io/sdk to v1.49.0 - #227
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
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.
This PR contains the following updates:
v1.48.0→v1.49.0Release Notes
temporalio/sdk-go (go.temporal.io/sdk)
v1.49.0Compare Source
Highlights
Standalone Activities are now GA
With the following updates, Standalone Activities are now generally available (GA)!
client.StartActivityOptions.Detailsoption toStaticDetails,and
client.ActivityExecutionDescription.GetDetailstoGetStaticDetails.ExecutionTimeandTotalHeartbeatCount.GetActivityHandleOptions.RunIDmay be empty to target the latest run, and describeTerminateActivityOptions.Reasonas a termination reason.client.DescribeActivityOptions:IncludeInput,IncludeOutcome,IncludeHeartbeatDetailsandIncludeLastFailure.converter.ActivitySerializationContextwhen encodingand decoding activity payloads:
ExecuteActivity(input and static summary/details),ActivityHandle.Describe(heartbeat details, last failure, and static summary/details), andActivityHandle.Get(result and failure).request ID, preventing duplicate Nexus links when an idempotent start resolves to the original run.
client.ActivityHandlenow supports operator commands for standalone activities:Pause,Unpause,UpdateOptionsandRestoreOriginalOptions. Operator commands remain experimental.Local Activity memory savings
Local activity scheduling no longer uses a fixed 100,000-entry task queue. The queue now grows
with demand, avoiding both the up-front allocation and a possible worker deadlock when the queue
and all local activity execution slots were full.
Other Notable Changes
Added
a RoadRunner binary), detected hosting environments (Docker, Kubernetes, and common cloud
platforms), and the operating system and architecture. This is sent
once per worker with the first heartbeat accepted by the server and can be turned off with
client.Options.DisableWorkerEnvironmentInfo.converter.NexusSerializationContextsupport for Nexus callers and handlers. Callers useit for inputs, results, and failures; handlers use it for inputs, synchronous results, and
failures. Asynchronous handler results and detached standalone handles are not yet supported.
Standalone
USE_EXISTINGhandles use their start request's context.temporal.NewPayloadValidationErrorto create non-retryable application errors withoptional structured details for payload validation failures. Passing
nilomits details.temporalnexus.NexusClientfor startingworkflow-, activity-, and workflow-update-backed Nexus operations.
when the namespace supports it. Paginated workflow task completions require Temporal Server 1.32.0
or later.
temporal_activity_execution_failedandtemporal_local_activity_execution_failedworkermetrics now carry a
failure_reasonattribute. Each is now split into one time series perreason, which may affect existing dashboards.
💥 Breaking Changes
requested via
client.DescribeActivityOptions:GetHeartbeatDetails(IncludeHeartbeatDetails)and
GetLastFailure(IncludeLastFailure).converter.StorageDriverSelector.SelectDrivernow receives aconverter.StorageDriverSelectContextinstead of aconverter.StorageDriverStoreContext.Update the parameter type; the new type carries the same
ContextandTargetfields.ActivitySerializationContext(
IsLocal=true) instead of the workflow serialization context. Users of a context-awareDataConverterorPayloadCodecwhose encoding depends on the serialization context (for examplecontext-derived encryption keys or AAD) may fail to decode local activity results recorded in
histories written by earlier SDK versions, both on replay and when continuing an open workflow.
workflow.WorkflowRandomStream'sUint64now derives its value by callingReadinternally instead of the underlying generator's
Uint64method directly, givingRead/Uint64interleaving on the same stream a stable, well-defined byte ordering (previously undefined per the
standard library
ChaCha8.Readdoc). This only changes output for aUint64call that immediatelyfollows a
Readcall whose length is not a multiple of 8 bytes on the same stream; pureUint64streams and 8-byte-aligned interleaving are unaffected. Open workflows created on SDK v1.48.0+ that
hit the affected pattern may compute a different value, and therefore may make a different decision,
on replay after upgrading.
worker-configured
DataConverterandFailureConverterinstead of the converter already carryingthe current workflow context. A context-aware converter that composed contexts (deriving its state
from both the workflow and the activity context) now sees only the activity or child workflow
context, and one whose
WithSerializationContextreturned a converter that is no longercontext-aware now receives the activity or child workflow context it previously never saw.
Fixed
normal polls to use spare slots once sticky reaches its autoscaling target.
PayloadDownloadDurationandPayloadUploadDurationfields on the workflow task duration lognow report the wall-clock time external storage was in flight. Previously each batch's duration was
summed, over-reporting the time whenever storage operations ran concurrently.
temporal.IsWorkflowExecutionAlreadyStartedErrornow detects wrappedserviceerror.WorkflowExecutionAlreadyStartederrors.RespondQueryTaskCompletedinstead ofRespondWorkflowTaskFailed, allowing query callers to receive the failure instead of timing out.ActivitySerializationContext(
IsLocal=true) on both ends. Previously the result was encoded with the plain worker data converterbut decoded through the workflow serialization context, so a context-aware
DataConverterorPayloadCodecsaw mismatched contexts for local activity results.Currently no behavior is changed by default, a future PR will flip this flag on by
default.
DefaultFailureConverter.FailureToErrornow correctly decodesLastHeartbeatDetailsfor areset-workflow failure. Previously the raw payload proto was treated as a single detail value,
so calling
Details()on the resultingApplicationErrorreturnedErrTooManyArginstead ofdecoding it.
workflow functions or activity functions without an alias.
external storage has had a chance to offload them, matching how update and activity
results of the same size already behaved. A query result large enough to be offloaded
to
client.Options.ExternalStorageis now stored instead of failing locally withTMPRL1103. As a consequence, aStorageDriverfailure while storing an oversizedquery result now fails the workflow task instead of returning a failed query result.
What's Changed
ActivitySerializationContextfor standalone activities by @GregoryTravis in #2680New Contributors
Full Changelog: temporalio/sdk-go@v1.48.0...v1.49.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.