Consolidate dependencies in pyproject.toml#21
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pyproject.tomlvia PEP 735[dependency-groups](prod,devwithinclude-group = "prod"+ ruff); deleterequirements.txt.[build-system],[tool.uv] package = false. The minimal[project]table (name/version/requires-python) exists only to satisfy uv's lockfile requirements.pip install -r requirements.txttopip install --group prod(pip ≥ 25.1, PEP 735). Pullsgunicorninto the declared prod deps — it was previously a standalonepip install gunicornstep in the Dockerfile.uv.lockand.python-versionfor reproducible uv-based local dev; document the install step inCLAUDE.md.0.5.1references (kaplancloud/__init__.py,docs/source/conf.py,kaplancloudapp/templates/index.html) to0.6.0.dev0to 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 passruff check .andruff format --check .— cleanpip install --group prod— installs cleanly (nokaplancloudpackage, confirming non-installable)pip install --group dev— installs prod + ruffuv sync(bare) — defaults to dev group via uv's built-in defaultpodman build -t kc-verify .— succeeds end-to-endpodman run ... manage.py check— 0 issues inside the built imagelint+testjobs green on this PR🤖 Generated with Claude Code