From 9a4a933c9c1ec4669d24d1e5bb53da4c5cc0e471 Mon Sep 17 00:00:00 2001 From: aadil96 Date: Wed, 19 Nov 2025 16:39:56 +0000 Subject: [PATCH] build(backend): separate dev dependencies from main --- src/backend/Dockerfile | 4 ++-- src/backend/pyproject.toml | 19 ++++++++++--------- src/backend/uv.lock | 12 ++++++++++-- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/backend/Dockerfile b/src/backend/Dockerfile index 9ba67a8..ae782fa 100644 --- a/src/backend/Dockerfile +++ b/src/backend/Dockerfile @@ -9,14 +9,14 @@ WORKDIR /app RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ - uv sync --locked --no-install-project --no-editable + uv sync --locked --no-install-project --no-editable --no-dev # Copy the project into the intermediate image COPY . /app # Sync the project and install it, now that we have access to the source code RUN --mount=type=cache,target=/root/.cache/uv \ - uv sync --locked --no-editable + uv sync --locked --no-editable --no-dev FROM python:3.13-alpine diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml index 9ca2944..71915b2 100644 --- a/src/backend/pyproject.toml +++ b/src/backend/pyproject.toml @@ -5,15 +5,7 @@ description = "Backend API for tracking study time for DevOps certifications" readme = "README.md" authors = [{ name = "aadil96", email = "agwan96@gmail.com" }] requires-python = ">=3.13" -dependencies = [ - "fastapi>=0.121.2", - "httpx>=0.28.1", - "pytest>=9.0.1", - "pytest-asyncio>=1.3.0", - "pytest-cov>=7.0.0", - "ruff>=0.14.5", - "uvicorn>=0.38.0", -] +dependencies = ["fastapi>=0.121.2", "uvicorn>=0.38.0"] [project.scripts] study-tracker-api = "backend.main:main" @@ -27,3 +19,12 @@ packages = ["src/backend"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[dependency-groups] +dev = [ + "httpx>=0.28.1", + "pytest>=9.0.1", + "pytest-asyncio>=1.3.0", + "pytest-cov>=7.0.0", + "ruff>=0.14.5", +] diff --git a/src/backend/uv.lock b/src/backend/uv.lock index 83fbbba..9aa2358 100644 --- a/src/backend/uv.lock +++ b/src/backend/uv.lock @@ -384,23 +384,31 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "fastapi" }, + { name = "uvicorn" }, +] + +[package.dev-dependencies] +dev = [ { name = "httpx" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, { name = "ruff" }, - { name = "uvicorn" }, ] [package.metadata] requires-dist = [ { name = "fastapi", specifier = ">=0.121.2" }, + { name = "uvicorn", specifier = ">=0.38.0" }, +] + +[package.metadata.requires-dev] +dev = [ { name = "httpx", specifier = ">=0.28.1" }, { name = "pytest", specifier = ">=9.0.1" }, { name = "pytest-asyncio", specifier = ">=1.3.0" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "ruff", specifier = ">=0.14.5" }, - { name = "uvicorn", specifier = ">=0.38.0" }, ] [[package]]