Configure a project¶
The questionnaire moves from project identity to repository and maintainer
metadata. Press Enter to accept a displayed default.
Question groups¶
| Group | Decisions |
|---|---|
| Identity | Display name, description, and initial version |
| Package shape | Distribution slug, import package, and base exception |
| License | MIT, BSD 3-Clause, Apache 2.0, MPL 2.0, GPLv3, or proprietary |
| Python | Minimum, default, and exclusive maximum versions |
| Tooling | Coverage gate, Git initialization, and post-copy setup |
| GitHub | Owner, repository name and URL, optional environment reviewer |
| Documentation | Published documentation URL |
| Maintainer | Name, public email, and copyright year |
See Questionnaire reference for every default and validation rule.
Values worth checking¶
Names¶
| Value | Example | Used by |
|---|---|---|
| Project name | Orbit Tools |
Headings and documentation |
| Project slug | orbit-tools |
Distribution, repository, and image names |
| Package name | orbit_tools |
Python imports and src/ directory |
| Exception class | OrbitToolsError |
Public package API |
The derived defaults are usually correct. Change them when the PyPI distribution name, repository name, and import name should differ.
Python range¶
The default version controls local development, the dev container, and the non-Linux CI jobs. The generated Linux test matrix covers every minor version from the minimum through the default.
minimum 3.11 ─── 3.12 ─── 3.13 ─── default 3.14
└── maximum 3.15 (exclusive)
The exclusive maximum must be the minor version immediately after the default.
GitHub destinations¶
For built-in publishing, use:
repository URL https://github.com/OWNER/REPOSITORY
documentation URL https://OWNER.github.io/REPOSITORY/
ppf publish reads these values from the generated pyproject.toml; it does
not infer the destination from the local directory.
Setup behavior¶
| Initialize Git | Run setup | Result on Linux/macOS |
|---|---|---|
| Yes | Yes | Create main, make the initial commit, install dependencies and hooks |
| Yes | No | Create main and the initial commit only |
| No | Yes | Install Python and Node dependencies; skip hooks |
| No | No | Render files only |
The generated initial commit uses the questionnaire's author name and email for that commit without changing global Git configuration.
Recorded answers¶
The generated .python-project-foundry.answers.yaml records the selected
values. Commit it with the repository:
- it documents how names and settings were derived;
- it makes configuration review straightforward;
- it gives
ppf updatethe answers and tagged template revision needed for a three-way merge.
Do not edit Copier's _src_path or _commit fields manually. See
Update a generated project for the update workflow.