2017-12-27 00:47:36 +00:00
|
|
|
|
# Maintainer's guide
|
|
|
|
|
|
|
|
|
|
The following guidelines are meant to provide a general basis
|
2018-01-17 00:22:45 +00:00
|
|
|
|
for the behavior expected of tldr-pages maintainers.
|
|
|
|
|
|
|
|
|
|
*Note:* This text is a living standard;
|
|
|
|
|
that is, it is meant to *describe* the project's maintenance practices,
|
|
|
|
|
rather than *prescribe* them.
|
|
|
|
|
As a maintainer, you're expected to refer to it for clarifications
|
|
|
|
|
about the collaborative workflows of the project,
|
|
|
|
|
but also to propose changes to it
|
|
|
|
|
that you feel would make it more useful
|
|
|
|
|
as a guideline for current and future maintainers.
|
2017-12-27 00:47:36 +00:00
|
|
|
|
|
2018-01-17 00:15:17 +00:00
|
|
|
|
## I. Responding to contributions
|
|
|
|
|
|
2017-12-27 00:47:36 +00:00
|
|
|
|
- When responding to issues or pull requests,
|
|
|
|
|
remember that you're temporarily the face of the tldr-pages project.
|
|
|
|
|
**Be welcoming and friendly**, and if you don't know how to answer,
|
|
|
|
|
ping other maintainers who you think might have a say.
|
|
|
|
|
|
2018-01-17 00:19:01 +00:00
|
|
|
|
- **Help keep the project responsive**.
|
|
|
|
|
New discussion threads (issues or pull requests)
|
|
|
|
|
should receive a response within 3 days, ideally.
|
2018-01-09 09:54:19 +00:00
|
|
|
|
You can respond yourself
|
|
|
|
|
or ask other members to provide their thoughts/opinions.
|
2018-01-17 00:19:55 +00:00
|
|
|
|
In addition, if possible, try to hang around in the
|
|
|
|
|
[Gitter chat room](https://gitter.im/tldr-pages/tldr)
|
|
|
|
|
on a regular basis as well, or at least show up every now and then.
|
2017-12-27 00:47:36 +00:00
|
|
|
|
|
|
|
|
|
- **Know when and how to say no**.
|
2018-01-09 09:54:19 +00:00
|
|
|
|
Sometimes requests or contributions need to be declined,
|
|
|
|
|
at least in their current form.
|
2017-12-27 00:47:36 +00:00
|
|
|
|
The project has developed multiple guidelines over time to handle edge cases
|
|
|
|
|
— get acquainted with them, and point them out when necessary.
|
2018-01-09 09:54:19 +00:00
|
|
|
|
Be polite, but firm: it saves everyone's time and patience
|
|
|
|
|
to make expectations clear early.
|
2017-12-27 00:47:36 +00:00
|
|
|
|
|
|
|
|
|
- Always remember to **thank every contribution**,
|
|
|
|
|
even when it can't be accepted (in fact, especially then).
|
2018-01-09 09:54:19 +00:00
|
|
|
|
Keep in mind that
|
|
|
|
|
[every form of contribution](https://github.com/kentcdodds/all-contributors)
|
2017-12-27 00:47:36 +00:00
|
|
|
|
(pull request, feature request, bug report, etc.)
|
2020-05-11 00:23:54 +01:00
|
|
|
|
is a voluntary gift of time offered to the tldr-pages project
|
2018-01-09 09:54:19 +00:00
|
|
|
|
by someone who cares about it,
|
2018-01-17 00:19:01 +00:00
|
|
|
|
so make sure it's clear that that we don't take it for granted.
|
2018-01-17 00:15:17 +00:00
|
|
|
|
|
2018-01-17 00:19:55 +00:00
|
|
|
|
- Try to **keep the entire contribution process web-based**, if possible,
|
|
|
|
|
to ensure it is accessible and straightforward.
|
|
|
|
|
If you're comfortable with git, consider offering to perform
|
|
|
|
|
interactive rebases or other command-line operations
|
|
|
|
|
on behalf of contributors,
|
|
|
|
|
or assisting them if they want to do it themselves.
|
|
|
|
|
|
2018-01-17 00:15:17 +00:00
|
|
|
|
## II. Handling PRs
|
|
|
|
|
|
2018-01-28 23:21:38 +00:00
|
|
|
|
- PRs should be merged once they
|
2020-06-09 11:32:38 +01:00
|
|
|
|
(1) **pass the automated tests** (GitHub Actions, CLA signing, etc.),
|
2018-01-17 00:21:38 +00:00
|
|
|
|
(2) have the **review comments addressed**, and
|
|
|
|
|
(3) get **approved reviews by two maintainers**
|
|
|
|
|
(the second maintainer can perform the merge immediately after accepting.)
|
|
|
|
|
|
|
|
|
|
- If a PR fails to get a review from a second maintainer after a few days,
|
|
|
|
|
the first maintainer should ping others for review. If it still lingers around
|
|
|
|
|
for **over a week without a second maintainer’s approval**,
|
|
|
|
|
the first maintainer can go ahead and merge it.
|
|
|
|
|
|
|
|
|
|
- If the only issues holding up a merge are **trivial fixes**
|
|
|
|
|
(typos, syntax errors, etc.), and the author doesn't respond in a day or two,
|
|
|
|
|
**maintainers can make the necessary changes themselves**,
|
|
|
|
|
and proceed with the merge process.
|
|
|
|
|
|
|
|
|
|
- If a PR **stops getting feedback from the submitter** and is marked as stale
|
|
|
|
|
by [probot-stale](../.github/stale.yml),
|
|
|
|
|
any maintainer can choose to take over the PR
|
|
|
|
|
and make the necessary changes to get the content ready for merging.
|
|
|
|
|
|
|
|
|
|
- During the review process, make sure that contributors, especially new ones,
|
|
|
|
|
are not **overwhelmed with too many change requests**.
|
|
|
|
|
Be mindful of signs of fatigue (less enthusiastic responses, slower reactions),
|
|
|
|
|
and relax review standards if necessary — minor issues can always be fixed later.
|
|
|
|
|
|
2021-01-07 14:06:38 +00:00
|
|
|
|
- When merging PRs, use the **merge strategy that produces a clean Git history**:
|
2018-01-17 00:19:01 +00:00
|
|
|
|
If there's a single commit in the PR,
|
|
|
|
|
or if the multiple commits are not semantically independent changes,
|
|
|
|
|
use the `Squash and merge` method.
|
2018-01-28 23:15:50 +00:00
|
|
|
|
(Don't forget to clean up the body of the squashed commit message.)
|
|
|
|
|
If instead the PR author took the time to craft
|
2018-01-17 00:19:01 +00:00
|
|
|
|
individual, informative messages for each commit,
|
2018-01-28 23:15:50 +00:00
|
|
|
|
then use the `Rebase and merge` method,
|
2018-01-17 00:19:01 +00:00
|
|
|
|
to honor that work and preserve the history of the changes.
|
|
|
|
|
For less clear-cut cases, a simple heuristic you can follow
|
|
|
|
|
is that if there are more "dirty" commits than "clean" commits,
|
|
|
|
|
then prefer squash, else do a rebase.
|
|
|
|
|
|
|
|
|
|
- Although having push access allows committing directly to the repository,
|
2018-01-17 00:15:17 +00:00
|
|
|
|
please **create pull requests for all of your changes**,
|
|
|
|
|
except the simplest ones (e.g. typo fixes).
|
2018-01-17 00:19:01 +00:00
|
|
|
|
This ensures that the entire process that regular contributors go through
|
|
|
|
|
is also exposed to maintainers,
|
2018-01-17 00:15:17 +00:00
|
|
|
|
who can then identify and address bottlenecks or inconveniences.
|
2018-01-17 00:19:01 +00:00
|
|
|
|
Similarly, **avoid merging your own PRs** unless approved by other maintainers.
|