Skip to content
Komputa Practice
Esc
↑↓navigate↵open⌘Jpreview
On this page

Template questions

Every question that copier copy asks, from copier.yml.

This page is generated. Do not edit it: change the source it names, and the next build changes this page. The source is copier.yml.

The environment file answers vault_command and forge for every repo. A question with no default needs an answer: each one is a decision.

Question What it asks Default
project_name The project name, lowercase with hyphens (it becomes the OTel service namespace). none
description One line on what the project is. none
kind What it is. Choices: service, library, cli, app. none
tenants_now How many tenants (separate sets of data, a person’s or a company’s) the first release holds. Choices: one, many. none
tenants_later How many tenants it will hold later (many builds the isolation shape now). Choices: one, many. none
users_now How many people sign in to the first release. Choices: one, many. none
users_later How many people will sign in later, sharing a tenant’s data. Choices: one, many. none
languages The languages it is written in. Choices: dotnet, python, typescript, rust, shell. none
nextjs Does it have a Next.js front end? Asked only when {{ 'typescript' in languages }}. false
vault_command The command that reads a secret on a workstation, for example your password manager’s CLI. none
forge The forge that hosts the repo. Choices: onedev, github. none
onedev_project The OneDev project path, for example team/app. Asked only when {{ forge == 'onedev' }}. "{{ project_name }}"
python_dir The folder of the Python project (the one with pyproject.toml), or . for the repo root. Asked only when {{ 'python' in languages }}. "."
rust_dir The folder of the Rust project (the one with Cargo.toml), or . for the repo root. Asked only when {{ 'rust' in languages }}. "."
rust_version The Rust toolchain that rust-toolchain.toml and the CI image pin, for example 1.89.0. Asked only when {{ 'rust' in languages }}. "1.89.0"
dotnet_dir The folder of the .NET solution, or . for the repo root. Asked only when {{ 'dotnet' in languages }}. "."
node_dir The folder of the TypeScript project (the one with package.json), or . for the repo root. Asked only when {{ 'typescript' in languages }}. "."
dotnet_test_runner The test runner. Microsoft.Testing.Platform suits TUnit and xUnit v3 (the house default). VSTest suits xUnit v2, NUnit and older MSTest; the Microsoft.Testing.Platform setting in global.json breaks them. Choices: mtp, vstest. Asked only when {{ 'dotnet' in languages }}. mtp
dotnet_lock_files Restore from NuGet lock files (packages.lock.json) and fail when they are stale? Say no when a package comes from a feed that only CI can read. Asked only when {{ 'dotnet' in languages }}. true
nuget_feed A private NuGet feed to take some packages from, or empty for none. For example https://nuget.pkg.github.com//index.json. Asked only when {{ 'dotnet' in languages }}. ""
nuget_feed_name The feed’s key in nuget.config (its login comes from NUGET__USERNAME and _PASSWORD). Asked only when {{ 'dotnet' in languages and nuget_feed }}. private
nuget_feed_packages The package ID patterns to take from the feed, as a list, for example [Cleipnir.ResilientFunctions*]. Asked only when {{ 'dotnet' in languages and nuget_feed }}. []
npm_allow_scripts The npm packages whose install scripts you approved, as a list, for example [sharp, protobufjs]. Every other install script is refused. Asked only when {{ 'typescript' in languages }}. []
shell_exclude Folders of vendored or retired shell scripts that the gate must not check (shellcheck and shfmt). A gate script in them is not a second gate. As a list, for example [.ralph, archive]. []
gate_budget_reason Why a gate section needs more time than its default budget (fast 5 s), or empty to keep the default. Written in the answers file so a reviewer sees it. Needed only when a budget below is raised. ""
gate_fast_budget The most seconds a section may take in gate.sh –fast. 5
gate_full_budget The most seconds a section may take in the full gate (–full and CI), or 0 for no budget. 0
test_folders Folders whose files count as tests in the gate’s line of source lines against test lines, as a list, for example [spec, e2e]. A file named like a test, and any file under a tests folder, already counts. []
python_floor The oldest Python it supports (the oldest still in bugfix support for a new repo). Asked only when {{ 'python' in languages }}. "3.13"
adr_dir Where ADRs live. Keep them out of any published docs site (for example design/adr). docs/adr
private_index A private package index to install some packages from, or empty for none. For example https:////~pypi/simple/. Asked only when {{ 'python' in languages }}. ""
private_index_name The index’s name in uv config (uv reads its login from UV_INDEX__USERNAME and _PASSWORD). Asked only when {{ 'python' in languages and private_index }}. "{{ private_index.split('/')[3] if private_index.split('/') | length > 4 else 'private' }}"
private_packages The packages to take from the private index, as a list, for example [comfyui-core]. Asked only when {{ 'python' in languages and private_index }}. []

Was this page helpful?