This is an automated email from the ASF dual-hosted git repository. wenjin272 pushed a commit to branch release-0.3 in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit c649ebe7734f718a85955fbafcdda3b65ac3497e 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. (cherry picked from commit 54bda560f4ff72c418b1c65c7ea15662ff9d6c30) --- .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 0a72542a..1227898d 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 eeb4c79d..6de50651 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
