From 1e536e6afa3bd6eaa867101d98196b6e74d14616 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Tue, 18 Aug 2026 20:11:44 +0100 Subject: [PATCH 1/4] release notes for 2.0.0-M4 --- .github/workflows/publish-2.0-docs.yml | 12 ++++++------ docs/src/main/paradox/release-notes/releases-2.0.md | 12 ++++++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-2.0-docs.yml b/.github/workflows/publish-2.0-docs.yml index 0c886fb4519..5e298595340 100644 --- a/.github/workflows/publish-2.0-docs.yml +++ b/.github/workflows/publish-2.0-docs.yml @@ -60,20 +60,20 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} run: |- - sbt -Dpekko.genjavadoc.enabled=true "set ThisBuild / version := \"2.0.0-M3\"; docs/paradox; unidoc" + sbt -Dpekko.genjavadoc.enabled=true "set ThisBuild / version := \"2.0.0-M4\"; docs/paradox; unidoc" # Create directory structure upfront since rsync does not create intermediate directories otherwise - name: Create directory structure run: |- - mkdir -p target/nightly-docs/docs/pekko/2.0.0-M3/ + mkdir -p target/nightly-docs/docs/pekko/2.0.0-M4/ mkdir -p target/nightly-docs/docs/pekko/2.0/ - cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko/2.0.0-M3/docs + cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko/2.0.0-M4/docs cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko/2.0/docs rm -r docs/target/paradox/site/main/ - cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko/2.0.0-M3/api + cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko/2.0.0-M4/api cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko/2.0/api rm -r target/scala-2.13/unidoc - cp -r target/javaunidoc target/nightly-docs/docs/pekko/2.0.0-M3/japi + cp -r target/javaunidoc target/nightly-docs/docs/pekko/2.0.0-M4/japi cp -r target/javaunidoc target/nightly-docs/docs/pekko/2.0/japi rm -r target/javaunidoc @@ -82,7 +82,7 @@ jobs: with: upload: true switches: --archive --compress --update --delete --progress --relative - local_path: target/nightly-docs/./docs/pekko/2.0.0-M3 # The intermediate dot is to show `--relative` which paths to operate on + local_path: target/nightly-docs/./docs/pekko/2.0.0-M4 # The intermediate dot is to show `--relative` which paths to operate on remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} diff --git a/docs/src/main/paradox/release-notes/releases-2.0.md b/docs/src/main/paradox/release-notes/releases-2.0.md index 2b52c42a297..1c5a939db6a 100644 --- a/docs/src/main/paradox/release-notes/releases-2.0.md +++ b/docs/src/main/paradox/release-notes/releases-2.0.md @@ -2,6 +2,18 @@ Apache Pekko 2.0.x releases support Java 17 and above. +## 2.0.0-M4 + +This is milestone release and is aimed at testing this new major version +by early adopters. This is experimental. This release should not be used in production. + +See the [GitHub Milestone for 2.0.0-M4](https://github.com/apache/pekko/milestone/31?closed=1) for a fuller list of changes. + +### Main changes + +* Added many Akka changes that have recently become Apache Licensed (up to Akka 2.8.4). +* Some more deprecated code has been removed but the changes are significantly smaller in this area than in 2.0.0-M1. + ## 2.0.0-M3 This is milestone release and is aimed at testing this new major version From 57f77871997fc60c352a987a524548e6c21a8e3d Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 21 Aug 2026 21:33:09 +0100 Subject: [PATCH 2/4] Update release notes for version 2.0 --- docs/src/main/paradox/release-notes/releases-2.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/main/paradox/release-notes/releases-2.0.md b/docs/src/main/paradox/release-notes/releases-2.0.md index 1c5a939db6a..d80af626b88 100644 --- a/docs/src/main/paradox/release-notes/releases-2.0.md +++ b/docs/src/main/paradox/release-notes/releases-2.0.md @@ -13,6 +13,7 @@ See the [GitHub Milestone for 2.0.0-M4](https://github.com/apache/pekko/mileston * Added many Akka changes that have recently become Apache Licensed (up to Akka 2.8.4). * Some more deprecated code has been removed but the changes are significantly smaller in this area than in 2.0.0-M1. +* Switch to PEKK as the default magic in pekko-remote Artery comms ([PR3245](https://github.com/apache/pekko/pull/3425)) ## 2.0.0-M3 From a3641afea5fbbb9b9e30d591d5e3daf247c92bb4 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 21 Aug 2026 21:38:14 +0100 Subject: [PATCH 3/4] Revise migration guide for Pekko 2.x breaking changes Updated migration guide for Pekko 2.x to reflect additional breaking changes and adjustments in the Scala and Java APIs. --- .../paradox/migration/migration-guide-1.x-2.x.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md index 2cbb360a147..2876ad899bb 100644 --- a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md +++ b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md @@ -29,22 +29,19 @@ Java API users may find that they have more deprecations to deal with because th were a few mistakes in the Java API where Scala classes leaked into some of the Java API methods. ## Additional Breaking Changes in Pekko 2.x - -An example is in the Scala DSL for Flow and Source, the `watchTermination` function call no longer needs an empty param +* In the Scala DSL for Flow and Source, the `watchTermination` function call no longer needs an empty param list before a second param list. Instead of `watchTermination(){ ... }`, you now must use `watchTermination{ ... }`. ([PR2378](https://github.com/apache/pekko/pull/2378)) - -In the Java API, `FSMTransitionHandlerBuilder.build` and `FSMTransitionHandlerBuilder.state` now use +* In the Java API, `FSMTransitionHandlerBuilder.build` and `FSMTransitionHandlerBuilder.state` now use `pekko.japi.Pair` instead of `scala.Tuple2`. Java users need to update their code to use `Pair` instead of `Tuple2`. ([PR3378](https://github.com/apache/pekko/pull/3378)) - -The Java DSL `SourceWithContext` graph shape now uses `pekko.japi.Pair` instead of `scala.Tuple2`. +* The Java DSL `SourceWithContext` graph shape now uses `pekko.japi.Pair` instead of `scala.Tuple2`. Java code that passes a `SourceWithContext` directly to `GraphDSL` must use `Pair`-typed stages. Code that converts it with `asSource()` already uses `Pair` and requires no changes. ([PR3388](https://github.com/apache/pekko/pull/3388)) - -`ReceiveTimeout` changed from a `case object` singleton to a `final case class` that carries the configured +* `ReceiveTimeout` changed from a `case object` singleton to a `final case class` that carries the configured timeout duration. Scala pattern matches must use a type pattern (`case timeout: ReceiveTimeout =>`) instead of a stable identifier pattern, and the `ReceiveTimeout.getInstance()` method has been removed from the Java API; Java users should match on `ReceiveTimeout.class` instead. ([PR3399](https://github.com/apache/pekko/pull/3399)) +* In pekko-remote Artery comms, PEKK is now the default magic. ([PR3425](https://github.com/apache/pekko/pull/3425)) From bd3d63d20f1b8f5fcae3f9e858f75539da52c925 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 21 Aug 2026 21:47:16 +0100 Subject: [PATCH 4/4] update notes --- docs/src/main/paradox/migration/migration-guide-1.x-2.x.md | 5 ++++- docs/src/main/paradox/release-notes/releases-2.0.md | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md index 2876ad899bb..30e70bc0e0e 100644 --- a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md +++ b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md @@ -44,4 +44,7 @@ timeout duration. Scala pattern matches must use a type pattern (`case timeout: stable identifier pattern, and the `ReceiveTimeout.getInstance()` method has been removed from the Java API; Java users should match on `ReceiveTimeout.class` instead. ([PR3399](https://github.com/apache/pekko/pull/3399)) -* In pekko-remote Artery comms, PEKK is now the default magic. ([PR3425](https://github.com/apache/pekko/pull/3425)) +* In pekko-remote Artery comms, `"PEKK"` is now the default magic header +(`pekko.remote.artery.advanced.tcp-magic`). See +@ref:[Changing TCP magic header](../additional/rolling-updates.md#changing-tcp-magic-header) for what this means for +rolling updates. ([PR3425](https://github.com/apache/pekko/pull/3425)) diff --git a/docs/src/main/paradox/release-notes/releases-2.0.md b/docs/src/main/paradox/release-notes/releases-2.0.md index d80af626b88..c51ef52a3ad 100644 --- a/docs/src/main/paradox/release-notes/releases-2.0.md +++ b/docs/src/main/paradox/release-notes/releases-2.0.md @@ -13,7 +13,8 @@ See the [GitHub Milestone for 2.0.0-M4](https://github.com/apache/pekko/mileston * Added many Akka changes that have recently become Apache Licensed (up to Akka 2.8.4). * Some more deprecated code has been removed but the changes are significantly smaller in this area than in 2.0.0-M1. -* Switch to PEKK as the default magic in pekko-remote Artery comms ([PR3245](https://github.com/apache/pekko/pull/3425)) +* Switch to PEKK as the default magic header in pekko-remote Artery comms ([PR3425](https://github.com/apache/pekko/pull/3425)). + See the @ref:[Migration Guide](../migration/migration-guide-1.x-2.x.md). ## 2.0.0-M3