[
https://issues.apache.org/jira/browse/FLINK-38231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mika Naylor reassigned FLINK-38231:
-----------------------------------
Assignee: Mika Naylor
> 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
> Assignee: Mika Naylor
> Priority: Major
>
> 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)