Releases: temporalio/sdk-go
v1.24.0
Highlights
Readonly Protection
Added protection in the SDK against running mutating workflow functions in a read only context.
A read only context is a query handler, update validator, side effect, or mutable side effect.
Previously, in some cases, the SDK would seem to allow it but silently generate an invalid workflow history.
This change allows developers to quickly catch their mistake and prevents generating invalid workflow histories
Experimental - Eager Workflow Dispatch
Eager Workflow Dispatch (EWD) is a mechanism that minimizes the duration from starting a workflow to the processing of the first workflow task, making Temporal more suitable for latency sensitive applications. Eager workflow Dispatch can be enabled by setting EnableEagerStart
in StartWorkflowOptions
and if the server supports it and a local worker is available the task is fed directly to the worker.
Note: Requires Temporal Server 1.20+
Specific Changes
2023-06-23 - d56a1ca - Use getNextID() when handling mutable side effects (#1146)
2023-06-23 - e720652 - Fix history paging on looking for WFT Fail (#1147)
2023-06-27 - f223247 - Update workflowcheck dependencies (#1148)
2023-06-28 - 435b192 - Document when the activity context is cancelled (#1150)
2023-06-29 - 1923300 - Start version numbers at 0 in godoc (#987)
2023-06-29 - 261f652 - Add missing schedule types (#1151)
2023-06-30 - 524b4d1 - Add more mocks (#1152)
2023-07-05 - e1d76b7 - Add docs on update (#1154)
2023-07-17 - 023af0e - Move commit info to env var to mitigate run injection vulnerability. (#1165)
2023-07-17 - 4714f38 - Prevent modifying workflow state in read only contexts (#1159)
2023-07-17 - 57d29ee - Expose update interceptor input (#1166)
2023-07-17 - 930cc2b - Reassign runningWorkflows workflow ID in test environment (#1163)
2023-07-17 - ca05fcd - Add interceptors for Await and AwaitWithTimeout (#1161)
2023-07-17 - dd24fd5 - Add support for update info (#1162)
2023-07-23 - 3ba8110 - Hardcode noop metrics handler to avoid logs (#1169)
2023-07-24 - 899f6d0 - Add IsLocalActivity to ActivityInfo (#1170)
2023-07-24 - a059d88 - Unlock before panicking (#1168)
2023-07-24 - a649812 - Make QueryWorkflowWithOptions go through interceptor (#1171)
2023-07-26 - 746bcf2 - Add eager workflow start (#1164)
2023-07-31 - 30c8ca2 - Rework cancellation counting (#1181)
2023-07-31 - 6523916 - Expand WF context locking to cover WFT responses (#1182)
2023-07-31 - 7fe0679 - Clarify ScheduleToStartTimeout in ActivityOptions (#1183)
v1.23.1
Highlights
Various bug fixes and usability improvements on the alpha feature Sync Update and Worker Versioning
Specific Changes
2023-06-01 - ddd33fc - Add Semgrep scanning (#1124)
2023-06-05 - eb68bb8 - Remove coveralls link (#1126)
2023-06-07 - 24f2c86 - Aligning OnWorkflow with OnActivity and adding unit tests to confirm behavior is coherent (#1128)
2023-06-09 - a3499c8 - Treat UpdateWorkflow as a long-poll (#1123)
2023-06-12 - 11c2cb9 - Allow ignoring function ref issues (#1135)
2023-06-12 - 5075346 - Fix stopping dev server on Windows (#1129)
2023-06-14 - 1a0d5f9 - Do not send original request msg back to server (#1139)
2023-06-14 - 2990ebf - Change message look ahead (#1136)
2023-06-15 - ae9ed7b - Fix inconsistent BuildID field name & empty TQ in intent check (#1141)
2023-06-16 - 00e8cec - Isolate Ctrl+Break to dev server instead of console (#1140)
v1.23.0
Highlights
Worker Versioning
This version adds support for our new Worker Versioning feature. Please note that this feature's API is subject to change. This feature allows you to assign build identifiers to workers, and ensure that workers operating on a task queue do not receive tasks that they will be incompatible with. You declare the relative [in]compatibility of build identifiers. We will be publishing documentation on this feature soon (and these notes will be updated with a link).
Note: worker versioning will require support from the Temporal server, to be available in release v1.21.0
Specific Changes
2023-05-18 - 269b55b - Set Update ID client side (#1106)
2023-05-18 - eb8ccc1 - Add option to ignore unknown fields when protojson unmarshalling (#1105)
2023-05-19 - a3cd0d1 - Allow update panics to bubble up (#1108)
2023-05-22 - f709720 - Make sure SDK flags are applied to the correct WFT (#1112)
2023-05-22 - febeb48 - Write sdk flags directly during replay (#1116)
2023-05-22 - ff67cdb - Ignore errors from uploading to coveralls (#1115)
2023-05-23 - 55ef398 - Switch to the official coveralls uploader (#1117)
2023-05-24 - 720dab0 - Send ProtocolMessageCommands where appropriate (#1107)
2023-05-25 - 76377c7 - Worker Versioning (#1120)
2023-05-25 - ed13374 - Update panic handling (#1119)
2023-05-25 - fc09967 - Check for child workflow already started error when setting env.testError (#1109)
v1.22.2
Specific Changes
2023-04-14 - a090256 - Remove version_set_id from CompatibleVersionSet (#1089)
2023-04-19 - 29aecb3 - Async Update Polling (#1088)
2023-04-19 - 528337f - Allow unknown fields while parsing json history (#1092)
2023-04-21 - 52be9f5 - Fix typo in NewDisconnectedContext documentation. (#1094)
2023-04-24 - a1f826a - Error on Registering Activity with Workflow Context (#1093)
2023-04-24 - ad1af5e - Exposing WorkflowExecution Started Event attributes on the Workflow Info (#1090)
2023-04-25 - 5cf9af3 - Clarify description of With function (#1096)
2023-05-11 - 95c81bd - Properly store the original failurepb on decode (#1101)
v1.21.2
v1.22.1
v1.22.0
Highlights
Schedules API release
The draft tag from the Schedules
API has been removed.
Specific Changes
2023-02-14 - 3063eee - workflowcheck: mark some fmt functions as deterministic (#1038)
2023-02-16 - 0b0234f - Update CI to test golang 1.20 (#1039)
2023-02-21 - 16d73c5 - Local activity nonfirst attempt counts for metering (#1046)
2023-02-21 - dc4f883 - Use sensible defaults for ScheduleCalendarSpec (#1047)
2023-03-01 - 07c8c7e - Track mutable side effect calls (#1051)
2023-03-07 - 3ce152b - Lookahead to infer messages on all replay paths (#1055)
2023-03-09 - e047c84 - Reduce SA bloat on GetVersion (#1056)
2023-03-13 - 3d009e0 - Add versioning API methods to client (#920)
2023-03-14 - 6b11229 - Suppress update messages during replay (#1059)
2023-03-16 - 91636e4 - Pass errors to the child workflow execution future (#1058)
2023-03-20 - 6eb3e36 - Remove experimental tag from schedules (#1064)
2023-03-22 - e62df8c - Fix compatibility misspelling (#1067)
2023-03-27 - 3b95c6e - Track the worker for each workflow context (#1070)
2023-03-28 - 3d9a1ef - Fix DevServer tests (#1072)
2023-03-28 - 88a40de - Add FrontendHostPort method to DevServer (#1071)
2023-03-29 - 5c0e091 - Message inference for more WF ctx reset paths (#1073)
2023-04-04 - 1b62656 - Remove WorkflowIDReusePolicy from schedule options (#1077)
2023-04-11 - 0005c07 - Add message IDs to update messages (#1079)
2023-04-12 - a294142 - Update WorkflowReplayer docstring instructions for obtaining workflow history JSON (#1081)
v1.21.1
Highlights
Improved worker resilience
Worker now retries for a period of time on fatal errors when polling for new tasks. This improves worker resilience when running temporal behind proxies that may modify incoming requests.
Specific Changes
2023-02-06 - ac60814 - Add testsuite.StartDevServer that starts temporal CLI (#1032)
2023-02-09 - f554827 - Retry "non retryable" error on worker long poll (#1034)
v1.21.0
Highlights
Updates to depend on the latest upstream API version
Specific Changes
2023-01-24 - 1fe6824 - Convert SDK update to protocol/messages approach (#1006)
2023-01-27 - 3b37e0f - Prevent cache eviction race (#1013)
2023-01-30 - 1b39ac9 - Deliver messages even when events are skipped (#1015)
2023-01-30 - 9a541ee - Add ContextPropagators option for replay (#1019)
2023-01-30 - 9b0c6fc - Correct updateHandle.Get when passed nil pointer (#1017)
2023-01-31 - 093eabe - On replayer use task queue from history (#1023)
2023-01-31 - 6e8a39a - Fix headings on activity docs (#1022)
2023-02-01 - 18824b6 - Protect against nil defref in update resp handling (#1025)
2023-02-01 - c423fc8 - Expose session state (#1024)
2023-02-01 - f037c9d - Workaround for updates delivered in first WFT (#1026)
2023-02-02 - a9a4baa - Update to api v1.16.0 (#1028)
2023-02-02 - c6405d6 - Handle CanceledAfterStarted in CanceledEvent (#1027)
v1.20.0
Highlights
Workflow Replayer
Many improvements to the workflow replayer to help catch more non nondeterminate workflow changes when tested with the replayer.
Specific Changes
2022-12-08 - 8e0a972 - Add EnableLoggingInReplay flag to WorkflowReplayerOptions for propagation (#979)
2023-01-03 - 06e474c - Fix schedule docs (#992)
2023-01-04 - 50f633a - Client APIs for workflow update (#989)
2023-01-04 - 5fffe62 - Add GetUnhandledSignalNames (#993)
2023-01-04 - 6f4d14f - Fix history replayer (#990)
2023-01-05 - 0d7304b - Add option to overide replayer execution info (#998)
2023-01-05 - f965f94 - Fix panic on starting child workflows with duplicate IDs (#999)
2023-01-09 - 3dc5e1e - Rewrite service proxy and interceptor to use new api-go code. (#974)
2023-01-09 - 64d80f8 - contrib/tally: improve godoc (#985)
2023-01-11 - a080d2c - updated installation instructions for determinism checker to include latest flag. (#1001)
2023-01-11 - a1154f3 - Datadog tracing implementation (#921)
2023-01-11 - b575b7c - Rename sdk-features to features (#1002)
2023-01-16 - 002db6e - Some documentation fixes (#1004)