Skip to content

init: Python and Django; resolve a checkout's own project first; environment servers - #2

Merged
valicm merged 3 commits into
mainfrom
dev
Oct 17, 2026
Merged

valicm merged 3 commits into
mainfrom
dev

Conversation

@valicm

@valicm valicm commented Oct 17, 2026

Copy link
Copy Markdown
Member

init: Python and Django

  • manage.py, or a Django dependency in uv.lock, pyproject.toml or requirements.txt, is detected as Django; any of those files otherwise means Python. Checked after go.mod and before package.json, since a Django site builds its front end with npm.
  • The starter pins Python from .python-version or the requires-python floor, and builds with what the repository locks with: uv held to uv.lock, pip into .venv for requirements.txt, uv resolving afresh for a bare pyproject.toml (and says so).
  • Django gets collectstatic in the build, migrate as a deploy step and Gunicorn on the WSGI module manage.py names, with a warning when settings have no STATIC_ROOT. Plain Python asks for its start: line unless gunicorn.conf.py already names the app.

resolve: a checkout's own project before the linked one

  • The git remote now answers before the project recorded with vallic link; the linked project is used only where the remote names none (a fork, a mirror, no git). A flag and VALLIC_PROJECT still win over both. link's help and messages say so.
  • The confirmation for a protected environment names the project too: "Deploy to acme-production (Acme), which is protected?"
  • --wait follows the task the control plane names for the deployment (new task field) instead of treating the deployment's id as a task id. Without a task named, it says where to look rather than guessing.

api: environment servers

  • EnvironmentDetail exposes servers (machine ID and role), limited to what the caller may see. Nil only against a control plane that predates it.

🤖 Generated with Claude Code

valicm and others added 3 commits October 17, 2026 10:56
manage.py, or a dependency on Django in uv.lock, pyproject.toml or
requirements.txt, is Django; any of those files is otherwise Python.
Asked after go.mod and before package.json, because a Django site
builds its front end with npm and is not a Node project.

The starter pins the version from .python-version, or the floor
requires-python sets, and builds with what the repository locks with:
uv held to uv.lock, pip into .venv for requirements.txt, uv resolving
afresh for a pyproject.toml alone, which is said. Django's adds
collectstatic to the build, migrate as a deploy step and Gunicorn on
the WSGI module manage.py names, and says when the settings have no
STATIC_ROOT for the build step to use. A plain Python project is asked
for its start: line rather than given a guess, unless gunicorn.conf.py
already names the application.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… it; --wait follows the task

A project recorded with `vallic link` is one answer for the whole
machine, and the resolver read it before the git remote. Linked once,
it answered in every checkout, including those whose remote names a
different project, and a command run there acted on the linked one.

- The git remote now answers first; the linked project only where it
  names no project (a fork, a mirror, no git). A flag and VALLIC_PROJECT
  still beat both. `link`'s help and messages say so.
- A protected environment's question names the project as well as the
  environment: "Deploy to acme-production (Acme), which is protected?"
  Every project has a "production".
- `--wait` follows the task the control plane names for the deployment
  (`task`, new there). It followed the deployment's own id as a task's;
  the two are numbered apart, so it found no such task, or another task
  whose ending it reported as the deploy's. Without a task named, the
  wait says where to look instead of guessing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@valicm
valicm merged commit 533861a into main Oct 17, 2026
3 checks passed
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