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)

Reply via email to