This is an automated email from the ASF dual-hosted git repository. xtsong pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit e3c0da3fb7e7fe5df0a064ac736c4bb208c62cde Author: WenjinXie <[email protected]> AuthorDate: Tue Sep 23 16:39:32 2025 +0800 [package] Support package flink-agents-dist jar in python wheel. --- README.md | 12 ++++++++++++ python/pyproject.toml | 9 +++++++++ tools/build.sh | 36 ++++++++++++++++++++++++++++++++++-- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b9b0f5c..03e9750 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,18 @@ python -m build python -m pip install dist/*.whl ``` +### Build Python with Flink-Agents jars + +This will also package flink-agents jars in wheel, which +is necessary when run agent as pyflink job. + +```shell +# Build java and python +bash -x tools/build.sh + +# Skip building java (must be built already) +bash -x tools/build.sh -p +``` ## How to Contribute diff --git a/python/pyproject.toml b/python/pyproject.toml index fff11f5..e7f79c1 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -56,6 +56,15 @@ dependencies = [ "chromadb==1.0.21", ] +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages.find] +where = [""] + +[tool.setuptools.package-data] +"flink_agents.lib" = ["*.jar"] + # Optional dependencies (dependency groups) [project.optional-dependencies] # Development dependencies - includes all tools needed for development diff --git a/tools/build.sh b/tools/build.sh index dfe00be..ab35cad 100644 --- a/tools/build.sh +++ b/tools/build.sh @@ -15,11 +15,43 @@ # limitations under the License. # +# Parse command-line arguments +build_java=true +while [[ "$#" -gt 0 ]]; do + case $1 in + -p|--python) + build_java=false + ;; + *) + echo "Error: Unknown option '$1'" >&2 + show_help + exit 1 + ;; + esac + shift +done + +CURR_DIR=`pwd` +BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +PROJECT_ROOT="${BASE_DIR}/../" + # build java -mvn clean package -DskipTests +if $build_java; then + mvn clean package -DskipTests +fi + +# copy flink-agents-dist jar to python lib +PYTHON_LIB_DIR=${PROJECT_ROOT}/python/flink_agents/lib +rm -rf ${PYTHON_LIB_DIR} +mkdir -p ${PYTHON_LIB_DIR} + +PROJECT_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p' pom.xml | head -n 2 | tail -n 1) +cp "${PROJECT_ROOT}/dist/target/flink-agents-dist-${PROJECT_VERSION}.jar" ${PYTHON_LIB_DIR} # build python cd python uv sync --extra dev uv run python -m build -uv pip install dist/*.whl \ No newline at end of file +uv pip install dist/*.whl + +rm -rf ${PYTHON_LIB_DIR} \ No newline at end of file
