Skip to content

Getting Started

Documentation is currently being improved, but here is the short version to use this template:

  1. Ensure you have mise installed on your workstation (Linux/macOS/Windows are all supported).
  2. Clone this repository and open it in your terminal
  3. Run the following to install needed dependencies to use the template:
mise trust
mise install
  1. Run the following to create the template, making sure set the path at the end as appropriate
mise x -- copier copy --trust https://github.com/natescherer/pm-repo-int ~/local-repo-path-here

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 and blocked
  • 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 Windows Thumbs.db files
  • CODE_OF_CONDUCT.md, derived from The Contributor Covenant
  • CONTRIBUTING.md, designed help novices to make their first contribution
  • LICENSE, a copy of the MIT License
  • README.md, designed for general products