2016-07-20 19:42:08 +02:00
# Repository Maintainers
2016-07-20 00:18:10 +02:00
2016-08-03 20:06:36 +02:00
Repository Maintainers are trusted stewards of the PowerShell repository responsible for maintaining consistency and quality of PowerShell code.
One of their primary responsibilities is merging pull requests after all requirements have been fulfilled.
2016-07-20 00:18:10 +02:00
2016-08-19 18:09:12 +02:00
They have [write access ](https://help.github.com/articles/repository-permission-levels-for-an-organization/ ) to the PowerShell repositories which gives them the power to:
2016-07-20 00:18:10 +02:00
2016-08-03 20:06:36 +02:00
1. `git push` to the official PowerShell repository
2017-07-12 01:15:11 +02:00
1. Merge pull requests
1. Assign labels, milestones, and people to [issues ](https://guides.github.com/features/issues/ )
2016-07-20 00:18:10 +02:00
## Table of Contents
2017-07-12 01:15:11 +02:00
2016-08-03 20:06:36 +02:00
- [Current Repository Maintainers ](#current-repository-maintainers )
- [Repository Maintainer Responsibilities ](#repository-maintainer-responsibilities )
2016-07-20 00:18:10 +02:00
- [Issue Management Process ](#issue-management-process )
2016-08-19 18:09:12 +02:00
- [Pull Request Workflow ](#pull-request-workflow )
2017-07-12 01:15:11 +02:00
- [Abandoned Pull Requests ](#abandoned-pull-requests )
2016-08-03 20:06:36 +02:00
- [Becoming a Repository Maintainer ](#becoming-a-repository-maintainer )
2016-07-20 00:18:10 +02:00
2016-08-03 20:06:36 +02:00
## Current Repository Maintainers
2016-07-20 00:18:10 +02:00
2018-07-21 06:31:21 +02:00
- Dongbo Wang ([daxian-dbw](https://github.com/daxian-dbw))
- Travis Plunk ([TravisEz13](https://github.com/TravisEz13))
- Aditya Patwardhan ([adityapatwardhan](https://github.com/adityapatwardhan))
- Ilya Sazonov ([iSazonov](https://github.com/iSazonov))
2019-01-24 00:08:53 +01:00
- Andrew Menagarishvili ([anmenaga](https://github.com/anmenaga))
2016-07-20 00:18:10 +02:00
2018-08-08 21:38:45 +02:00
## Former Repository Maintainers
- Jason Shirk ([lzybkr](https://github.com/lzybkr))
- Sergei Vorobev ([vors](https://github.com/vors))
- Mike Richmond ([mirichmo](https://github.com/mirichmo))
- Andy Schwartzmeyer ([andschwa](https://github.com/andschwa))
2016-08-03 20:06:36 +02:00
## Repository Maintainer Responsibilities
2016-07-20 00:18:10 +02:00
2017-04-11 18:44:43 +02:00
Repository Maintainers enable rapid contributions while maintaining a high level of quality in PowerShell by ensuring that all development processes are being followed correctly.
2016-08-03 20:06:36 +02:00
If you are a Repository Maintainer, you:
2017-04-11 18:44:43 +02:00
1. **MUST** ensure that each contributor has signed a valid Contributor License Agreement (CLA)
2016-08-03 20:06:36 +02:00
1. **MUST** verify compliance with any third party code license terms (e.g., requiring attribution, etc.) if the contribution contains third party code.
2016-08-19 18:09:12 +02:00
1. **MUST** make sure that [any change requiring approval from the PowerShell Committee ](../community/governance.md#changes-that-require-an-rfc ) has gone through the proper [RFC][RFC-repo] or approval process
2016-08-03 20:06:36 +02:00
1. **MUST** validate that code reviews have been conducted before merging a pull request when no code is written
1. **MUST** validate that tests and documentation have been written before merging a pull request that contains new functionality
1. **SHOULD** add [the correct labels][issue-management] to issues and pull requests
2016-08-19 18:09:12 +02:00
1. **SHOULD** make sure the correct [Area Experts ](../community/governance.md#area-experts ) are assigned to relevant pull requests and issues.
2017-07-12 01:15:11 +02:00
This includes adding extra reviewers when it makes sense
(e.g. a pull request that adds remoting capabilities might require a security expert)
2017-04-11 18:44:43 +02:00
1. **SHOULD** validate that the names and email addresses in the git commits reasonably match identity of the person submitting the pull request
2016-08-03 20:06:36 +02:00
1. **SHOULD** make sure contributors are following the [contributor guidelines][CONTRIBUTING]
1. **SHOULD** ask people to resend a pull request, if it [doesn't target `master` ](../../.github/CONTRIBUTING.md#lifecycle-of-a-pull-request )
2017-04-11 18:44:43 +02:00
1. **SHOULD** wait for the [CI system][ci-system] build to pass for pull requests
2017-07-12 01:15:11 +02:00
(unless, for instance, the pull request is being submitted to fix broken CI)
2016-08-15 05:19:20 +02:00
1. **SHOULD** encourage contributors to refer to issues in their pull request description (e.g. `Resolves issue #123` ).
2017-07-12 01:15:11 +02:00
If a user did not create an issue prior to submitting their pull request, their pull request should not be rejected.
However, they should be reminded to create an issue in the future to frontload any potential problems with the work and to minimize duplication of efforts.
2016-08-03 20:06:36 +02:00
1. **SHOULD** encourage contributors to create meaningful titles for all PRs.
2017-07-12 01:15:11 +02:00
Edit the title if necessary to provide clarity on the problem
2018-07-28 02:29:07 +02:00
1. **SHOULD** encourage contributors to write meaningful, descriptive git commits
2016-08-03 20:06:36 +02:00
1. **SHOULD NOT** merge pull requests with a failed CI build
2017-07-12 01:15:11 +02:00
(unless, for instance, the pull request is being submitted to fix broken CI)
2019-01-24 20:46:51 +01:00
1. **SHOULD NOT** merge pull requests without the status check passing from the Microsoft CLA bot
2017-07-12 01:15:11 +02:00
(unless the CLA bot is broken, and CLA signing can be confirmed through other means)
2016-08-03 20:06:36 +02:00
1. **SHOULD NOT** merge pull requests too quickly after they're submitted.
2017-07-12 01:15:11 +02:00
Even if the pull request meets all the requirements, people should have time to give their input
(unless the pull request is particularly urgent for some reason)
2016-08-03 20:06:36 +02:00
1. **SHOULD NOT** merge your own pull requests.
2017-07-12 01:15:11 +02:00
If a Repository Maintainer opens a pull request, another Maintainer should merge it unless there are extreme, short-term circumstances requiring a merge or another Maintainer has given explicit sign-off without merging
2016-07-20 00:18:10 +02:00
## Issue Management Process
2016-08-03 20:06:36 +02:00
Please see [Issue Management][issue-management]
2016-07-20 00:18:10 +02:00
## Pull Request Workflow
2016-08-03 20:06:36 +02:00
2017-09-04 19:29:20 +02:00
Please see [Contributing][CONTRIBUTING]
2016-07-20 00:18:10 +02:00
2018-07-21 06:31:21 +02:00
## Maintainer Best Practices
Please see [Best Practices][best-practice]
2016-08-03 20:06:36 +02:00
## Becoming a Repository Maintainer
2017-07-22 06:10:15 +02:00
Repository Maintainers currently consist mostly of Microsoft employees.
2016-08-03 20:06:36 +02:00
It is expected that over time, regular trusted contributors to the PowerShell repository will be made Repository Maintainers.
2017-07-22 06:10:15 +02:00
Eligibility is heavily dependent on the level of contribution and expertise: individuals who contribute consistently in meaningful ways to the project will be recognized accordingly.
2016-08-03 20:06:36 +02:00
2017-07-22 06:10:15 +02:00
At any point in time, the existing Repository Maintainers can unanimously nominate a strong community member to become a Repository Maintainer.
Nominations are brought to the PowerShell Committee to understand the reasons and justification.
A simple majority of the PowerShell Committee is required to veto the nomination.
2018-07-28 02:29:07 +02:00
When a nominee has been approved, a PR will be submitted by a current Maintainer to update this document to add the nominee's name to
2017-07-22 06:10:15 +02:00
the [Current Repository Maintainers ](#Current-Repository-Maintainers ) with justification as the description of the PR to serve as the public announcement.
2016-08-03 20:06:36 +02:00
[RFC-repo]: https://github.com/PowerShell/PowerShell-RFC
2016-07-20 00:18:10 +02:00
[ci-system]: ../testing-guidelines/testing-guidelines.md#ci-system
2016-08-03 20:06:36 +02:00
[issue-management]: issue-management.md
2017-07-22 06:10:15 +02:00
[CONTRIBUTING]: ../../.github/CONTRIBUTING.md
2018-07-21 06:31:21 +02:00
[best-practice]: best-practice.md