Skip to content

Releases: cadence-workflow/cadence-go-client

v1.2.8

27 Feb 14:03
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.2.7...v1.2.8-rc.1

v1.2.7

11 Dec 10:28
Compare
Choose a tag to compare

What's Changed

Changed

  • Upgraded cassandra image to 4.1.3 in docker compose files #1301

Fixed

  • Fixed history size exposure logging #1300

Full Changelog: v1.2.6...v1.2.7

v1.2.6

24 Nov 10:30
Compare
Choose a tag to compare

What's Changed

Added

  • Added a new query type __query_types #1295
  • Added calculate workflow history size and count and expose that to client #1270
  • Added honor non-determinism fail workflow policy #1287

Full Changelog: v1.1.0...v1.2.6

v1.1.0 Release

09 Nov 19:31
ae76f5f
Compare
Choose a tag to compare

What's Changed

Added

  • Added new poller thread pool usage metrics #1275 #1291
  • Added metrics tag workflowruntimelength in workflow context #1277
  • Added GetWorkflowTaskList and GetActivityTaskList APIs #1292

Changed

  • Updated idl version
  • Improved retrieval of binaryChecksum #1279

Fixed

  • Fixed error log #1284
  • Fixed in TestEnv workflow interceptor is not propagated correctly for child workflows #1289

New Contributors

Full Changelog: v1.0.2...v1.1.0

v1.0.2 release

25 Sep 13:10
bdc3c39
Compare
Choose a tag to compare

Added

  • Add a structured error for non-determinism failures

Changed

  • Do not log when automatic heart beating fails due to cancellations

Full Changelog: v1.0.1...v1.0.2

v1.0.1 release

14 Aug 10:38
Compare
Choose a tag to compare

Added

  • Emit cadence worker's hardware utilization inside worker once per host by @timl3136 in #1260

Changed

  • Updated supported Go version to 1.19
  • Log when the automatic heartbeating fails
  • Updated golang.org/x/net and github.com/prometheus/client_golang

Full Changelog: v1.0.0...v1.0.1

v1.0.0

12 Jul 22:28
a072981
Compare
Choose a tag to compare

We are v1.0!

What does this mean?!

At the moment, not much. This is largely to mirror the v1.0 release in the server.

Importantly, v1.0 does not imply any change to backwards compatibility - the current policy is still "best effort with some obvious exceptions" (like new methods on the service client interface).
Going by previous version patterns, this would have been labeled v0.20.0 as it is a relatively incremental change off of v0.19.1.

Coming soon(ish): v2

We are planning on releasing a v2 of this client! There will likely be more v1 changes first though.

v0 / v1 has been boxed in a bit by backwards compatibility requirements and a few leaky APIs (aliases, exposed thrift objects, etc). This has been making some desired changes difficult or nigh-impossible.

Because of this, v2 is intended largely as a cleanup so we can make larger internal changes without interrupting our users. We will be intentionally avoiding major semantic changes, and you will be able to and encouraged to use v1 and v2 side by side to gradually migrate. We'll be relying on this v1+v2 ability internally quite a bit, to migrate our monorepo :)
Workflow histories should remain backwards compatible, but code will require some simple and generally-obviously-correct changes, and previously-opt-in features may become opt-out or simply disappear in favor of the new behavior.

When this occurs, it will essentially signal the end of feature development on v1. We will likely make exceptions for IDL changes (largely due to the shared IDL repository, which protobuf effectively requires us to use) and easily-backport-able bugfixes, but this will end at some point.
Due to this, you will definitely be encouraged to migrate ASAP, so you can eliminate the v1 dependency.

We'll have migration details written up in detail when it's ready.

Changes since v0.19.1

  • add refresh tasks API to client by @mkolodezny in #1162
  • Exclude idls subfolder from licencegen tool by @vytautas-karpavicius in #1163
  • Upgrade x/sys and quantile to work with Go 1.18 by @Groxx in #1164
  • Stop retrying get-workflow-history with an impossibly-short timeout by @Groxx in #1171
  • Rewrite an irrational test which changes behavior based on compiler inlining by @Groxx in #1172
  • Deduplicate retry tests a bit by @Groxx in #1173
  • Prevent local-activity panics from taking down the worker process by @Groxx in #1169
  • Moving retryable-err checks to errors.As, moving some to not-retryable by @Groxx in #1167
  • Apparently copyright isn't checked by CI by @Groxx in #1175
  • Another missed license header by @Groxx in #1176
  • Add JitterStart support to client by @ZackLK in #1178
  • Simplify worker options configuration value propagation by @shijiesheng in #1179
  • Sharing one of my favorite "scopes" in intellij, and making it easier to add more by @Groxx in #1182
  • Add poller autoscaler by @shijiesheng in #1184
  • add poller autoscaling in activity and decision workers by @shijiesheng in #1186
  • Fix bug with workflow shadower: ALL is documented as an allowed Status; test and fix. by @ZackLK in #1187
  • upgrade thrift to v0.16.0 and tchannel-go to v1.32.1 by @shijiesheng in #1189
  • [poller autoscaler] fix logic to identify empty tasks by @shijiesheng in #1192
  • Maintain a stable order of children context, resolves a non-determinism around cancels by @Groxx in #1183
  • upgrade fossa cli to latest and remove unused fossa.yml by @shijiesheng in #1196
  • Retry service-busy errors after a delay by @Groxx in #1174
  • changing dynamic poller scaling strategy. by @mindaugasbarcauskas in #1197
  • Fix flaky test by @mindaugasbarcauskas in #1201
  • updating go client dependencies. by @mindaugasbarcauskas in #1200
  • version metrics by @allenchen2244 in #1199
  • Export GetRegisteredWorkflowTypes so I can use in shadowtest. by @ZackLK in #1202
  • Add GetUnhandledSignalNames by @longquanzheng in #1203
  • Adding go version check when building locally. by @mindaugasbarcauskas in #1209
  • update CI go version. by @mindaugasbarcauskas in #1210
  • ran "make fmt" by @mindaugasbarcauskas in #1206
  • Updating IDL version for go client. by @mindaugasbarcauskas in #1211
  • Adding ability to provide cancellation reason to cancelWorkflow API by @mindaugasbarcauskas in #1213
  • Expose WithCancelReason and related types publicly, as originally intended by @Groxx in #1214
  • Add missing activity logger fields for local activities by @Groxx in #1216
  • Modernize makefile like server, split tools into their own module by @Groxx in #1215
  • adding serviceBusy tag for transient-poller-failure counter metric. by @mindaugasbarcauskas in #1212
  • surface more information in ContinueAsNewError by @shijiesheng in #1218
  • Corrected error messages in getValidatedActivityOptions by @jakobht in #1224
  • Fix TestActivityWorkerStop: it times out with go 1.20 by @dkrotx in #1223
  • Fixed the spelling of replay_test file. by @agautam478 in #1226
  • Add more detail to how workflow.Now behaves by @Groxx in #1228
  • Part1: Record the data type change scenario for shadower/replayer test suite by @agautam478 in #1227
  • Document ErrResultPending's behavioral gap explicitly by @Groxx in #1229
  • Added the Activity Registration required failure scenario to replayer test suite by @agautam478 in #1231
  • Shift replayer to prefer io.Reader rather than filenames by @Groxx in #1234
  • Expose activity registry on workflow replayer by @Groxx in #1232
  • Merged the timeout logic for the tests in internal_workers_test.go by @jakobht in #1225
  • [error] surface more fields in ContinueAsNew error by @shijiesheng in #1235
  • Add and emulate the issues found in the workflows involving coroutines into the replayersuite. by @agautam478 in #1237
  • Add the change in branch number case(test) to replayersuite by @agautam478 in #1236
  • Locally-dispatched activity test flakiness hopefully resolved by @Groxx in #1240
  • Switched to revive, goimports, re-formatted everything by @Groxx in #1233
  • Add the case where changing the activities (addition/subtraction/modification in current behavior) in the switch case has no effect on replayer. by @agautam478 in #1238
  • Replaced Activity.RegisterWithOptions with replayers own acitivty register by @agautam478 in #1242
  • [activity/logging] produce a log when activities time out by @sankari165 in #1243
  • Better logging when getting some nondeterministic behaviours by @jakobht in #1245
  • make fmt fix by @Groxx in #1246
  • Test-suite bugfix: local activity errors were not encoded correctly by @Groxx in #1247
  • Extracting the replayer specific utilities into a separate file for readability. by @agautam478 in #1244
  • Adding WorkflowType to "Workflow panic" log-message by @dkrotx in #1259
  • Adding in additional header to determine a more stable isolation-group by @davidporter-id-au in #1252
  • Bump version strings for 1.0 release by @Groxx in #1261

Full Changelog: v0.19.1...v1.0

v0.19.1 release

03 Jun 05:50
Compare
Choose a tag to compare

Changed

  • Client will not retry on LimitExceededError #1170

v0.19.0 release

05 Jan 10:33
Compare
Choose a tag to compare

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 from go.uber.org/cadence/.gen/proto/api/v1 to github.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

09 Nov 01:25
Compare
Choose a tag to compare

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