Skip to main content

📄 Checklist for new repo creation (#293)

TODO

The file needs content for the H1 section.

Intro

Any contributor may create a new repo in the organization, and it's up to their judgment to decide on the name and details. When creating a new repo, it's advisable to ask other team members for a sanity check. The repo details should be carefully considered, but they are ultimately at the discretion of the creator and depend on the repo's use case.

Initially, Api3 was quite open with its repositories, but nowadays we tend to protect our intellectual property (IP) more and keep repos private. Certain use cases, such as repos for public docs, should always be public.

Generic check

  • Create a repository on GitHub.
  • Grant permissions to the relevant team members.
  • Grant write permissions to the appropriate team members.
  • Set up branch protection rules to secure the main branch. This is required even if there are no tests to run, because GitHub prevents force pushes to protected branches.
  • Maintain the proper Api3 standards for the repository, depending on the type of repository (see checklists below).
  • Populate README.md with essential high-level information about the project.
  • Add the repository to the actively maintained repositories table, defining the "Dependencies Owner" and the "Code Owner".
  • (If applicable) Add the repository to the appropriate GitHub board.
  • Add the relevant license file (LICENSE.md), consistent with the organizational standards or project requirements. By default, the repo should be unlicensed to prevent anyone from using it in case of a leak.
  • (If applicable) Initialize a CONTRIBUTING.md file with guidelines for contributions if the project is open to the general public.
  • Set up CI/CD and enforce it for all PRs.

JS/TS repository

  • Set up Renovate by following the guidelines outlined in dependency-management-strategy.md.
  • Use the recommended package manager as described in actively maintained repositories.
  • Add standard configuration files (e.g. eslint, typescript, prettier) in line with our standards and existing repositories.
  • Set up ESLint and Prettier.

Owner: UNKNOWN