diff --git a/docker-compose.published.yml b/docker-compose.published.yml index ff97200d3..127f0997c 100644 --- a/docker-compose.published.yml +++ b/docker-compose.published.yml @@ -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: diff --git a/docs/rust-server-port.md b/docs/rust-server-port.md index 27e40e8f4..fbf1a5ad9 100644 --- a/docs/rust-server-port.md +++ b/docs/rust-server-port.md @@ -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 @@ -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.** @@ -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 diff --git a/docs/rust-server-upgrade-takeover.md b/docs/rust-server-upgrade-takeover.md index d836c9e22..290c54acb 100644 --- a/docs/rust-server-upgrade-takeover.md +++ b/docs/rust-server-upgrade-takeover.md @@ -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`. diff --git a/docs/server-reference.md b/docs/server-reference.md index ae9d296fe..6b0a6ef0a 100644 --- a/docs/server-reference.md +++ b/docs/server-reference.md @@ -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:` selects the same release line from GitHub Container Registry. - `DW_SERVER_IMAGE=durableworkflow/server@sha256:...` pins an exact image