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.
2023-10-13 00:26:58 +01:00
> [!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 clarification
> 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
2023-03-27 06:14:21 +01:00
[Matrix chat room ](https://matrix.to/#/#tldr-pages:matrix.org )
2023-10-10 04:42:01 +01:00
regularly 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
2023-10-10 04:42:01 +01:00
[every form of contribution ](https://github.com/all-contributors/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,
2023-08-30 14:20:03 +01:00
so make sure it's clear 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.
2021-10-01 20:22:50 +01:00
If you're comfortable with Git, consider offering to perform
2018-01-17 00:19:55 +00:00
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.),
2021-10-21 08:16:17 +01:00
(2) have the **review comments addressed** ,
(3) get **approved reviews by two maintainers** , (the second maintainer can merge immediately after approving) and
(4) have been open for at least **24 hours** unless the changes are trivial
2018-01-17 00:21:38 +00:00
- 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** ,
2023-10-10 04:42:01 +01:00
the first maintainer (if Owner) can go ahead and merge it. Otherwise, a message
can be sent in the chatroom asking other maintainers to review the PR.
2018-01-17 00:21:38 +00:00
- 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.
2023-10-10 04:42:01 +01:00
- If a PR **stops getting feedback from the submitter** for more than a month,
2018-01-17 00:21:38 +00:00
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.)
2023-10-10 04:42:01 +01:00
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.
2023-10-10 04:42:01 +01:00
- Although having push access allows committing directly to the repository to all branches (except main),
please **create pull requests for all of your changes** .
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.
2023-10-10 04:42:01 +01:00
- At the last week of October, all applicable PRs that wouldn't get merged
in time can be labeled as `hacktoberfest-accepted` .
## III. Transparency
- All non-confidential requests/mail made/sent on behalf of the project
should be documented as an issue with the [archive ](https://github.com/tldr-pages/tldr/issues?q=label%3Aarchive ) label
and must be communicated with other maintainers.
- All repository/organization settings changes must be documented as an issue with the [archive ](https://github.com/tldr-pages/tldr/issues?q=label%3Aarchive ) label.