From f0fd4663c83f6e3367e828bc135a5c91d4e38193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rok=20Ro=C5=A1kar?= Date: Mon, 11 May 2026 18:31:35 +0200 Subject: [PATCH 1/3] chore: update python buildpack (enables uv projects) --- builders/selector/builder.toml | 18 +++++++++--------- samples/uv/.python-version | 1 + samples/uv/main.py | 6 ++++++ samples/uv/pyproject.toml | 9 +++++++++ samples/uv/uv.lock | 23 +++++++++++++++++++++++ 5 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 samples/uv/.python-version create mode 100644 samples/uv/main.py create mode 100644 samples/uv/pyproject.toml create mode 100644 samples/uv/uv.lock diff --git a/builders/selector/builder.toml b/builders/selector/builder.toml index 93f129b..84045c4 100644 --- a/builders/selector/builder.toml +++ b/builders/selector/builder.toml @@ -45,13 +45,13 @@ description = "Builder for Renku frontends and environments." version = "0.5.1" [[buildpacks]] - uri = "docker://docker.io/paketobuildpacks/python:2.38.0" - version = "2.38.0" + uri = "docker://docker.io/paketobuildpacks/python:2.45.0" + version = "2.45.0" [[buildpacks]] - uri = "docker://docker.io/paketobuildpacks/miniconda:0.11.5" + uri = "docker://docker.io/paketobuildpacks/miniconda:0.11.22" id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[buildpacks]] uri = "docker://docker.io/heroku/buildpack-deb-packages:0.2.0" @@ -75,11 +75,11 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.45.0" [[order.group]] id = "renku/python-dependency-manager" @@ -121,7 +121,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.45.0" [[order.group]] id = "renku/python-dependency-manager" @@ -159,7 +159,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.45.0" [[order.group]] id = "renku/python-dependency-manager" @@ -196,7 +196,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[order.group]] id = "renku/r-conda" diff --git a/samples/uv/.python-version b/samples/uv/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/samples/uv/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/samples/uv/main.py b/samples/uv/main.py new file mode 100644 index 0000000..bfa9a38 --- /dev/null +++ b/samples/uv/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from uv!") + + +if __name__ == "__main__": + main() diff --git a/samples/uv/pyproject.toml b/samples/uv/pyproject.toml new file mode 100644 index 0000000..5ac41cf --- /dev/null +++ b/samples/uv/pyproject.toml @@ -0,0 +1,9 @@ +[project] +name = "uv-sample" +version = "0.1.0" +description = "Sample uv project" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "cowpy>=1.1.5", +] diff --git a/samples/uv/uv.lock b/samples/uv/uv.lock new file mode 100644 index 0000000..8ac5228 --- /dev/null +++ b/samples/uv/uv.lock @@ -0,0 +1,23 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "cowpy" +version = "1.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6e/d3/bab2411dbae0c5debf103a5aadd4dfef3c68c5ccb6c4d8ac63dd2bfae889/cowpy-1.1.5.tar.gz", hash = "sha256:089172db1d88c30a2e1b741b18945ee84170bd943a3ca71948e4ae3a3255e554", size = 24724, upload-time = "2022-03-06T18:17:38.926Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/a2/76daec910034d765f1018d22660c0970fb99f77143a42841d067b522903e/cowpy-1.1.5-py3-none-any.whl", hash = "sha256:de5ae7646dd30b4936013666c6bd019af9cf411cc3b377c8538cfd8414262921", size = 13943, upload-time = "2022-03-06T18:17:37.186Z" }, +] + +[[package]] +name = "uv-sample" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "cowpy" }, +] + +[package.metadata] +requires-dist = [{ name = "cowpy", specifier = ">=1.1.5" }] From c4fe9533a06298dc2b06a1c08d388bccdfb872c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rok=20Ro=C5=A1kar?= Date: Tue, 12 May 2026 10:26:13 +0200 Subject: [PATCH 2/3] chore: add uv as option for python-dependency-manager --- builders/selector/builder.toml | 14 +++++--------- buildpacks/python-dependency-manager/bin/detect | 7 +++++++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/builders/selector/builder.toml b/builders/selector/builder.toml index 84045c4..792a3c4 100644 --- a/builders/selector/builder.toml +++ b/builders/selector/builder.toml @@ -45,8 +45,8 @@ description = "Builder for Renku frontends and environments." version = "0.5.1" [[buildpacks]] - uri = "docker://docker.io/paketobuildpacks/python:2.45.0" - version = "2.45.0" + uri = "docker://docker.io/paketobuildpacks/python:2.46.0" + version = "2.46.0" [[buildpacks]] uri = "docker://docker.io/paketobuildpacks/miniconda:0.11.22" @@ -79,7 +79,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.45.0" + version = "2.46.0" [[order.group]] id = "renku/python-dependency-manager" @@ -121,7 +121,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.45.0" + version = "2.46.0" [[order.group]] id = "renku/python-dependency-manager" @@ -159,11 +159,7 @@ description = "Builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.45.0" - - [[order.group]] - id = "renku/python-dependency-manager" - version = "0.5.1" + version = "2.46.0" [[order.group]] id = "renku/renku-variables" diff --git a/buildpacks/python-dependency-manager/bin/detect b/buildpacks/python-dependency-manager/bin/detect index 572a315..725c5ea 100755 --- a/buildpacks/python-dependency-manager/bin/detect +++ b/buildpacks/python-dependency-manager/bin/detect @@ -33,4 +33,11 @@ name = "poetry-venv" [or.requires.metadata] launch = true +[[or]] +[[or.requires]] +name = "uv" + +[or.requires.metadata] +launch = true + EOL From d1d21e4a55bc67e21c0e393955795292f870a59a Mon Sep 17 00:00:00 2001 From: Salim Kayal Date: Tue, 19 May 2026 14:38:59 +0200 Subject: [PATCH 3/3] feat: make uv usable (#227) --- builders/cuda-selector/builder.toml | 18 ++++++------ builders/selector/builder.toml | 4 +++ .../python-dependency-manager/bin/build | 29 +++++++++++++++++++ .../python-dependency-manager/bin/detect | 7 ++++- 4 files changed, 48 insertions(+), 10 deletions(-) diff --git a/builders/cuda-selector/builder.toml b/builders/cuda-selector/builder.toml index 473e0dd..b3bd33d 100644 --- a/builders/cuda-selector/builder.toml +++ b/builders/cuda-selector/builder.toml @@ -45,13 +45,13 @@ description = "CUDA enabled builder for Renku frontends and environments." version = "0.5.1" [[buildpacks]] - uri = "docker://docker.io/paketobuildpacks/python:2.38.0" - version = "2.38.0" + uri = "docker://docker.io/paketobuildpacks/python:2.46.0" + version = "2.46.0" [[buildpacks]] - uri = "docker://docker.io/paketobuildpacks/miniconda:0.11.5" + uri = "docker://docker.io/paketobuildpacks/miniconda:0.11.22" id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[buildpacks]] uri = "docker://docker.io/heroku/buildpack-deb-packages:0.2.0" @@ -75,11 +75,11 @@ description = "CUDA enabled builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.46.0" [[order.group]] id = "renku/python-dependency-manager" @@ -121,7 +121,7 @@ description = "CUDA enabled builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.46.0" [[order.group]] id = "renku/python-dependency-manager" @@ -159,7 +159,7 @@ description = "CUDA enabled builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/python" - version = "2.38.0" + version = "2.46.0" [[order.group]] id = "renku/python-dependency-manager" @@ -196,7 +196,7 @@ description = "CUDA enabled builder for Renku frontends and environments." [[order.group]] id = "paketo-buildpacks/miniconda" - version = "0.11.5" + version = "0.11.22" [[order.group]] id = "renku/r-conda" diff --git a/builders/selector/builder.toml b/builders/selector/builder.toml index 792a3c4..8670447 100644 --- a/builders/selector/builder.toml +++ b/builders/selector/builder.toml @@ -161,6 +161,10 @@ description = "Builder for Renku frontends and environments." id = "paketo-buildpacks/python" version = "2.46.0" + [[order.group]] + id = "renku/python-dependency-manager" + version = "0.5.1" + [[order.group]] id = "renku/renku-variables" version = "0.5.1" diff --git a/buildpacks/python-dependency-manager/bin/build b/buildpacks/python-dependency-manager/bin/build index 0e09cba..b5c163c 100755 --- a/buildpacks/python-dependency-manager/bin/build +++ b/buildpacks/python-dependency-manager/bin/build @@ -30,6 +30,32 @@ if python -c "import ipykernel" >/dev/null 2>&1;then fi EOL +if (which uv); then + uv_cache_dir="${CNB_LAYERS_DIR}/uv_cache" + ls -la /layers + cat /layers/*.toml + uv_cache_layer="/layers/paketo-buildpacks_python-package-managers-run/uv-env-cache" + cp -r "${uv_cache_layer}" "$uv_cache_dir" + chmod -R go+w "${uv_cache_dir}" + cat >>"${execd_dir}"/setup.sh <> \${HOME}/.bashrc +fi +EOL + + cat >"${uv_cache_dir}.toml"<