Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding maintainers to opensearch-project. #59

Merged
merged 29 commits into from
Apr 13, 2022
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
978e48c
Proposal: adding maintainers to opensearch-project.
dblock Mar 29, 2022
ec22ee3
Removed link to ADMINS.md, it's misleading because it's only in this …
dblock Mar 29, 2022
f97e0e3
Fix: typo.
dblock Mar 30, 2022
5ce9ebb
Added deliberate harmful actions.
dblock Mar 30, 2022
6f9ba7e
Added a note on less than 3 maintainers.
dblock Mar 30, 2022
b5a58c0
Replaced repo owner by admin.
dblock Mar 30, 2022
ff9c5c5
Consistently lowercase repo admin.
dblock Mar 30, 2022
609a79e
Adding a New Maintainer.
dblock Mar 30, 2022
4e9091f
Properly reflect that a nomation happened already.
dblock Mar 31, 2022
98858f2
Use a pull request instead of an additional issue.
dblock Mar 31, 2022
f4e8ba2
Remove an individual from the nomination example.
dblock Mar 31, 2022
7acc925
Linked admin responsibilities.
dblock Mar 31, 2022
7fd6c11
Document that the maintainer needs to reengage, not just intend to.
dblock Apr 1, 2022
b5d0835
One week to several weeks.
dblock Apr 5, 2022
f2e5328
Proposal and vote.
dblock Apr 5, 2022
6247990
Clarified the public aspect of the revote.
dblock Apr 5, 2022
ab99c7a
Don't be so prescriptive about inactivity.
dblock Apr 7, 2022
5e5316d
Replace that the account is not deactivated.
dblock Apr 7, 2022
9387240
Rollup changes.
dblock Apr 7, 2022
0851f1d
Minor language updates based on feedback.
dblock Apr 8, 2022
6947878
Remove public wait discussion period.
dblock Apr 8, 2022
6d68d52
Maintainers will be removed for violating code of coduct.
dblock Apr 8, 2022
9580d11
Updated engagement details.
dblock Apr 8, 2022
6a1fc43
Fix: duplicate message.
dblock Apr 8, 2022
7323884
Keep the ask private.
dblock Apr 11, 2022
a67ba9e
remove two week maximum
nknize Apr 12, 2022
0d79006
remove cr
nknize Apr 12, 2022
0e23acb
Use +1 / -1 everywhere.
dblock Apr 12, 2022
fed9887
Remove potential nominee.
dblock Apr 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions ADMINS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
- [Overview](#overview)
- [Current Admins](#current-admins)
- [Admin Responsibilities](#admin-responsibilities)
- [Prioritize Security](#prioritize-security)
- [Enforce Code of Conduct](#enforce-code-of-conduct)
- [Add/Remove Maintainers](#addremove-maintainers)
- [Adopt Organizational Best Practices](#adopt-organizational-best-practices)

## Overview

This document explains who the admins are (see below), what they do in this repo, and how they should be doing it. If you're interested in becoming a maintainer, see [MAINTAINERS](MAINTAINERS.md). If you're interested in contributing, see [CONTRIBUTING](CONTRIBUTING.md).
Expand All @@ -22,6 +30,10 @@ Note that this repository is monitored and supported 24/7 by Amazon Security, se

Act on [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) violations by revoking access, and blocking malicious actors.

### Add/Remove Maintainers

Perform administrative tasks, such as [adding](MAINTAINERS.md#adding-a-new-maintainer) and [removing maintainers](MAINTAINERS.md#removing-a-maintainer).

### Adopt Organizational Best Practices

Adopt organizational best practices, work in the open, and collaborate with other admins by opening issues before making process changes. Prefer consistency, and avoid diverging from practices in the opensearch-project organization.
76 changes: 72 additions & 4 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,23 @@
- [Triage Open Issues](#triage-open-issues)
- [Be Responsive](#be-responsive)
- [Maintain Overall Health of the Repo](#maintain-overall-health-of-the-repo)
- [Add Continious Integration Checks](#add-continious-integration-checks)
- [Add Continuous Integration Checks](#add-continuous-integration-checks)
- [Developer Certificate of Origin Workflow](#developer-certificate-of-origin-workflow)
- [Use Semver](#use-semver)
- [Release Frequently](#release-frequently)
- [Promote Other Maintainers](#promote-other-maintainers)
- [Describe the Repo](#describe-the-repo)

- [Becoming a Maintainer](#becoming-a-maintainer)
- [Nomination](#nomination)
- [Interest](#interest)
- [Public Confirmation](#public-confirmation)
- [Maintainer Decision](#maintainer-decision)
- [Adding a New Maintainer](#adding-a-new-maintainer)
- [Removing a Maintainer](#removing-a-maintainer)
- [Moving On](#moving-on)
- [Inactivity](#inactivity)
- [Negative Impact on the Project](#negative-impact-on-the-project)

dblock marked this conversation as resolved.
Show resolved Hide resolved
## Overview

This document explains who the maintainers are (see below), what they do in this repo, and how they should be doing it. If you're interested in contributing, see [CONTRIBUTING](CONTRIBUTING.md).
Expand Down Expand Up @@ -59,7 +69,7 @@ Respond to enhancement requests, and forum posts. Allocate time to reviewing and

Keep the `main` branch at production quality at all times. Backport features as needed. Cut release branches and tags to enable future patches.

### Add Continious Integration Checks
### Add Continuous Integration Checks

Add integration checks that validate pull requests and pushes to ease the burden on Pull Request reviewers.

Expand All @@ -77,8 +87,66 @@ Make frequent project releases to the community.

### Promote Other Maintainers

Assist, add, and remove [MAINTAINERS](MAINTAINERS.md). Exercise good judgement, and propose high quality contributors to become co-maintainers.
Assist, add, and remove [MAINTAINERS](MAINTAINERS.md). Exercise good judgement, and propose high quality contributors to become co-maintainers. See [Becoming a Maintainer](#becoming-a-maintainer) for more information.

### Describe the Repo

Make sure the repo has a well-written, accurate, and complete description. See [opensearch-project/.github#38](https://github.com/opensearch-project/.github/issues/38) for some helpful tips to describe your repo.

## Becoming a Maintainer

You can become a maintainer by actively [contributing](CONTRIBUTING.md) to any project, and being nominated by an existing maintainer.
dblock marked this conversation as resolved.
Show resolved Hide resolved

### Nomination

Any current maintainer starts an e-mail thread (until we have a better mechanism, e-mails can usually be found via MAINTAINERS.md + DCO) with all other maintainers on that repository to discuss nomination using the template below. In order to be approved, at least 3 positive maintainer votes are necessary, and no vetoes. In rare cases when there are less than 3 maintainers, the positive votes from all maintainers are required. Any disagreements can be escalated to the repo admin.
dblock marked this conversation as resolved.
Show resolved Hide resolved

The nomination should clearly identify the person with their real name and a link to their GitHub profile, and the rationale for the nomination, with concrete example contributions.

### Interest

Upon receiving at least 3 positive maintainer votes, and no vetoes, from other maintainers within a maximum period of 2 weeks, the nominating maintainer asks a potential nominee whether they might be interested in becoming a maintainer on the repository, which typically happens via e-mail obtained via DCO, but may also be a comment to a pull request, following a substantial contribution.
dblock marked this conversation as resolved.
Show resolved Hide resolved

> This is great work! Based on your ongoing contributions to the project we have decided that we'd like to invite you to become a co-maintainer for this project. Please let us know whether you accept this nomination.
dblock marked this conversation as resolved.
Show resolved Hide resolved

Individuals accept the nomination by replying, or commenting, for example _"Thank you! I would love to."_
dblock marked this conversation as resolved.
Show resolved Hide resolved

### Public Confirmation

Upon receiving 3 positive maintainer votes, and no vetoes, from other maintainers, and after having confirmed interest with the nominee, the maintainer opens a pull request adding the proposed co-maintainer to MAINTAINERS.md. This makes the vote visible to the community.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is required to approve the PR after two weeks? Also, what should maintainers do with any feedback they receive from the public? I take it that the maintainers still decide - they just have other opinions to consider. But, I think some clarity could be helpful here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have any proposed language?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ask in part because I'm not sure what the exit requirements are here.

But, I'll give is a stab based on what I've gathered. If I understand what the overall process correctly, I'd modify the "Maintainer Decision" section as follows:

At the end of two weeks, the maintainers will perform a final vote similar to the nomination process. If the nomination still has three positive votes, and no vetoes, from other maintainers, the nomination is accepted. The positive maintainer voters should approve the PR to show support. The PR may be merged with only one approver.

If the maintainers cannot reach a positive decision for any reason, the nomination is rejected with "a decision could not be reached" with no further explanation necessary, and the pull request is closed.

Copy link
Member Author

@dblock dblock Apr 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I see, this is clearer. Check out 6247990, I used most of your language.

dblock marked this conversation as resolved.
Show resolved Hide resolved

> _Content from the above nomination._
>
> Here is my +1.
>
> If you support this nomination, please add your +1 or a comment.
>
> If you do not support this nomination, we invite you to e-mail all/some of the current [project maintainers](https://github.com/opensearch-project/OpenSearch/blob/main/MAINTAINERS.md) in the next 2 weeks. We will keep your feedback private to this group and discuss offline. We will not publicly post the reasons for a decision not to add this co-maintainer, or publicize your name.
dblock marked this conversation as resolved.
Show resolved Hide resolved
>
> Anyone, including maintainers, can publicly add +1s as requested in the nomination issue if they support the nomination or contact the maintainers in private if they oppose. The pull request stays open for 2 weeks.

### Maintainer Decision

If a positive decision has been reached, the nomination is accepted. If a decision cannot be reached for any reason, the nomination is rejected with _"a decision could not be reached"_ with no further explanation necessary, and the pull request is closed.

### Adding a New Maintainer

The repo admin adjusts the new maintainer’s permissions accordingly, and merges the pull request to MAINTAINERS.md.

## Removing a Maintainer

Removing a maintainer is a disruptive action that the community of maintainers should not undertake lightly. There are several reasons a maintainer might be removed from the project, such as inactivity, or taking actions that negatively impact the project.
dblock marked this conversation as resolved.
Show resolved Hide resolved
dblock marked this conversation as resolved.
Show resolved Hide resolved

### Moving On

There are plenty of reasons that might cause someone to want to take a step back or even a hiatus from a project. Existing maintainers can choose to leave the project at any time, with or without reason, by making a pull request to move themselves to the "Emeritus" section of MAINTAINERS.md, and asking an admin to remove their permissions.

### Inactivity
dblock marked this conversation as resolved.
Show resolved Hide resolved

If the maintainers on the project notice that another maintainer is no longer an active or visible member of the community, the first step will be to tell the repo admin to contact the inactive maintainer to check-in. If the inactive maintainer responds and reengages, no action is required. If the maintainer does not respond after a week, or indicates they no longer wish to be a maintainer, the repo admin can remove the inactive maintainer’s permissions and make a pull request to add them to the "Emeritus" section of the MAINTAINERS.md.
dblock marked this conversation as resolved.
Show resolved Hide resolved

If the repo is left without any maintainers, either by maintainer inactivity or moving on, the repo is considered unmaintained. The repo admin will seek out new maintainers and note the maintenance status in the repo README file.
dblock marked this conversation as resolved.
Show resolved Hide resolved

### Negative Impact on the Project
dblock marked this conversation as resolved.
Show resolved Hide resolved

Actions that negatively impact the project will be handled by the admins, in coordination with other maintainers, in balance with the urgency of the issue. Examples would be [Code of Conduct](CODE_OF_CONDUCT.md) violations, deliberate harmful actions, and security risks.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we have some clarity for what maintainers should do if they believe that another maintainer is having a negative impact on the project? A repo admin may not be as aware of any such violations as other maintainers.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We used to have prescriptive text about that a maintainer needs to email other maintainers and the admin, but it became very specific and not very effective in all cases. There were all these edges where it just wouldn't work, so I prefer to keep this general for now.

dblock marked this conversation as resolved.
Show resolved Hide resolved