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

Introduce MAINTAINERS.md #1560

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
143 changes: 143 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<!--
******************************************************************************
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*******************************************************************************/-->

# Introduction

This document defines roles in the oneTBB project.

# Roles and responsibilities
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved

oneTBB project defines three main roles:
* [Contributor](#contributor)
* [Code Owner](#code-Owner)
* [Maintainer](#maintainer)

[permissions]: https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#permissions-for-each-role

Copy link
Contributor

Choose a reason for hiding this comment

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

i would make 2 separate sections (responsibilities and roles) with the corresponding tables within

Copy link
Contributor

Choose a reason for hiding this comment

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

and: i would first put the contributor, code owner, and maintainer sections, and after it show the tables with differences

Copy link
Contributor Author

Choose a reason for hiding this comment

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

| | Contributor | Code Owner | Maintainer |
| :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------: | :---------------------: | :---------------------: |
| _Responsibilities_ | | | |
| Follow the Code of Conduct | ✓ | ✓ | ✓ |
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
| Follow Contribution Guidelines | ✓ | ✓ | ✓ |
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
| Enforce Contribution Guidelines | ✗ | ✓ | ✓ |
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider removing the ✗ signs to reduce cluttering.

Suggested change
| Enforce Contribution Guidelines | |||
| Enforce Contribution Guidelines | |||

Copy link
Contributor Author

Choose a reason for hiding this comment

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

| Co-own component or aspect of the library,<br> including contributing: bug fixes, implementing features,<br> and performance optimizations | ✗ | ✓ | ✓ |
| Co-own on technical direction of component or<br> aspect of the library | ✗ | ✗ | ✓ |
Copy link
Contributor

Choose a reason for hiding this comment

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

Code-owners do not co-own technical direction of their specific component?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure if we expect this from the code-owners.

| Co-own the project as a whole,<br> including determining strategy and policy for the project | ✗ | ✗ | ✓ |
| _Privileges_ | | | |
| Permission granted | [Read][permissions] | [Write][permissions] | [Maintain][permissions] |
| Eligible to become | Code Owner | Maintainer | ✗ |
| Can recommend Contributors<br> to become Code Owner | ✗ | ✓ | ✓ |
| Can participate in promotions of<br> Code Owners and Maintainers | ✗ | ✗ | ✓ |
| Can suggest Milestones during planning | ✓ | ✓ | ✓ |
| Can choose Milestones for specific component | ✗ | ✓ | ✓ |
| Choose project's Milestones during planning | ✗ | ✗ | ✓ |
| Can propose new RFC or<br> participate in review of existing RFC | ✓ | ✓ | ✓ |
| Can request rework of RFCs<br> in represented area of responsibility | ✗ | ✓ | ✓ |
| Can request rework of RFCs<br> in any part of the project | ✗ | ✗ | ✓ |
| Can manage release process of the project | ✗ | ✗ | ✓ |
| Can represent the project in public as a Maintainer | ✗ | ✗ | ✓ |

These roles are merit based. Refer to the corresponding section for specific
requirements and the nomination process.

## Contributor

A Contributor invests time and resources to improve oneTBB project.
Anyone can become a Contributor by bringing value in one of the following ways:
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Answer questions from community members.
* Submit feedback to design proposals.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Review and/or test pull requests.
* Test releases and report bugs.
* Contribute code, including bug fixes, features implementations,
and performance optimizations.
* Contribute design proposals.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved

## Code Owner

A Code Owner has responsibility for a specific project component or a functional
area. Code Owners are collectively responsible, with other Code Owners,
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
for developing and maintaining their component or functional areas, including
reviewing all changes to corresponding areas of responsibility and indicating
whether those changes are ready to be merged. Code Owners have a track record of
contribution and review in the project.

Requirements:
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Track record of accepted code contributions to a specific project component.
* Track record of contributions to the code review process.
* Demonstrated in-depth knowledge of the architecture of a specific project
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
component.
* Commits to being responsible for that specific area.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved

The process of becoming a Code Owner is:
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
1. A Contributor is nominated by opening a PR modifying the MAINTAINERS.md file
Copy link
Contributor

Choose a reason for hiding this comment

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

Can a contributor nominate themselves?

Copy link
Contributor

Choose a reason for hiding this comment

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

Can a contributor nominate themselves?

I think it is acceptable.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure.

including name, Github username, and affiliation.
2. At least two specific component Maintainers approve the PR.
Copy link
Contributor

Choose a reason for hiding this comment

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

Well, there is only one Maintainer right now in oneTBB Core component, for example. How is it possible for "at least two" Maintainers to ACK such PR? :)

Copy link
Contributor

Choose a reason for hiding this comment

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

Also it states earlier that Code Owners "participate in promotions of Code Owners", how do they participate if that cannot approve these. I think maybe "specific component Maintainer" -> "Code Owners of that component or Maintainers"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That was an error, code-owners cannot participate in promotion process

3. CODEOWNERS.md file is updated to represent corresponding areas of responsibility.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be MAINTAINERS.md as well instead of a separate file where the areas are recorded?

Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be MAINTAINERS.md as well instead of a separate file where the areas are recorded?

It is possible to use automatic reviewer assignment using CODEOWNERS file - https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#about-code-owners. We probably want to use it feature.

pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved

## Maintainer
Maintainers are the most established contributors who are responsible for the
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
project technical direction and participate in making decisions about the
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
strategy and priorities of the project.

Requirements:
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Experience as a Code Owner.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Track record of major project contributions to a specific project component.
* Demonstrated deep knowledge of a specific project component.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Demonstrated broad knowledge of the project across multiple areas.
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
* Commits to using priviledges responsibly for the good of the project.
* Is able to exercise judgment for the good of the project, independent of
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved
their employer, friends, or team.
Copy link
Contributor

Choose a reason for hiding this comment

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

how it can be measured though?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Perhaps, maintainer would need to present proofs.
I'm not sure how to measure this :)


Process of becoming a maintainer:
1. A Maintainer may nominate a current code owner to become a new Maintainer by
opening a PR against MAINTAINERS.md file.
2. A majority of the current Maintainers must then approve the PR.

# Code Owners and Maintainers List

## oneTBB core (API, Architecture, Tests)

| Name | Github ID | Affiliation | Role |
| --------------------- | --------------------- | ----------------- | ---------- |
| Konstantin Boyarinov | @kboyarinov | Intel Corporation | Code Owner |
| Aleksei Fedotov | @aleksei-fedotov | Intel Corporation | Code Owner |
| Ilya Isaev | @isaevil | Intel Corporation | Code Owner |
| Sarath Nandu R | @sarathnandu | Intel Corporation | Code Owner |
| Dmitri Mokhov | @dnmokhov | Intel Corporation | Code Owner |
| Michael Voss | @vossmjp | Intel Corporation | Maintainer |
| Alexey Kukanov | @akukanov | Intel Corporation | Code Owner |
| Pavel Kumbrasev | @pavelkumbrasev | Intel Corporation | Code Owner |
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe sort this list by Role?

Copy link
Contributor

Choose a reason for hiding this comment

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

I suggest sorting the list by name as those are usually unique and does not depend on the account ID in case the project would move to another platform someday.

Also, what about e-mail addresses of people in the list? Do we want to list them here as well so that anyone interested can reach out to them in case of a need or we think that tagging a person in a GitHub Issue is enough?


## oneTBB TBBMALLOC (API, Architecture, Tests)

| Name | Github ID | Affiliation | Role |
| --------------------- | --------------------- | ----------------- | ---------- |
| Łukasz Plewa | @lplewa | Intel Corporation | Maintainer |


## oneTBB Documentation

| Name | Github ID | Affiliation | Role |
| ---------------------- | --------------------- | ----------------- | ---------- |
| Alexandra Epanchinzeva | @aepanchi | Intel Corporation | Code Owner |


## oneTBB Release management
pavelkumbrasev marked this conversation as resolved.
Show resolved Hide resolved

| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Olga Malysheva | @omalyshe | Intel Corporation | Maintainer |

Loading