Files
newproject/README.md
T

2.2 KiB

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

Then drop a renovate.jsonc into the repo root with nothing but the shared preset:

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["local>templates/renovate"]
}

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.