newproject

Composes a project from the templates in this organization: infra at the root, then backend-python, frontend-svelte and caddy on top, each with its own answers file in .copier/.

source ~/projects/templates/newproject/shell.sh
newproject ~/projects/my-thing
updateproject            # every part
updateproject backend    # one part

newproject asks for the parts, the backend language, the frontend framework and how the frontend is served, then hands over to each template's own questions. Every prompt has a flag for non-interactive use:

newproject ~/projects/my-thing --parts backend,frontend,caddy --backend python --frontend svelte --serve bun --defaults

One part alone is rendered at the root of the project; two parts live in backend/ and frontend/. After rendering, make env creates .env and every docker-compose.override.yml from their examples. updateproject needs a clean working tree and commits each part's update separately, so the next part starts from a clean tree again; conflicts stay in those commits for you to resolve. Templates are cloned from https://git.kotikot.com/templates unless TEMPLATES_DIR points at a directory with local checkouts; TEMPLATES_REF=HEAD renders their working trees instead of the latest tag.

Renovate

A new repo needs the renovate, wait-3d and deps-code labels before the bot ever runs against it: Renovate fails on a label that does not exist, and until today these were created by hand for every repo.

giteaproject ms-agents/my-thing

It creates the labels and, if the repo has no renovate.jsonc yet, commits one that is nothing but an extends on the shared preset in templates/renovate. Projects rendered by newproject already carry that file from the infra template, so for them the command only does the labels.

Extending the preset does not subscribe the repo to anything. The bot walks an explicit list, so the repo also has to be added to repositories in projects/personal/renovate/renovate-config.js of infra/komodo, and the renovate team of its organization needs write access to it. Miss that step and the config sits there doing nothing, silently.

Requires uv; bun, docker and pre-commit are used by the generated projects.

S
Description
No description provided
Readme
69 KiB
Languages
Python 96.5%
Shell 3.5%