From e6f6e78e23bc999c97cdd62d0df7dbd3fc211897 Mon Sep 17 00:00:00 2001 From: "Thomas J. Fan" Date: Fri, 9 Aug 2024 23:32:55 -0400 Subject: [PATCH] Update uv and remove pip workaround Signed-off-by: Thomas J. Fan --- flytekit/image_spec/default_builder.py | 33 ++----------------- .../core/image_spec/test_default_builder.py | 4 +-- 2 files changed, 4 insertions(+), 33 deletions(-) diff --git a/flytekit/image_spec/default_builder.py b/flytekit/image_spec/default_builder.py index 682bb16a9a..936c1a0e9c 100644 --- a/flytekit/image_spec/default_builder.py +++ b/flytekit/image_spec/default_builder.py @@ -1,5 +1,4 @@ import json -import os import re import shutil import subprocess @@ -28,13 +27,6 @@ --requirement requirements_uv.txt """) -PIP_PYTHON_INSTALL_COMMAND_TEMPLATE = Template("""\ -RUN --mount=type=cache,sharing=locked,mode=0777,target=/root/.cache/pip,id=pip \ - --mount=type=bind,target=requirements_pip.txt,src=requirements_pip.txt \ - /opt/micromamba/envs/runtime/bin/python -m pip install $PIP_EXTRA \ - --requirement requirements_pip.txt -""") - APT_INSTALL_COMMAND_TEMPLATE = Template( """\ RUN --mount=type=cache,sharing=locked,mode=0777,target=/var/cache/apt,id=apt \ @@ -46,7 +38,7 @@ DOCKER_FILE_TEMPLATE = Template( """\ #syntax=docker/dockerfile:1.5 -FROM ghcr.io/astral-sh/uv:0.2.13 as uv +FROM ghcr.io/astral-sh/uv:0.2.35 as uv FROM mambaorg/micromamba:1.5.8-bookworm-slim as micromamba FROM $BASE_IMAGE @@ -66,7 +58,6 @@ python=$PYTHON_VERSION $CONDA_PACKAGES $UV_PYTHON_INSTALL_COMMAND -$PIP_PYTHON_INSTALL_COMMAND # Configure user space ENV PATH="/opt/micromamba/envs/runtime/bin:$$PATH" \ @@ -149,19 +140,8 @@ def create_docker_context(image_spec: ImageSpec, tmp_dir: Path): if not any(_is_flytekit(package) for package in requirements): requirements.append(get_flytekit_for_pypi()) - uv_requirements = [] - - # uv does not support git + subdirectory, so we use pip to install them instead - pip_requirements = [] - - for requirement in requirements: - if "git" in requirement and "subdirectory" in requirement: - pip_requirements.append(requirement) - else: - uv_requirements.append(requirement) - requirements_uv_path = tmp_dir / "requirements_uv.txt" - requirements_uv_path.write_text("\n".join(uv_requirements)) + requirements_uv_path.write_text("\n".join(requirements)) pip_extra_args = "" @@ -173,14 +153,6 @@ def create_docker_context(image_spec: ImageSpec, tmp_dir: Path): uv_python_install_command = UV_PYTHON_INSTALL_COMMAND_TEMPLATE.substitute(PIP_EXTRA=pip_extra_args) - if pip_requirements: - requirements_uv_path = tmp_dir / "requirements_pip.txt" - requirements_uv_path.write_text(os.linesep.join(pip_requirements)) - - pip_python_install_command = PIP_PYTHON_INSTALL_COMMAND_TEMPLATE.substitute(PIP_EXTRA=pip_extra_args) - else: - pip_python_install_command = "" - env_dict = {"PYTHONPATH": "/root", _F_IMG_ID: image_spec.image_name()} if image_spec.env: @@ -239,7 +211,6 @@ def create_docker_context(image_spec: ImageSpec, tmp_dir: Path): docker_content = DOCKER_FILE_TEMPLATE.substitute( PYTHON_VERSION=python_version, UV_PYTHON_INSTALL_COMMAND=uv_python_install_command, - PIP_PYTHON_INSTALL_COMMAND=pip_python_install_command, CONDA_PACKAGES=conda_packages_concat, CONDA_CHANNELS=conda_channels_concat, APT_INSTALL_COMMAND=apt_install_command, diff --git a/tests/flytekit/unit/core/image_spec/test_default_builder.py b/tests/flytekit/unit/core/image_spec/test_default_builder.py index 6887f472b3..5d839e0f39 100644 --- a/tests/flytekit/unit/core/image_spec/test_default_builder.py +++ b/tests/flytekit/unit/core/image_spec/test_default_builder.py @@ -80,8 +80,8 @@ def test_create_docker_context_with_git_subfolder(tmp_path): assert dockerfile_path.exists() dockerfile_content = dockerfile_path.read_text() - assert "--requirement requirements_pip.txt" in dockerfile_content - requirements_path = docker_context_path / "requirements_pip.txt" + assert "--requirement requirements_uv.txt" in dockerfile_content + requirements_path = docker_context_path / "requirements_uv.txt" assert requirements_path.exists()