Bug Fixes
-
π₯ Various bug fixes (#873)
BREAKING CHANGE: Makes
WorkflowExecutionDescription.historyLength
a number. This was aLong
before, but shouldn't
have been. If you're currently calling:(await workflowHandle.describe()).historyLength.toNumber();
then remove the
.toNumber()
call.This PR also included:
- Make
protobufjs
a dev dependency of@temporalio/client
- Use simple version of Core's
cancelChildWorkflowExecution
command
- Make
-
π₯ Update Core from
e261
tob437
(#865 and #873)BREAKING CHANGE: This fixes a bug where values (memo, search attributes, and retry policy) were not being passed on to
the next Run during Continue-As-New. Now they are, unless you specify different values when calling
continueAsNew
(temporalio/sdk-core#376). [We believe this is unlikely to break
users codeβthe code would have to be depending on the absence of these values in Continued-As-New Runs.]This update also have various fixes and features:
- Don't dispatch eager activity if task queue is not the "current" (temporalio/sdk-core#397)
- Fix cancelling of started-but-lang-doesn't-know workflows (temporalio/sdk-core#379)
- Protect worker from more network errors (temporalio/sdk-core#396)
- Use tokio-rustls for request (temporalio/sdk-core#395)
- Fix for ephemeral test server zombie (temporalio/sdk-core#392)
- Ephemeral server lazy-downloader and runner (temporalio/sdk-core#389)
- Fix health service getter (temporalio/sdk-core#387)
- Expose HealthService (temporalio/sdk-core#386)
- Add more missing workflow options and add request_id as parameter for some calls (temporalio/sdk-core#365)
- Correct API definition link (temporalio/sdk-core#381)
- Add grpc health checking service/fns to client (temporalio/sdk-core#377)
- Respect per-call gRPC headers (temporalio/sdk-core#375)
- More client refactoring & add versioning-opt-in config flag (temporalio/sdk-core#374)
- Publicly expose the new client traits (temporalio/sdk-core#371)
- Add Test Server client & update deps (temporalio/sdk-core#370)
- Added test confirming act. w/o heartbeats times out (temporalio/sdk-core#369)
- Add Operator API machinery to client (temporalio/sdk-core#366)
-
[
client
] Only requiresignalArgs
insignalWithStart
when needed (#847)
Features
-
π₯ Improvements to
@temporalio/testing
(#865 and #873)BREAKING CHANGE: Breaking for the testing package in some of the more advanced and rarely used options:
- No longer accepting
runInNormalTime
when waiting for workflow result TestWorkflowEnvironmentOptions
is completely redone
[Given that these were rarely used and the testing package isn't meant for production use, we don't think this change warrants a major version bump.]
TestWorkflowEnvironment.create
is deprecated in favor of: - No longer accepting
-
Various minor features (#865)
- Add
Connection.healthService
and generate testservice and health in proto package - Updated ci to use sdk-ci namespace for testing with cloud.
- Use ephemeral server from Core (supports both time skipping and temporalite)
- Test server is now only downloaded on first use
- Removed some unused dependencies
- Refactored core bridge into multiple files
- Closes #834
- Closes #844
- Add
-
[
client
] Add a high-level metaClient
class (#870)We now recommend using this instead of our other clients:
import { Client } from '@temporalio/client'; const client = new Client(options); await client.workflow.start(); await client.activity.heartbeat(); await client.activity.complete();
client.workflow
is aWorkflowClient
.client.activity
is anAsyncCompletionClient
.- We will be adding
client.schedule.*
(see theScheduleClient
proposal).
-
Add
ActivityOptions.allowEagerDispatch
(default true) (#873) -
[
testing
] Usetemporal.download
for downloading test server (#864) -
Add Webpack rule to auto instrument Workflows for code coverage, add
augmentWorkerOptions()
(#858, thanks to@vkarpov15
π)
Documentation
- Improve API reference (#871)
- Publish unchanged packages (#862)
- Update
nyc-test-coverage
README (#866)