Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs/release-notes/2.8.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
Durable Workflow CLI 2.8.0

## Read an update's outcome later

2.8.0 adds `dw workflow:update-outcome` for native Server 3.6.0's update
outcome reads (server#1131, durable-workflow/.github#212, cli#144). When
`dw workflow:update` returns before the update finishes, for example after its
`--wait=completed` wait runs out, you can read the outcome later by update id
instead of sending the update again.

```bash
dw workflow:update-outcome order-123 01JUPDATE00000000000000000
dw workflow:update-outcome order-123 01JUPDATE00000000000000000 --wait=completed --wait-timeout=30
```

- **One read, never a resend.** The command sends one
`GET /api/workflows/{workflow_id}/updates/{update_id}`. It never sends a
POST and never submits the update again.
- **Pending is not null.** A 202 `accepted` answer prints "Update accepted,
not finished yet" with a hint to run again with `--wait=completed`. A
completed update prints its `result_envelope`, even when it encodes null.
- **Final outcomes keep their exit codes.** A failed update exits 2 with the
Server's `failure_message`, as `workflow:update` does. A rejected update
keeps its original rejection status. An unknown or pruned update id
(404 `update_not_found`) exits 5; that does not prove the update was never
admitted.
- **`--wait`** is `accepted` (the default, answers at once) or `completed`.
**`--wait-timeout`** needs `--wait=completed` and a whole number of seconds
of at least 1. Bad values send nothing.
- **`--json`** returns the Server receipt with `namespace` added. Nothing is
printed until the receipt is checked against the requested workflow and
update ids.
- **`workflow:update`** now prints the matching `workflow:update-outcome`
command after an accepted but unfinished update, only when the Server
advertises the capability.

The command needs a Server that advertises
`capabilities.update_outcome_reads` (native 3.6.0 or later). Against any other
Server, including published PHP Server 2.x, it exits with code 8 before sending
anything, and `workflow:update` output is unchanged. The new command makes
abbreviations such as `workflow:upd` ambiguous; the exact name
`workflow:update` still resolves.

## Release builds

Every Linux job that reaches `setup-php`, in CI and in the release workflows,
now turns off APT retries first (cli#143, durable-workflow/.github#295). This
changes how release artifacts are built, not what they contain.

## Unchanged

Every other command behaves as in 2.7.0. A parity suite still compares `dw`
with the 2.x CLI on every change, offline and against published PHP Server
2.11.8 and native Servers 3.0.5 and 3.5.0. The 2.3.x PHAR line receives
security fixes only until 2027-02-28.
2 changes: 1 addition & 1 deletion rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "dw"
version = "2.7.0"
version = "2.8.0"
edition = "2021"
rust-version = "1.86"
description = "Command-line interface for Durable Workflow Server and Cloud"
Expand Down
Loading