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/{{ 'dotnet' in languages }}. |
"" |
nuget_feed_name |
The feed’s key in nuget.config (its login comes from NUGET_{{ '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://{{ 'python' in languages }}. |
"" |
private_index_name |
The index’s name in uv config (uv reads its login from UV_INDEX_{{ '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 }}. |
[] |