Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 3.21 KB

maintainers_guide.md

File metadata and controls

69 lines (46 loc) · 3.21 KB

Maintainers Guide

This document describes tools, tasks and workflow that one needs to be familiar with in order to effectively maintain this project. If you use this package within your own software as is but don't plan on modifying it, this guide is not for you.

Tools (optional)

Are there any build tools, dependencies, or other programs someone maintaining this project needs to be familiar with?

Tasks

Testing

How do you run the tests?

Generating Documentation (optional)

If the documentation is generated from source, how does someone run the generation? Are the docs published on a website (GitHub Pages)?

Releasing

A description of the process to make a release for this project. Do not share any secrets here.

Workflow

Versioning and Tags

Does this project use semver? What does the numbering system look like? Are releases tagged in git?

Branches

Describe any specific branching workflow. For example: master is where active development occurs. Long running branches named feature branches are occasionally created for collaboration on a feature that has a large scope (because everyone cannot push commits to another person's open Pull Request) At some point in the future after a major version increment, there may be maintenance branches for older major versions.

Issue Management

Labels are used to run issues through an organized workflow. Here are the basic definitions:

  • bug: A confirmed bug report. A bug is considered confirmed when reproduction steps have been documented and the issue has been reproduced.
  • enhancement: A feature request for something this package might not already do.
  • docs: An issue that is purely about documentation work.
  • tests: An issue that is purely about testing work.
  • needs feedback: An issue that may have claimed to be a bug but was not reproducible, or was otherwise missing some information.
  • discussion: An issue that is purely meant to hold a discussion. Typically the maintainers are looking for feedback in this issues.
  • question: An issue that is like a support request because the user's usage was not correct.
  • semver:major|minor|patch: Metadata about how resolving this issue would affect the version number.
  • security: An issue that has special consideration for security reasons.
  • good first contribution: An issue that has a well-defined relatively-small scope, with clear expectations. It helps when the testing approach is also known.
  • duplicate: An issue that is functionally the same as another issue. Apply this only if you've linked the other issue by number.

You may want to add more labels for subsystems of your project, depending on how complex it is.

Triage is the process of taking new issues that aren't yet "seen" and marking them with a basic level of information with labels. An issue should have one of the following labels applied: bug, enhancement, question, needs feedback, docs, tests, or discussion.

Issues are closed when a resolution has been reached. If for any reason a closed issue seems relevant once again, reopening is great and better than creating a duplicate issue.

Everything else

When in doubt, find the other maintainers and ask.