Skip to content

Commit eb6782c

Browse files
authored
docs: Update CHANGELOG for v1.4 (#892)
1 parent 71d10a8 commit eb6782c

File tree

6 files changed

+77
-12
lines changed

6 files changed

+77
-12
lines changed

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,65 @@ All notable changes to this project will be documented in this file.
44

55
Breaking changes marked with a :boom:
66

7+
## [1.4.0] - 2022-09-28
8+
9+
### Features
10+
11+
- :boom: Make client gRPC retry more configurable ([#879](https://github.com/temporalio/sdk-typescript/pull/879))
12+
13+
BREAKING CHANGE: [`GrpcRetryOptions.retryableDecider`](https://typescript.temporal.io/api/interfaces/client.grpcretryoptions/#retryabledecider) now gets the `attempt` number as the first argument. This is an advanced/rare option, and the change should be caught at compile time.
14+
15+
Also adds [`BackoffOptions`](https://typescript.temporal.io/api/interfaces/client.backoffoptions/) and [`defaultGrpcRetryOptions`](https://typescript.temporal.io/api/namespaces/client/#defaultgrpcretryoptions).
16+
17+
NOTE: This feature is experimental and its API may change.
18+
19+
- [`client`] Delete search attributes with empty array values in describe() response ([#878](https://github.com/temporalio/sdk-typescript/pull/878))
20+
21+
:warning: This fixes a bug where empty/deleted Custom Search Attributes were returned as `[]` from [`workflowHandle.describe()`](https://typescript.temporal.io/api/interfaces/client.workflowhandle/#describe). Such attribute properties will no longer be present in the [`WorkflowExecutionDescription.searchAttributes`](https://typescript.temporal.io/api/interfaces/client.WorkflowExecutionDescription#searchattributes) object. Note that this behavior is consistent with what you'll see if using a pre-1.4 version of the SDK with Server version 1.18.
22+
23+
- Add support for custom failure converters ([#887](https://github.com/temporalio/sdk-typescript/pull/887))
24+
25+
Adds [`DataConverter.failureConverterPath`](https://typescript.temporal.io/api/interfaces/worker.dataconverter/#failureconverterpath) and [`FailureConverter`](https://typescript.temporal.io/api/interfaces/common.FailureConverter), which converts from proto Failure instances to JS Errors and back.
26+
27+
We recommended going with the default (i.e. not using the `failureConverterPath` option) in order to maintain cross-language Failure serialization compatibility.
28+
29+
NOTE: This feature is experimental and its API may change.
30+
31+
- [`workflow`] Add [`workflowInfo().unsafe.now()`](https://typescript.temporal.io/api/interfaces/workflow.UnsafeWorkflowInfo/#now) ([#882](https://github.com/temporalio/sdk-typescript/pull/882))
32+
33+
It returns the current system time in milliseconds. The safe version of time is `new Date()` and `Date.now()`, which are set on the first invocation of a Workflow Task and stay constant for the duration of the Task and during replay.
34+
35+
- Upgrade core, add support for OTEL metric temporality ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
36+
37+
- Upgraded otel and other deps ([temporalio/sdk-core#402](https://github.com/temporalio/sdk-core/pull/402))
38+
- Fix incorrect string names for polling methods ([temporalio/sdk-core#401](https://github.com/temporalio/sdk-core/pull/401))
39+
40+
### Miscellaneous Tasks
41+
42+
- Remove `internal-*` packages ([#881](https://github.com/temporalio/sdk-typescript/pull/881))
43+
44+
:warning: Any imports from `@temporalio/internal-*` need to be updated. As noted in their named and READMEs, they're not meant to be used to directly, so we don't imagine this is a common case. However, if you do find instances, they should be changed to importing from:
45+
46+
```
47+
@temporalio/internal-non-workflow-common ➡️ @temporalio/common/lib/internal-non-workflow
48+
@temporalio/internal-workflow-common ➡️ @temporalio/common
49+
```
50+
51+
- [`common`] Deprecate internal functions that should have never been exported ([#893](https://github.com/temporalio/sdk-typescript/pull/889))
52+
53+
Some time-related and binary conversion internal helper functions were exported from `@temporalio/common`. They are now deprecated and hidden from the API reference, as they're meant for internal use only.
54+
55+
- [`workflow`] Export `LoggerSinks` from `@temporalio/workflow` ([#889](https://github.com/temporalio/sdk-typescript/pull/889))
56+
- [`client`] Add [max retry interval](https://typescript.temporal.io/api/interfaces/client.backoffoptions/#maxintervalms) for client ([#883](https://github.com/temporalio/sdk-typescript/pull/883))
57+
- Label grpc-retry API as experimental ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
58+
- Make the failure-converter code symmetric ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
59+
60+
### Bug Fixes
61+
62+
- Fix double import of long in generated proto TS files ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
63+
- Fix bundler with default workflow interceptors ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
64+
- Limit eager activity requests to 3 ([#891](https://github.com/temporalio/sdk-typescript/pull/891))
65+
766
## [1.3.0] - 2022-09-20
867

968
### Bug Fixes

packages/common/src/converter/data-converter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ export interface DataConverter {
3838
* Path of a file that has a `failureConverter` named export.
3939
* `failureConverter` should be an object that implements {@link FailureConverter}.
4040
* If no path is provided, {@link defaultFailureConverter} is used.
41+
*
42+
* @experimental
4143
*/
4244
failureConverterPath?: string;
4345

packages/common/src/converter/failure-converter.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ export function cutoffStackTrace(stack?: string): string {
5353
*
5454
* It is recommended to use the {@link DefaultFailureConverter} and not attempt to customize the default implementation
5555
* in order to maintain cross language failure serialization compatibility.
56+
*
57+
* @experimental
5658
*/
5759
export interface FailureConverter {
5860
/**
@@ -94,6 +96,8 @@ export interface DefaultFailureConverterOptions {
9496
* By default, it will leave error messages and stack traces as plain text. In order to encrypt those, set
9597
* `encodeCommonAttributes` to `true` in the constructor options and make sure to use a {@link PayloadCodec} that can
9698
* encrypt / decrypt payloads in your Worker and Client options.
99+
*
100+
* @experimental
97101
*/
98102
export class DefaultFailureConverter implements FailureConverter {
99103
public readonly options: DefaultFailureConverterOptions;

packages/core-bridge/index.d.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,12 @@ export interface PrometheusMetricsExporter {
110110

111111
/**
112112
* Metrics exporters supported by Core
113+
*
114+
* `temporality` is the type of aggregation temporality for metric export. Applies to both Prometheus and OpenTelemetry exporters.
115+
*
116+
* See the [OpenTelemetry specification](https://github.com/open-telemetry/opentelemetry-specification/blob/ce50e4634efcba8da445cc23523243cb893905cb/specification/metrics/datamodel.md#temporality) for more information.
113117
*/
114118
export type MetricsExporter = {
115-
/**
116-
* Type of aggregation temporality for metric export.
117-
*
118-
* See the [OpenTelemetry specification](https://github.com/open-telemetry/opentelemetry-specification/blob/ce50e4634efcba8da445cc23523243cb893905cb/specification/metrics/datamodel.md#temporality) for more information.
119-
*/
120119
temporality?: 'cumulative' | 'delta';
121120
} & (PrometheusMetricsExporter | OtelCollectorExporter);
122121

packages/workflow/src/index.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export {
5050
ActivityCancellationType,
5151
ActivityFailure,
5252
ActivityFunction,
53-
ActivityInterface, // eslint-disable-line deprecation/deprecation
53+
ActivityInterface,
5454
ActivityOptions,
5555
ApplicationFailure,
5656
CancelledFailure,
@@ -77,14 +77,15 @@ export {
7777
ChildWorkflowOptions,
7878
ContinueAsNew,
7979
ContinueAsNewOptions,
80+
EnhancedStackTrace,
81+
FileLocation,
82+
FileSlice,
8083
ParentClosePolicy,
8184
ParentWorkflowInfo,
82-
WorkflowInfo,
83-
FileSlice,
84-
FileLocation,
85-
StackTrace,
86-
EnhancedStackTrace,
8785
SDKInfo,
86+
StackTrace,
87+
UnsafeWorkflowInfo,
88+
WorkflowInfo,
8889
} from './interfaces';
8990
export { LoggerSinks, Sink, SinkCall, SinkFunction, Sinks } from './sinks';
9091
export { Trigger } from './trigger';

packages/workflow/src/interfaces.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ export interface UnsafeWorkflowInfo {
140140
* Current system time in milliseconds
141141
*
142142
* The safe version of time is `new Date()` and `Date.now()`, which are set on the first invocation of a Workflow
143-
* Task.
143+
* Task and stay constant for the duration of the Task and during replay.
144144
*/
145145
now(): number;
146146

0 commit comments

Comments
 (0)