Skip to content

Consolidate dependencies in pyproject.toml#21

Merged
csengor merged 2 commits into
kaplanPRO:0.6.x-devfrom
csengor:chore/pyproject-deps
Apr 19, 2026
Merged

Consolidate dependencies in pyproject.toml#21
csengor merged 2 commits into
kaplanPRO:0.6.x-devfrom
csengor:chore/pyproject-deps

Conversation

@csengor
Copy link
Copy Markdown
Member

@csengor csengor commented Apr 19, 2026

Summary

  • Move production + dev deps into pyproject.toml via PEP 735 [dependency-groups] (prod, dev with include-group = "prod" + ruff); delete requirements.txt.
  • Keep the Django project non-installable — no [build-system], [tool.uv] package = false. The minimal [project] table (name/version/requires-python) exists only to satisfy uv's lockfile requirements.
  • Docker + CI switch from pip install -r requirements.txt to pip install --group prod (pip ≥ 25.1, PEP 735). Pulls gunicorn into the declared prod deps — it was previously a standalone pip install gunicorn step in the Dockerfile.
  • Add uv.lock and .python-version for reproducible uv-based local dev; document the install step in CLAUDE.md.
  • Bump stale 0.5.1 references (kaplancloud/__init__.py, docs/source/conf.py, kaplancloudapp/templates/index.html) to 0.6.0.dev0 to match [project].version. These remain hand-maintained — the UI literal isn't yet a dynamic template variable.

Split into two commits so the version bumps can be bisected/reverted independently of the dependency-management change.

Test plan

  • python manage.py test — 256 tests pass
  • ruff check . and ruff format --check . — clean
  • Fresh venv + pip install --group prod — installs cleanly (no kaplancloud package, confirming non-installable)
  • Fresh venv + pip install --group dev — installs prod + ruff
  • uv sync (bare) — defaults to dev group via uv's built-in default
  • podman build -t kc-verify . — succeeds end-to-end
  • podman run ... manage.py check — 0 issues inside the built image
  • CI lint + test jobs green on this PR

🤖 Generated with Claude Code

csengor and others added 2 commits April 19, 2026 21:54
Move production deps from requirements.txt into [dependency-groups].prod
and add a dev group with ruff. Pull gunicorn into the prod group — it was
previously a standalone `pip install gunicorn` step in the Dockerfile, not
declared anywhere.

Dockerfile and CI switch from `pip install -r requirements.txt` to
`pip install --group prod` (PEP 735; requires pip ≥ 25.1, covered by the
existing `pip install -U pip` step).

The project stays non-installable — no [build-system], and [tool.uv]
package = false so uv treats it as a non-package workspace rather than
trying to build a wheel. [project] is kept minimal (name, version,
requires-python) purely to satisfy uv's lockfile requirements.

Add uv.lock and .python-version for reproducible uv-based local dev,
and update CLAUDE.md to document the `uv sync` / `pip install --group dev`
install step in the dev setup snippet.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sync __version__, Sphinx release, and the in-UI version label to match
[project].version in pyproject.toml. All three were still pinned at
0.5.1, predating the 0.6.x-dev branch.

These remain hand-maintained — the template in particular is still a
literal string rather than a dynamic template variable. Wiring it to
render from a context processor is out of scope here.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@csengor csengor changed the base branch from main to 0.6.x-dev April 19, 2026 18:57
@csengor csengor merged commit 00a047b into kaplanPRO:0.6.x-dev Apr 19, 2026
2 checks passed
@csengor csengor deleted the chore/pyproject-deps branch April 19, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant