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
9 changes: 4 additions & 5 deletions docker-compose.published.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ name: durable-workflow-server
# server's Compose file is docker-compose.php.yml; to keep running PHP, use
# that file (or pin a 2.x release of this one).
#
# Until the first final native release (3.0.0) is published, the default image
# is the current native release candidate by digest. The 3.0.0 release
# replaces it with durableworkflow/server:3.0.0. Set DW_SERVER_IMAGE to run
# any other native image, by tag or digest.
x-server-image: &server-image ${DW_SERVER_IMAGE:-ghcr.io/durable-workflow/server-native@sha256:f54e89d775dbf7c6074f37836c6bb0b25f94869d23711b0706e9547c3edecb29}
# The default image is the native 3.0.0 release. Set DW_SERVER_IMAGE to run
# any other native image, by tag or digest; pin a digest for production
# change control.
x-server-image: &server-image ${DW_SERVER_IMAGE:-durableworkflow/server:3.0.0}

services:
server:
Expand Down
34 changes: 27 additions & 7 deletions docs/rust-server-port.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
[Server #325](https://github.com/durable-workflow/server/issues/325) owns the
rewrite and its acceptance evidence. The crate in [`rust/`](../rust/README.md)
is the native server, with official Avro encoding and SQLite, PostgreSQL and
MySQL/MariaDB storage. Its release candidates are published to GHCR; the
final 3.0.0 replaces PHP as `durableworkflow/server` 3.x and `latest`
(operator decision, November 1). Release builds need no opt-in; a
development build without a release version requires
`DW_RUST_EXPERIMENTAL=1`. What remains before 3.0.0 is listed under
"Remaining for the final release" below.
MySQL/MariaDB storage. **Native 3.0.0 was released on November 2, 2026** as
`durableworkflow/server` and `ghcr.io/durable-workflow/server` 3.0.0, `3.0`,
`3` and `latest`, replacing PHP; PHP Server 2.11.8 is the final PHP release.
Release builds need no opt-in; a development build without a release
version requires `DW_RUST_EXPERIMENTAL=1`.

Read this log top to bottom: current state and next action, the surface
inventory, design decisions, then the detailed checkpoint history. Each
Expand All @@ -17,6 +16,26 @@ qualify a later tree.

## Current state

- **Released: native 3.0.0 (November 2).** Tag `native-3.0.0` on source
`741454251bba3b7667b7ada4f3b0884427b27abc` (the same source as
`3.0.0-rc.4`). Index
`sha256:ff1ea2167256c9f2a24b152e72f9a0c30e09710124c91a84442d3e9dc1b3996b`
in both registries. `3.0`, `3` and `latest` point at it.
- **Qualification:** Security verified the source, artifact, provenance and
rolling tags. Published-image parity passed on the final index. The
schedule daylight-saving acceptance (#942) passes. rc.3's performance
results (#944) and installed SDK lifecycle evidence carry over, because
rc.4's only runtime change was schedule next-fire math (#939). The
record is on #325.
- **Not in 3.0.0 (post-final work):** workflow-bound Nexus handlers (#794,
Workflow #947), task-delivery offers (#931), and signal and update
command keys (#934). Takeover of PHP databases is planned for
deprecation in 3.1.x (#930).
- Schedules follow Core 2.15.13's daylight-saving rule, not PHP 2.11.8
(see Decisions).

The history below is the state before the release.

Updated October 27, 2026.

- **Merged October 26-27, through the merge queue.**
Expand Down Expand Up @@ -97,7 +116,8 @@ Updated October 27, 2026.
through the native router, and the ones still answering
`501 rust_capability_not_implemented` must match
[`unserved-php-routes.v2.11.1.txt`](../rust/tests/fixtures/unserved-php-routes.v2.11.1.txt).
- **Remaining for the final release** (November 1):
- **Remaining for the final release** (November 1; completed November 2 with
3.0.0, above):
- **Scope (operator decision, November 1).** 3.0.0 ships without prepared
local activities, workflow-bound Nexus handlers and external payload
takeover. Native refuses each one explicitly (the local-activity routes
Expand Down
8 changes: 4 additions & 4 deletions docs/rust-server-upgrade-takeover.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ release moves `3.Y`, `3` and `latest` forward to itself; a PHP 2.x release
after it moves only `2` and `2.Y`. Release candidates (`X.Y.Z-rc.N`) move no
rolling tag. From `3.0.0-rc.3` they are published to both registries; the
first two candidates were GHCR-only and published as
`ghcr.io/durable-workflow/server-native`. The current one is `3.0.0-rc.3`
(source `04cad60ed661db2c9e961d85e7a132d82ee62e46`), index
`sha256:899b404b02f856cb582c5e77a95882a3f9928781083d1e7a3fe569f3ff978d6b`
in both registries. It
`ghcr.io/durable-workflow/server-native`. The current release is `3.0.0`
(source `741454251bba3b7667b7ada4f3b0884427b27abc`), index
`sha256:ff1ea2167256c9f2a24b152e72f9a0c30e09710124c91a84442d3e9dc1b3996b`
in both registries, also tagged `3.0`, `3` and `latest`. It
reads the same `DB_*` settings as the PHP image. A published image (a
release candidate or final release) needs no opt-in; only a development
build without a release version requires `DW_RUST_EXPERIMENTAL=1`.
Expand Down
5 changes: 2 additions & 3 deletions docs/server-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,8 @@ care around persistence, backups, and upgrades.

Image selection:

- The checked-in Compose file defaults to the current native image: the
release candidate by digest until 3.0.0 is published, then the exact
release.
- The checked-in Compose file defaults to the native 3.0.0 release,
`durableworkflow/server:3.0.0`.
- `DW_SERVER_IMAGE=ghcr.io/durable-workflow/server:<server-version>`
selects the same release line from GitHub Container Registry.
- `DW_SERVER_IMAGE=durableworkflow/server@sha256:...` pins an exact image
Expand Down
Loading