python icon indicating copy to clipboard operation
python copied to clipboard

Support for UV package manager

Open golyalpha opened this issue 1 year ago • 5 comments

Since Poetry, python packaging has gone through quite a bit of changes, and projects are slowly migrating to new tools. Unfortunately, uv seems to not be supported either natively, or through pip install .

Describe the Enhancement

Currently python projects using uv as a dependency manager don't get properly recognized. There is no buildpack natively supporting uv, and pip-install requires a requirements.txt file that uv doesn't actively manage. Adding support to pip-install for installing projects from pyproject.toml files, and a buildpack specifically for uv-managed projects would be the goal.

Possible Solution

A new buildpack, similar to poetry* family of buildpacks could be made for uv. So, uv to provide uv, uv-install to install packages using uv, and uv-run to set the start command.

Additionally, the pip-install buildpack could also run and install the project if pyproject.toml is detected, and no other package-manager specific buildpack can be run.

Motivation

Currently, projects package managers other than Pipenv and Poetry have to separately manage a requirements.txt file in order to be successfully packaged using these buildpack. Adding fallback support for pyproject.toml to the pip-install could allow these projects to use buildpacks without going through extra steps. Obviously, pm-specific buildpacks should still be implemented, maintained and preferred, if for no other reason than dependency locking.

golyalpha avatar Jan 22 '25 09:01 golyalpha

Also would really like this 🙇

samuelhwilliams avatar Feb 03 '25 20:02 samuelhwilliams

I would love buildpack support for uv!

jkurek1 avatar Mar 27 '25 08:03 jkurek1

waiting for ha !

mautops avatar Apr 17 '25 12:04 mautops

For anyone who needs uv support, another option is to use Heroku's Python CNB, which added support for uv earlier this month: https://github.com/heroku/buildpacks-python/releases/tag/v2.0.0

The best way to do so would be via Heroku's builder image: heroku/builder:24

More about Heroku's CNBs and builder images can be found here: https://github.com/heroku/buildpacks

edmorley avatar May 28 '25 07:05 edmorley

We are waiting for this feature as well.

manarayanareddy-clgx avatar Jun 18 '25 14:06 manarayanareddy-clgx