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

Introducing oneDAL roles for contributors and maintainers #2916

Merged
merged 3 commits into from
Sep 30, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,10 @@ cpp/ @Alexsandruss @samir-nasibli @Alexandr-Solovev

# Tree based methods
dtrees @razdoburdin @ahuber21 @avolkov-intel @icfaust

# Governance and process
/.github/CODEOWNERS @oneapi-src/owner-onedal
/SECURITY.md @oneapi-src/owner-onedal
/MAINTAINERS.md @oneapi-src/owner-onedal
/CONTRIBUTING.md @oneapi-src/owner-onedal
/CODE_OF_CONDUCT.md @oneapi-src/owner-onedal
napetrov marked this conversation as resolved.
Show resolved Hide resolved
144 changes: 144 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Introduction

This document defines roles in oneDAL project.

# Roles and responsibilities

oneDAL project defines three main roles:
* [Contributor](#contributor)
* [Code Owner](#code-Owner)
* [Maintainer](#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 oneDAL project.
Anyone can become a Contributor by bringing value in one of the following ways:
* Answer questions from community members.
* Submit feedback to design proposals.
* Review and/or test pull requests.
* Test releases and report bugs.
* Contribute code, including bug fixes, features implementations,
and performance optimizations.
* Contribute design proposals.

Responsibilities:
* Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
* Follow the project [contributing guidelines](CONTRIBUTING.md).

Privileges:
* Eligible to become Code owner/maintainer.

## 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,
for developing and maintaining their component or functional areas, including
reviewing all changes to their their areas of responsibility and indicating
whether those changes are ready to merge. They have a track record of
contribution and review in the project.

Responsibilities:
* Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
* Follow and enforce the project [contributing guidelines](CONTRIBUTING.md).
* Co-own with other code owners a specific component or aspect of the library,
including contributing bug fixes, implementing features, and performance
optimizations.
* Review pull requests in their specific areas of responsibility.
* Monitor testing results and flag issues in their specific areas of
responsibility.
* Support and guide Contributors.

Requirements:
* Experience as Contributor for at least 6 months.
* 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
component.
* Commits to being responsible for that specific area.

Privileges:
* PR approval counts towards approval requirements for a specific component.
* Can promote fully approved Pull Requests to the `main` branch.
* Can recommend Contributors to become Code Owners.
* Eligible to become a Maintainer.

The process of becoming a Code Owner is:
1. A Contributor is nominated by opening a PR modifying the MAINTAINERS.md file
including name, Github username, and affiliation.
2. At least two specific component Maintainers approve the PR.


## Maintainer
Maintainers are the most established contributors who are responsible for the
project technical direction and participate in making decisions about the
strategy and priorities of the project.

Responsibilities:
* Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
* Follow and enforce the project [contributing guidelines](CONTRIBUTING.md)
* Co-own with other component Maintainers on the technical direction of a specific component.
* Co-own with other Maintainers on the project as a whole, including determining strategy and policy for the project.
* Suppport and guide Contributors and Code Owners.

Requirements:
* Experience as a Code Owner for at least 12 months.
* Track record of major project contributions to a specific project component.
* Demonstrated deep knowledge of a specific project component.
* Demonstrated broad knowledge of the project across multiple areas.
* Commits to using priviledges responsibly for the good of the project.
* Is able to exercise judgment for the good of the project, independent of
their employer, friends, or team.

Privileges:
* Can represent the project in public as a Maintainer.
* Can promote Pull Requests to release branches and override mandatory
checks when necessary.
* Can recommend Code Owners to become Maintainers.

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

## oneDAL core

Team: @oneapi-src/onedal-write

Currently entire Intel oneDAL team serves at contributor level and have corresponding rights
with additional separation of roles coming with repository migration to UXL


### oneDAL Architecture
| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Victoriya Fedotova | @Vika-F | Intel Corporation | Maintainer |
| Aleksandr Solovev | @Alexandr-Solovev | Intel Corporation | Maintainer |
| Alexander Andreev | @Alexsandruss | Intel Corporation | Maintainer |

### AArch64

| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Rakshith G B | @rakshithgb-fujitsu | FUjitsu | Code Owner |

### RISC-V

| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Keeran Rothenfusser| @keeranroth | Rivosinc | Code Owner |


### Release management

| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Nikolay Petrov | @napetrov | Intel Corporation | Maintainer |
| Sergey Yakovlev | @syakov-intel | Intel Corporation | Maintainer |
| Maria Petrova | @maria-Petrova | Intel Corporation | Maintainer |