Skip to content

Governance Template

The SemRels governance template repository provides the baseline governance, compliance, and repository-health files used across SemRels projects.

Use it when you create a new repository or when you need to align an existing repository with the SemRels governance baseline.

Governance files

GOVERNANCE.md, MAINTAINERS.md, SECURITY.md, CONTRIBUTING.md, and CODE_OF_CONDUCT.md establish project expectations and ownership.

Licensing

LICENSE, LICENSES/, and .reuse/dep5 provide the Apache-2.0 and REUSE compliance baseline.

GitHub hygiene

Workflow templates, issue templates, CODEOWNERS, and pull request templates help keep new repositories reviewable and maintainable.

Every SemRels repository should include these files:

  • LICENSE
  • LICENSES/Apache-2.0.txt
  • .reuse/dep5
  • SECURITY.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md

For core and multi-plugin repositories, also treat the following as required:

  • GOVERNANCE.md
  • MAINTAINERS.md
  • .github/workflows/scorecard.yml
  • .github/workflows/reuse.yml

How to use the template in a new repository

Section titled “How to use the template in a new repository”
  1. Copy the baseline files

    Start from SemRels/semrel-template and copy the files that match your repository type.

  2. Replace placeholders

    Update values such as {{PROJECT_NAME}}, {{ORG_NAME}}, {{REPO_NAME}}, {{REPO_URL}}, and {{DEFAULT_BRANCH}}.

  3. Enable the workflows you need

    Choose the CI, Scorecard, CodeQL, DCO, and REUSE workflow templates that fit your repository.

  4. Run compliance checks

    Validate the repository locally where possible before opening your bootstrap pull request.

  5. Protect main

    After merging, enable branch protection and required status checks for the new governance workflows.

SemRels repositories use REUSE to keep licensing metadata machine-readable.

A compliant repository usually includes:

  • a top-level LICENSE
  • the referenced license text in LICENSES/
  • .reuse/dep5 mappings for file-level metadata where needed
  • SPDX headers in source files when appropriate

Run the REUSE linter locally:

Terminal window
reuse lint
TypeUse caseBaseline
CoreMain SemRels projects such as semrelFull governance, DCO, REUSE, CI, CodeQL, Scorecard
Plugin collectionMulti-plugin repositoriesFull governance, REUSE, CI, Scorecard
Single pluginOne plugin per repositoryMinimal governance, REUSE, light CI
DocumentationDocs or specification repositoriesGovernance, REUSE, docs-focused CI