Thanks everyone for all the feedback. Here is version 2 of the proposal based on that feedback. I hope this will get us closer to a consensus.
Changes from v1
- Clarified which repositories this applies to.
- Kept requirement of 10 commits for obtaining commit access, but added that they must be 10 non-trivial commits at the discretion of the approver.
- Dropped the requirement to retain commit access from 10 commits to 5 and also count approving a patch and merging someone else’s patch towards the 5 commit limit.
- Users can ask to keep their commit access even if they are under the limit.
- When commit access is revoked, users will be given the Triage role which lets them retain some permissions for interacting with issues.
- A user who previously had commit access just needs to author one new commit.
Full Proposal
Out of scope
Having a group of people with the authority to grant commit access instead of just @clattner . It seems there is agreement that this should change, but that’s not a goal of this proposal.
Proposed Changes To Gaining/Retaining Commit Access
Relevant Repositories
This proposal applies to the following repositories in the LLVM organization:
- cirt
- llvm-lnt
- llvm-project
- llvm-project-ci-bridge
- llvm-test-suite
- llvm-www
- llvm-zorg
- torch-mlir
- vscode-mlir
Requesting Commit Access
Users will file a GitHub issue requesting commit access. We will have automation that will assign the issue to @clattner and print a summary of the user’s commits in the project.
Requirements For Obtaining Commit Access
In order to be granted commit access, a user must have a total of 10 commits that are deemed to be non-trivial by @clattner or whoever is responsible for approving commit access. The definition of non-trival is up to the discretion of the approver.
Requirements For Retaining Commit Access
In order to retain commit access, a user must have a total of 5 repository ‘activities’ in the last 12 months. These activities can either:
- Pushing a commit.
- Merging a pull request (either their own or someone else’s).
- Approving a PR.
Revoking Commit Access
We will have automation that files a github issue every month which tags any users that don’t meet the threshold for retaining commit access. If a user does not respond to the ticket within a week, their repository role will be changed from Write to Triage. This will remove their commit access but allow them to keep privileges to do other things like:
- Apply/dismiss labels
- Close, reopen, and assign all issues and pull requests
- Apply milestones
- Mark duplicate issues and pull requests
- Request pull request reviews
- Hide anyone’s comments
Re-Applying For Commit Access
In order to re-apply for commit access, a user in with the Triage role must first have a pull request merged into the project and then file a GitHub issue requesting to have their commit access restored.
Other Changes
We will add automation to remind reviewers to merge a PR when they approve one from an author without commit access.