Releases: cadence-workflow/cadence-go-client
v0.19.0 release
Added
- Added JWT Authorization Provider. This change includes a dependency that uses v2+ go modules. They no longer match import paths, meaning that we have to drop support for dep & glide in order to use this. #1116
Changed
- Generated proto type were moved out to cadence-idl repository. This is BREAKING if you were using
compatibility
package. In that case you will need to update import path fromgo.uber.org/cadence/.gen/proto/api/v1
togithub.com/uber/cadence-idl/go/proto/api/v1
#1138
Documentation
- Documentation improvements for
client.SignalWorkflow
#1151
Retract v0.18.4 and publish v0.18.5
Unfortunately v0.18.4 found issues after further tests, so that version is now retracted.
Go modules users should skip over v0.18.4 automatically.
This version is broadly the same, so those release notes are repeated below, and these commits have been changed:
Added: e9e7447 Formatting, scoping test logs to individual tests (#1142)
Reverted: 0fb34ee Bi-directional Proto<->Thrift converter (#1130)
This release is primarily bugfixes and minor additions, with one possibly-significant exception:
#1138 and #1144 fix a bug which results in changed semantics, so workflows which had been relying on the buggy behavior may fail to resume. We expect that workflows encountering this bug will be rare (it took over two years to be noticed!), but it will of course depend on your exact workflow code.
See workflow.Bugports
for detailed information, including both a workaround (to mimic the old behavior's semantics, if your workflow relies on it) and a temporary compatibility flag which can be applied selectively.
Since this increases the internal complexity, this (and future) "bugfix backports" will likely be removed relatively quickly, e.g. along with the next v0.N+1
release (v0.19.0
in this case, or possibly later). Please prioritize migrating if you encounter this!
Bugfixes and improvements:
f90b46c + 4d64c01 + 9871428 Fix a long-standing bug where canceled workflow contexts would still start child workflows. (#1138, #1144)
1d7aa64 Improved canceled-context docs (#1134)
b886df3 Added cadence.IsWorkflowError(err)
for easier error handling when getting workflow results (#1145)
7044e1d Better locking in workflow.Context to prevent races (#1141) (core issue remains, but this prevents many in practice)
bfbc369 More-unique worker IDs to prevent UI collisions (#1135)
75506d3 Fix a child-workflow panic after reset (#1118)
Internals:
e9e7447 Formatting, scoping test logs to individual tests (#1142)
7de3d62 Test fix (#1140)
0fb34ee Bi-directional Proto<->Thrift converter (#1130) reverted, caused panics
Retracted, do not use: v0.18.4 release
This release is primarily bugfixes and minor additions, with one possibly-significant exception:
#1138 and #1144 fix a bug which results in changed semantics, so workflows which had been relying on the buggy behavior may fail to resume. We expect that workflows encountering this bug will be rare (it took over two years to be noticed!), but it will of course depend on your exact workflow code.
See workflow.Bugports
for detailed information, including both a workaround (to mimic the old behavior's semantics, if your workflow relies on it) and a temporary compatibility flag which can be applied selectively.
Since this increases the internal complexity, this (and future) "bugfix backports" will likely be removed relatively quickly, e.g. along with the next v0.N+1
release (v0.19.0
in this case, or possibly later). Please prioritize migrating if you encounter this!
Bugfixes and improvements:
f90b46c + 4d64c01 + 9871428 Fix a long-standing bug where canceled workflow contexts would still start child workflows. (#1138, #1144)
1d7aa64 Improved canceled-context docs (#1134)
b886df3 Added cadence.IsWorkflowError(err)
for easier error handling when getting workflow results (#1145)
7044e1d Better locking in workflow.Context to prevent races (#1141) (core issue remains, but this prevents many in practice)
bfbc369 More-unique worker IDs to prevent UI collisions (#1135)
75506d3 Fix a child-workflow panic after reset (#1118)
Internals:
7de3d62 Test fix (#1140)
0fb34ee Bi-directional Proto<->Thrift converter (#1130)
v0.18.3 release
This release is mostly a number of bugfixes and documentation improvements.
Of particular note:
The Yarpc upgrade should be safe for basically everyone, and it removes the need to pin github.com/apache/thrift
to an old version - the required old version is now correctly inherited from Yarpc. More details can be seen in Yarpc's PR: yarpc/yarpc-go#2075
This partially corrects a number of version-related issues, e.g. #523 , #812 , #1107 , and part of #1129 . Since Go modules cannot prevent an upgrade, they cannot be stopped entirely, but it should prevent them from occurring for users who do not already depend on a newer thrift.
If you encounter test failures due to logic in defer
running where it did not previously: your tests likely depended on the bug fixed in #1117 . The behavior now matches production more closely, so please update your tests.
And last but not least: Selector and Channel docs are now significantly more detailed. Please consider reading them!
Bugfixes and improvements:
222e0cb Add DecisionTaskStartedEventID to workflowInfo (#1127)
982628d Improve check for invalid pollForDecisionTaskResponse (#1122)
332c2b4 Fix client side race condition (#1124)
b2db20e Close the test dispatcher when completing (#1117)
167c643 Use the same timer duration validation with server (#1121)
b32ef3e Minor cleanup (#1106)
Documentation:
2e7438c Enhancing docs for selector and channel, from feedback and careful testing (#1137)
8c34519 Filling out Selector docs, and some adjacent ones I noticed (#1131)
2017e60 Add documentation for Selector (#1115)
v0.18.2 Release
New Features
- gRPC compatibility layer
d432c1f Thrift2Grpc compatibility layer (#1105)
eb5bff7 Compatibility layer fix (#1120) - Feature flags
61495d9 Support feature flags in client (#1103) - IsCron support
97f887f Update client idls to support IsCron (#1095)
Bug fixes & improvements
ed86b8a Clear workflow state when not cached and not complete (#1111)
16d20b1 Truncate history for query based on nextEventID (#1096)
94b0e07 Ignore workflowPanicError in query task and add warn logs (#1094)
2b88fb1 Relax nondeterministc check (#1093)
Other
88d9c90 Increment library version to 0.18 (#1108)
ca6e026 Decouple Client from worker part of SDK (#1100)
037a846 Update yarpc to the latest version (#1091)
v0.17.0 Release
Breaking changes
WorflowExecutionAlreadyCompletedError
EntityNotExistError splits into EntityNotExistError and WorflowExecutionAlreadyCompletedError in SignalWorkflowExecution, TerminateWorkflowExecute and CancelWorkflowExecution APIs.
EntityNotExistError will be returned if the workflow is not in the history. This could happen if the workflow never starts or the workflow completes and passes the retention days.
WorflowExecutionAlreadyCompletedError will be returned if the workflow is in the history and is completed.
- 65903f7 Add workflow already completed error to client (#1081)
- d9fa282 Handle workflow already completed in heartbeat (#1086)
New features
Auto heartbeat
- 5282e89 Activity Registration Option to automatically record activity heartbeats (#1053)
- 9486c19 Enable auto-heartbeat for replayWorkflowActivity (#1088)
Traffic shadowing worker
- ae9b964 Visibility query builder for workflow shadower (#1055)
- 7829ee0 Workflow shadower (#1058)
- a7ab9d6 Separate test for workflow replayer (#1061)
- 78399b4 Workflow shadower activity implementation (#1062)
- 529722b Update IDL for workflow shadower (#1063)
- d39d9ab Implement shadower worker (#1064)
- fff7f18 Add wait period between scan iterations (#1065)
- 9daccb2 Propagate shadow worker start error (#1068)
- 1bf0fd7 Set default shadow workflow status to OPEN (#1070)
- dd3ec45 Improve workflow replayer (#1082)
- c903538 Make shadowOptions optional in workerOptions (#1087)
Workflow delay start
Misc improvements & bug fixes
- 00508cd Ensure min number of scan workflow result for shadowing (#1084)
- 57463a9 Fix nil user context for activity (#1080)
- b1375e6 Fix logging and metric tags used by shadow worker (#1076)
- fcc703e Update client repo idls commit hash (#1073)
- 7f92111 Minor cleanup of a test file (#1071)
- f929adc Fix the problem of ignoring the detail parameter in TerminateWorkflow function (#1066)
- 7e65cc2 Minor test enhancement for local activity retries (#1069)
- 42f6cac Pin versions with go.mod, similar to server (#1060)
- 3008b97 Update LICENSE for 2021 (#1059)
v0.16.0 Release
Misc improvements & bug fixes
- Add Reset option to skip signal reapply (#1032)
- Fix panic in defer after cache eviction. (#1048)
- Testsuite: Support interceptors in child workflows mocks (#1039)
- Make logger of test workflow environment changeable (#1036)
- Relocate workflow and activity registration functions to separate interfaces (#1034)
- Add missing workflowtype and activitytype metric tags (#1049)
- Fix registry already registered check (#1054)
v0.15.0 Release
v0.14.1 Release
v0.14.0 Release
Bug Fixes
- d0966cf Calculate SchdeuleToCloseDeadline from current attempt instead of first attempt (#1022)
- 46e2e86 Fix mock error in OnUpsertSearchAttributes (#1017)
- 15ec566 unmask deserialization error in getNextPage history (#1019)
- 73287b6 Fix decode issue for local activities returnin nil result (#943) (#1011)
- ba95013 Update license headers
- f3ee023 Increase timeout values to prevent test flakiness (#165)
- a94ee70 Call cancel on context to prevent memory leak (#156)
- 7254208 Cancel context to free resources (#147)
- 1485006 Add tests for activity struct arg (#134)
- 8b4cd48 Update comment for GetWorkflowResult (#1009)
- 84482ec Move ErrorDetailsValues to error.go (#1008)
- 4abefdd Update docs link for go client (#1003)
- efd4582 Fixed Windows compilation failure (#998)