Getting Started
Documentation is currently being improved, but here is the short version to use this template:
- Ensure you have mise installed on your workstation (Linux/macOS/Windows are all supported).
- Clone this repository and open it in your terminal
- Run the following to install needed dependencies to use the template:
- Run the following to create the template, making sure set the path at the end as appropriate
Stuff from old README
Core
Support for Multiple CI/CD Platforms
- GitHub Recommended
- Creating repos under both users and orgs is supported
- See GitHub Org Limitations for details about template features excluded for Orgs
- Azure DevOps
- See Azure DevOps Limitations for details about features missing for AzDO
Support for Public (Open-Source) and Private (Closed-Source) Repositories
This template fully supports both public/open-source and private/closed-source repositories. See Public vs Private Repos for the difference.
Support for Existing Projects
Postmodern templates are designed to allow either the creation of new templates from scratch or adoption for existing projects with existing code repos.
Support for Template Updates
Keeping projects in sync with their parent template is a core feature of Copier, and this template will deploy a GitHub Actions Workflow/Azure DevOps Pipeline that will automate the update process.
Support for Child/Recursive Templates
It is highly encouraged for you to take this template and make your own child template that meets your needs. Your child template can (optionally) receive updates from this template.
Repository Management
- Creation of new repos and branches
- Setting of repo settings & branch protection rules
- Creation of useful non-default issue labels:
awaiting pr
andblocked
- Contributor management and crediting via All Contributors
- Dependency updates via Renovate
- Scheduled checks for updates from parent template
Code Management and Formatting
- Automatic, repository-local dev tool installation via mise
- Automatic code linting and formatting via pre-commit:
- Commit message linting via committed
- GitHub Actions linting via actionlint
- Markdown linting via mado
- Python linting and formatting via Ruff
- Spell checking via typos
- TOML linting and formatting via Taplo
- YAML linting via yamllint
CI/CD
- Version number calculation, Changelog updating, releasing, and tagging via Release Please
- Simple/example release workflow via GitHub Actions
Support Files
.gitignore
, set to ignore macOS.DS_Store
files and WindowsThumbs.db
filesCODE_OF_CONDUCT.md
, derived from The Contributor CovenantCONTRIBUTING.md
, designed help novices to make their first contributionLICENSE
, a copy of the MIT LicenseREADME.md
, designed for general products