Skip to content

Releases: temporalio/sdk-go

v1.24.0

01 Aug 18:37
ffefacb
Compare
Choose a tag to compare

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

16 Jun 16:16
4c59685
Compare
Choose a tag to compare

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

26 May 00:00
4302c34
Compare
Choose a tag to compare

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

12 May 07:59
e75d157
Compare
Choose a tag to compare

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

17 Apr 21:16
Compare
Choose a tag to compare

Specific Changes

2023-04-17 - 787cd80 - Track the worker for each workflow context (#1070)

v1.22.1

13 Apr 15:35
eaa3802
Compare
Choose a tag to compare

Specific Changes

2023-04-12 - 6da1899 - Prevent inferring messages twice (#1083)

v1.22.0

12 Apr 21:59
09072e3
Compare
Choose a tag to compare

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

10 Feb 21:59
4b927f7
Compare
Choose a tag to compare

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

03 Feb 19:57
bf28aa5
Compare
Choose a tag to compare

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

16 Jan 17:52
92138dd
Compare
Choose a tag to compare

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)