Skip to content

Commit ff3c3b6

Browse files
committed
feat: Replace pdm with uv in backend
1 parent a04478b commit ff3c3b6

27 files changed

Lines changed: 4721 additions & 5231 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ and seamlessly transition from setup to innovation.
5757

5858
#### Optional
5959

60-
- Install [Python](https://www.python.org/downloads/) version 3.11 (which can be checked by running `python3 --version`) and [PDM](https://github.com/pdm-project/pdm/#installation) version 2.3 or above (which can be checked by running
61-
`pdm --version`)
62-
- You need this one if you want to run `pdm install` command in `packages/backend` or `packages/workers` outside
60+
- Install [Python](https://www.python.org/downloads/) version 3.11 (which can be checked by running `python3 --version`) and [uv](https://docs.astral.sh/uv/getting-started/installation/) (which can be checked by running
61+
`uv --version`)
62+
- You need this one if you want to run `uv sync` command in `packages/backend` or `packages/workers` outside
6363
docker container
6464
- You can use [`pyenv`](https://github.com/pyenv/pyenv) for managing multiple Python versions installed on a single machine.
6565

packages/backend/.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
__pypackages__
2+
.venv
23
node_modules
34
**/node_modules

packages/backend/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ db.sqlite3
55
.pytest_cache/
66
.env
77
.ruff_cache
8-
.pdm-python
8+
.venv/
99
docs/
1010

1111
# Coverage

packages/backend/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ENV PIP_NO_CACHE_DIR=off
1818
RUN apt-get update && apt-get install -y gcc postgresql-client ca-certificates jq curl \
1919
&& update-ca-certificates \
2020
&& pip install --upgrade pip \
21-
&& pip install --no-cache-dir setuptools pdm~=2.22 awscli==1.32.24
21+
&& pip install --no-cache-dir setuptools uv==0.9.29 awscli==1.32.24
2222

2323

2424
RUN curl -fsS https://deb.nodesource.com/setup_20.x | bash - \
@@ -28,8 +28,8 @@ COPY --from=chamber /chamber /bin/chamber
2828

2929
WORKDIR /pkgs
3030

31-
COPY pdm.lock pyproject.toml pdm.toml /pkgs/
32-
RUN pdm sync \
31+
COPY uv.lock pyproject.toml /pkgs/
32+
RUN uv sync --frozen \
3333
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
3434
&& rm -rf /var/lib/apt/lists/*
3535

@@ -46,14 +46,14 @@ ENV HASHID_FIELD_SALT='' \
4646
DB_CONNECTION='{"dbname":"build","username":"build","password":"build","host":"db","port":5432}' \
4747
REDIS_CONNECTION=redis://redis:6379 \
4848
WORKERS_EVENT_BUS_NAME='' \
49-
PYTHONPATH=/pkgs/__pypackages__/3.11/lib
49+
PYTHONPATH=/pkgs/.venv/lib/python3.11/site-packages
5050

5151
RUN ./scripts/runtime/build_static.sh
5252

5353

5454
FROM backend_build AS backend
5555
COPY --from=static_files /app/static /app/static
56-
ENV PYTHONPATH=/pkgs/__pypackages__/3.11/lib \
57-
PATH=$PATH:/pkgs/__pypackages__/3.11/bin
56+
ENV PYTHONPATH=/pkgs/.venv/lib/python3.11/site-packages \
57+
PATH=$PATH:/pkgs/.venv/bin
5858

5959
CMD ["./scripts/runtime/run.sh"]

packages/backend/Dockerfile.render

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,16 @@ ENV PIP_NO_CACHE_DIR=off
5858
RUN apt-get update && apt-get install -y gcc postgresql-client ca-certificates jq curl \
5959
&& update-ca-certificates \
6060
&& pip install --upgrade pip \
61-
&& pip install --no-cache-dir setuptools pdm~=2.22
61+
&& pip install --no-cache-dir setuptools uv==0.9.29
6262

6363
RUN curl -fsS https://deb.nodesource.com/setup_20.x | bash - \
6464
&& apt-get --no-install-recommends install -y nodejs
6565

6666
WORKDIR /pkgs
6767

6868
# Copy backend package files (paths relative to repo root)
69-
COPY packages/backend/pdm.lock packages/backend/pyproject.toml packages/backend/pdm.toml /pkgs/
70-
# Disable PDM HTTP caching to prevent sqlite locking issues during parallel builds on Render
71-
RUN pdm config install.cache off && pdm sync \
69+
COPY packages/backend/uv.lock packages/backend/pyproject.toml /pkgs/
70+
RUN uv sync --frozen \
7271
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7372
&& rm -rf /var/lib/apt/lists/*
7473

@@ -95,15 +94,15 @@ ENV HASHID_FIELD_SALT='' \
9594
DB_CONNECTION='{"dbname":"build","username":"build","password":"build","host":"db","port":5432}' \
9695
REDIS_CONNECTION=redis://redis:6379 \
9796
WORKERS_EVENT_BUS_NAME='' \
98-
PYTHONPATH=/pkgs/__pypackages__/3.11/lib
97+
PYTHONPATH=/pkgs/.venv/lib/python3.11/site-packages
9998

10099
RUN ./scripts/runtime/build_static.sh
101100

102101

103102
FROM backend_build AS backend
104103
COPY --from=static_files /app/static /app/static
105-
ENV PYTHONPATH=/pkgs/__pypackages__/3.11/lib \
106-
PATH=$PATH:/pkgs/__pypackages__/3.11/bin \
104+
ENV PYTHONPATH=/pkgs/.venv/lib/python3.11/site-packages \
105+
PATH=$PATH:/pkgs/.venv/bin \
107106
DJANGO_SETTINGS_MODULE=config.settings
108107

109108
CMD ["./scripts/runtime/run.sh"]

packages/backend/apps/sso/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ LOCAL_APPS = [
2727
2. Run migrations:
2828

2929
```bash
30-
pdm run python manage.py makemigrations sso
31-
pdm run python manage.py migrate
30+
uv run python manage.py makemigrations sso
31+
uv run python manage.py migrate
3232
```
3333

3434
3. Configure your identity provider (see documentation)

0 commit comments

Comments
 (0)