Mika Naylor created FLINK-38231:
-----------------------------------
Summary: Standardise use of uv for PyFlink
building/testing/tooling
Key: FLINK-38231
URL: https://issues.apache.org/jira/browse/FLINK-38231
Project: Flink
Issue Type: Technical Debt
Components: API / Python, Test Infrastructure
Reporter: Mika Naylor
With FLINK-37775 and FLINK-36900 we have started to use {{uv}} for managing
Python testing environments and installing linting tools, as well as defining
test/lint/typecheck dependencies in {{{}pyproject.toml{}}}.
However, the CI/CD scripts and developer documentation is in a bit of an
inbetween state. We use uv for creating Python virtual environments for tool
installation, but uv supports these natively with `uv run` disregarding the
need for a custom made virtual environment. Similarly, the use of specific
virtual environments for Python versions for Tox can be sidestepped with
tox-uv. Their use for building the python wheels can also be ignored if we use
uv to build them, using `uv build --python <x>` and letting uv itself manage
the environments for us.
Throughout the CI/CD scripts, we also build the python projects via `python
setup.py sdist bdist_wheel`, which is already deprecated. We should instead use
`uv build` for this since we involve uv in the CI/CD process anyway. Similarly,
we can use uv to build & install the apache-flink packages in testing
environments via `uv pip install .`, using uv's tooling to link the
apache-flink-libraries dependency when developing locally.
This should help us not only simplify and reduce the amount of CI/CD scripts we
have to maintain, but also bring the tooling we use (and recommend developers
use) into more modern standards.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)