This is an automated email from the ASF dual-hosted git repository.
wenjin272 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git
The following commit(s) were added to refs/heads/main by this push:
new 54bda560 [dist] Add Flink 2.3 distribution and make it the default
(#856)
54bda560 is described below
commit 54bda560f4ff72c418b1c65c7ea15662ff9d6c30
Author: Eugene <[email protected]>
AuthorDate: Mon Jul 6 14:24:46 2026 +0800
[dist] Add Flink 2.3 distribution and make it the default (#856)
Add Flink 2.3 support and bump the default Flink version to 2.3.0. Central
2.3.0 jars are Java 11 bytecode, so the default still builds on JDK 11 — no
Java 17 requirement. dist modules follow a symmetric rule: the default
version (2.3) is bare and inherits the root flink.version; every other
version pins its own version + provided deps.
- dist: new flink-2.3 module; flink-2.2 now pins 2.2.1 + deps; root default
2.2.1 -> 2.3.0
- e2e: flink-2.3 default + flink-2.2 profile; e2e.sh default -> 2.3
- ci: add {flink 2.3, java 17} to it-java and it-python matrices
- python: bundle 2.3 thin jar into wheel manifest + build-backend test
- misc: ut.sh help, update_flink_version, faq/long_term_memory version notes
Verified: full build on JDK 11, all 5 dist versions (1.20/2.0/2.1/2.2/2.3)
pass.
---
.github/workflows/ci.yml | 6 +++
dist/flink-2.2/pom.xml | 44 ++++++++++++++++++++++
dist/{flink-2.2 => flink-2.3}/pom.xml | 4 +-
dist/pom.xml | 2 +
.../docs/development/memory/long_term_memory.md | 2 +-
docs/content/docs/faq/faq.md | 2 +-
.../pom.xml | 14 ++++++-
pom.xml | 2 +-
python/_build_backend/tests/test_backend.py | 7 ++++
python/jar_manifest.json | 6 +++
tools/e2e.sh | 2 +-
tools/ut.sh | 4 +-
12 files changed, 85 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 198c1452..6d27d2ec 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -171,6 +171,9 @@ jobs:
- os: 'ubuntu-latest'
python-version: '3.12'
flink-version: "2.2"
+ - os: 'ubuntu-latest'
+ python-version: '3.12'
+ flink-version: "2.3"
steps:
- uses: actions/checkout@v4
- name: Install java
@@ -216,6 +219,9 @@ jobs:
- os: 'ubuntu-latest'
java-version: "21"
flink-version: "2.2"
+ - os: 'ubuntu-latest'
+ java-version: "17"
+ flink-version: "2.3"
steps:
- uses: actions/checkout@v4
- name: Install java
diff --git a/dist/flink-2.2/pom.xml b/dist/flink-2.2/pom.xml
index 4cdb742f..151d2eaf 100644
--- a/dist/flink-2.2/pom.xml
+++ b/dist/flink-2.2/pom.xml
@@ -28,6 +28,50 @@ under the License.
<artifactId>flink-agents-dist-flink-2.2</artifactId>
<name>Flink Agents : Dist : Flink 2.2</name>
+ <properties>
+ <flink.version>${flink.2.2.version}</flink.version>
+ </properties>
+
+ <dependencies>
+ <!-- Flink dependencies -->
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-streaming-java</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-runtime</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-clients</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-table-api-java</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-table-api-java-bridge</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-python</artifactId>
+ <version>${flink.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
<build>
<plugins>
<plugin>
diff --git a/dist/flink-2.2/pom.xml b/dist/flink-2.3/pom.xml
similarity index 97%
copy from dist/flink-2.2/pom.xml
copy to dist/flink-2.3/pom.xml
index 4cdb742f..8deaaf88 100644
--- a/dist/flink-2.2/pom.xml
+++ b/dist/flink-2.3/pom.xml
@@ -25,8 +25,8 @@ under the License.
<version>0.3-SNAPSHOT</version>
</parent>
- <artifactId>flink-agents-dist-flink-2.2</artifactId>
- <name>Flink Agents : Dist : Flink 2.2</name>
+ <artifactId>flink-agents-dist-flink-2.3</artifactId>
+ <name>Flink Agents : Dist : Flink 2.3</name>
<build>
<plugins>
diff --git a/dist/pom.xml b/dist/pom.xml
index 47d393ed..9ee655bb 100644
--- a/dist/pom.xml
+++ b/dist/pom.xml
@@ -34,6 +34,7 @@ under the License.
<flink.2.0.version>2.0.2</flink.2.0.version>
<flink.2.1.version>2.1.3</flink.2.1.version>
<flink.2.2.version>2.2.1</flink.2.2.version>
+ <flink.2.3.version>2.3.0</flink.2.3.version>
</properties>
<modules>
@@ -42,6 +43,7 @@ under the License.
<module>flink-2.0</module>
<module>flink-2.1</module>
<module>flink-2.2</module>
+ <module>flink-2.3</module>
</modules>
<dependencies>
diff --git a/docs/content/docs/development/memory/long_term_memory.md
b/docs/content/docs/development/memory/long_term_memory.md
index 46ffc3ac..727e5b44 100644
--- a/docs/content/docs/development/memory/long_term_memory.md
+++ b/docs/content/docs/development/memory/long_term_memory.md
@@ -35,7 +35,7 @@ Declare the following resources in your agent plan:
- An [EmbeddingModel]({{< ref "docs/development/embedding_models" >}}) for
vector generation
- A [VectorStore]({{< ref "docs/development/vector_stores" >}}) for persistent
storage
-> **Java prerequisite:** Mem0 invokes the chat and embedding models on its own
thread executor, which relies on the async-friendly pemja fix. When Mem0
Long-Term Memory is configured together with Java actions, the runtime requires
a Flink version of `1.20.5`, `2.0.2`, `2.1.3`, `2.2.1` or higher; otherwise it
throws at startup. Either upgrade Flink or use the Python API.
+> **Java prerequisite:** Mem0 invokes the chat and embedding models on its own
thread executor, which relies on the async-friendly pemja fix. When Mem0
Long-Term Memory is configured together with Java actions, the runtime requires
a Flink version of `1.20.5`, `2.0.2`, `2.1.3`, `2.2.1`, `2.3.0` or higher;
otherwise it throws at startup. Either upgrade Flink or use the Python API.
## Configuration
diff --git a/docs/content/docs/faq/faq.md b/docs/content/docs/faq/faq.md
index 76ed3e03..bc0cb279 100644
--- a/docs/content/docs/faq/faq.md
+++ b/docs/content/docs/faq/faq.md
@@ -87,7 +87,7 @@ This is important because:
- **For Java users on JDK 21+**: Async execution is available.
- **For Java users on JDK < 21**: Async execution is not available and falls
back to synchronous execution.
-> **Cross-language async note**: Async execution for cross-language resources
requires the pemja 0.5.7 fix, available in Flink 1.20.5+ / 2.0.2+ / 2.1.3+ /
2.2.1+. Current builds target Flink 2.2.0, so cross-language calls still run
synchronously for now; this is resolved automatically once running on a Flink
version that includes the fix.
+> **Cross-language async note**: Async execution for cross-language resources
requires the pemja 0.5.7 fix, available in Flink 1.20.5+ / 2.0.2+ / 2.1.3+ /
2.2.1+ / 2.3+. Current builds target Flink 2.3.0, which includes the fix, so
cross-language async is enabled by default; on older Flink versions it falls
back to synchronous execution automatically.
### Native Integration Support Matrix
diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
b/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
index bfbdf1e6..479a47ba 100644
--- a/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
+++ b/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
@@ -33,9 +33,10 @@ under the License.
<flink.2.0.version>2.0.2</flink.2.0.version>
<flink.2.1.version>2.1.3</flink.2.1.version>
<flink.2.2.version>2.2.1</flink.2.2.version>
+ <flink.2.3.version>2.3.0</flink.2.3.version>
- <flink.version>${flink.2.2.version}</flink.version>
-
<flink.agents.dist.artifactId>flink-agents-dist-flink-2.2</flink.agents.dist.artifactId>
+ <flink.version>${flink.2.3.version}</flink.version>
+
<flink.agents.dist.artifactId>flink-agents-dist-flink-2.3</flink.agents.dist.artifactId>
</properties>
<dependencies>
@@ -199,6 +200,15 @@ under the License.
<flink.agents.dist.artifactId>flink-agents-dist-flink-2.1</flink.agents.dist.artifactId>
</properties>
</profile>
+
+ <!-- Flink 2.2 Profile -->
+ <profile>
+ <id>flink-2.2</id>
+ <properties>
+ <flink.version>${flink.2.2.version}</flink.version>
+
<flink.agents.dist.artifactId>flink-agents-dist-flink-2.2</flink.agents.dist.artifactId>
+ </properties>
+ </profile>
</profiles>
</project>
diff --git a/pom.xml b/pom.xml
index 4728fa58..108841ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@ under the License.
<maven.compiler.target>${target.java.version}</maven.compiler.target>
<spotless.version>2.27.1</spotless.version>
<spotless.skip>false</spotless.skip>
- <flink.version>2.2.1</flink.version>
+ <flink.version>2.3.0</flink.version>
<kafka.version>4.0.0</kafka.version>
<fluss.version>0.9.0-incubating</fluss.version>
<junit5.version>5.10.1</junit5.version>
diff --git a/python/_build_backend/tests/test_backend.py
b/python/_build_backend/tests/test_backend.py
index a8fc9b6d..9bec750f 100644
--- a/python/_build_backend/tests/test_backend.py
+++ b/python/_build_backend/tests/test_backend.py
@@ -180,6 +180,7 @@ def maven_server(tmp_path_factory) -> tuple[str, Path]:
("flink-agents-dist-flink-2.0", "thin"),
("flink-agents-dist-flink-2.1", "thin"),
("flink-agents-dist-flink-2.2", "thin"),
+ ("flink-agents-dist-flink-2.3", "thin"),
]
for artifact_id, classifier in artifacts:
@@ -243,6 +244,12 @@ def test_download_jars_from_local_server(tmp_path,
monkeypatch, maven_server) ->
"dest": "flink_agents/lib/flink-2.2/",
"sha256": expected_sha,
},
+ {
+ "artifact_id": "flink-agents-dist-flink-2.3",
+ "classifier": "thin",
+ "dest": "flink_agents/lib/flink-2.3/",
+ "sha256": expected_sha,
+ },
],
}
_write_manifest(tmp_path / "jar_manifest.json", manifest)
diff --git a/python/jar_manifest.json b/python/jar_manifest.json
index 5077c4d1..4ee74ddc 100644
--- a/python/jar_manifest.json
+++ b/python/jar_manifest.json
@@ -31,6 +31,12 @@
"classifier": "thin",
"dest": "flink_agents/lib/flink-2.2/",
"sha256": "PLACEHOLDER"
+ },
+ {
+ "artifact_id": "flink-agents-dist-flink-2.3",
+ "classifier": "thin",
+ "dest": "flink_agents/lib/flink-2.3/",
+ "sha256": "PLACEHOLDER"
}
]
}
diff --git a/tools/e2e.sh b/tools/e2e.sh
index bc04762e..5a5c7713 100755
--- a/tools/e2e.sh
+++ b/tools/e2e.sh
@@ -15,7 +15,7 @@
# limitations under the License.
#
-DEFAULT_FLINK_VERSION="2.2"
+DEFAULT_FLINK_VERSION="2.3"
function run_test {
local description="$1"
diff --git a/tools/ut.sh b/tools/ut.sh
index a40303e4..76876c79 100755
--- a/tools/ut.sh
+++ b/tools/ut.sh
@@ -43,8 +43,8 @@ Options:
-e, --e2e Run e2e tests
-b, --both Run both Java and Python tests (default)
-f, --flink Specify Flink version to test (can be used multiple times)
- Supported versions: 2.2, 1.20
- Examples: -f 2.2, -f 1.20, -f 2.2 -f 1.20
+ Supported versions: 2.3, 2.2, 2.1, 2.0, 1.20
+ Examples: -f 2.3, -f 1.20, -f 2.3 -f 1.20
Default: run all versions if not specified
-v, --verbose Show verbose output
-h, --help Display this help message