Skip to content

[Docs] Introduce backend maintainer roles #674

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

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
27 changes: 27 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@
/include/oneapi/math/blas.hxx @uxlfoundation/onemath-blas-write
/include/oneapi/math/bfloat16.hpp @uxlfoundation/onemath-blas-write
/include/oneapi/mkl/blas.hpp @uxlfoundation/onemath-blas-write
/src/blas/backends/armpl/ @uxlfoundation/onemath-cpu-aarch64 @uxlfoundation/onemath-blas-write
Copy link
Contributor

@mkrainiuk mkrainiuk May 27, 2025

Choose a reason for hiding this comment

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

I see error in github web view in this file, like
Unknown owner on line 40: make sure the team @uxlfoundation/onemath-cpu-aarch64 exists, is publicly visible, and has write access to the repository

Could it be that the teams are not yet created? I guess we need them before updating CODEOWNERS

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice find! I did wonder what would happen since these haven't been created yet...didn't realize GitHub was that smart in their web view. Thanks!! =)
If the RFC is approved, then I can request these GitHub teams to be created, and we can wait to merge this PR (with the documentation and codeowner changes) until that happens. Alternatively, I can separate out the codeowners changes to another PR. Unless there would be a long delay with creating the GitHub teams, my preference would be the former.

Copy link
Contributor

Choose a reason for hiding this comment

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

It makes sense to merge all together after RFC is approved and new teams are created.

Copy link
Contributor

Choose a reason for hiding this comment

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

BTW the RFC is already approved, isn't it? Or are we waiting for more feedback?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

BTW the RFC is already approved, isn't it? Or are we waiting for more feedback?

I had put a decision date of May 31 for the RFC. So far only positive responses have been received. =)

/src/blas/backends/cublas/ @uxlfoundation/onemath-gpu-nvidia @uxlfoundation/onemath-blas-write
/src/blas/backends/mkl_common/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-blas-write
/src/blas/backends/mklcpu/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-blas-write
/src/blas/backends/mklgpu/ @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-blas-write
/src/blas/backends/netlib/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-blas-write
/src/blas/backends/rocblas/ @uxlfoundation/onemath-gpu-amd @uxlfoundation/onemath-blas-write
/src/blas/ @uxlfoundation/onemath-blas-write
/tests/unit_tests/blas/ @uxlfoundation/onemath-blas-write

Expand All @@ -45,6 +52,10 @@
/include/oneapi/math/dft/ @uxlfoundation/onemath-dft-write
/include/oneapi/math/dft.hpp @uxlfoundation/onemath-dft-write
/include/oneapi/mkl/dft.hpp @uxlfoundation/onemath-dft-write
/src/dft/backends/cufft/ @uxlfoundation/onemath-gpu-nvidia @uxlfoundation/onemath-dft-write
/src/dft/backends/mklcpu/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-dft-write
/src/dft/backends/mklgpu/ @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-dft-write
/src/dft/backends/rocfft/ @uxlfoundation/onemath-gpu-amd @uxlfoundation/onemath-dft-write
/src/dft/ @uxlfoundation/onemath-dft-write
/tests/unit_tests/dft/ @uxlfoundation/onemath-dft-write

Expand All @@ -53,6 +64,12 @@
/include/oneapi/math/lapack/ @uxlfoundation/onemath-lapack-write
/include/oneapi/math/lapack.hpp @uxlfoundation/onemath-lapack-write
/include/oneapi/mkl/lapack.hpp @uxlfoundation/onemath-lapack-write
/src/lapack/backends/armpl/ @uxlfoundation/onemath-cpu-aarch64 @uxlfoundation/onemath-lapack-write
/src/lapack/backends/cusolver/ @uxlfoundation/onemath-gpu-nvidia @uxlfoundation/onemath-lapack-write
/src/lapack/backends/mkl_common/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-lapack-write
/src/lapack/backends/mklcpu/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-lapack-write
/src/lapack/backends/mklgpu/ @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-lapack-write
/src/lapack/backends/rocsolver/ @uxlfoundation/onemath-gpu-amd @uxlfoundation/onemath-lapack-write
/src/lapack/ @uxlfoundation/onemath-lapack-write
/tests/unit_tests/lapack/ @uxlfoundation/onemath-lapack-write

Expand All @@ -62,6 +79,11 @@
/include/oneapi/math/rng.hpp @uxlfoundation/onemath-rng-write
/include/oneapi/mkl/rng.hpp @uxlfoundation/onemath-rng-write
/include/oneapi/mkl/rng/device.hpp @uxlfoundation/onemath-rng-write
/src/rng/backends/armpl/ @uxlfoundation/onemath-cpu-aarch64 @uxlfoundation/onemath-rng-write
/src/rng/backends/curand/ @uxlfoundation/onemath-gpu-nvidia @uxlfoundation/onemath-rng-write
/src/rng/backends/mklcpu/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-rng-write
/src/rng/backends/mklgpu/ @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-rng-write
/src/rng/backends/rocrand/ @uxlfoundation/onemath-gpu-amd @uxlfoundation/onemath-rng-write
/src/rng/ @uxlfoundation/onemath-rng-write
/tests/unit_tests/rng/ @uxlfoundation/onemath-rng-write

Expand All @@ -70,6 +92,11 @@
/include/oneapi/math/sparse_blas/ @uxlfoundation/onemath-sparse-write
/include/oneapi/math/sparse_blas.hpp @uxlfoundation/onemath-sparse-write
/include/oneapi/mkl/sparse_blas.hpp @uxlfoundation/onemath-sparse-write
/src/sparse_blas/backends/cusparse/ @uxlfoundation/onemath-gpu-nvidia @uxlfoundation/onemath-sparse-write
/src/sparse_blas/backends/mkl_common/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-sparse-write
/src/sparse_blas/backends/mklcpu/ @uxlfoundation/onemath-cpu-x64 @uxlfoundation/onemath-sparse-write
/src/sparse_blas/backends/mklgpu/ @uxlfoundation/onemath-gpu-intel @uxlfoundation/onemath-sparse-write
/src/sparse_blas/backends/rocsparse/ @uxlfoundation/onemath-gpu-amd @uxlfoundation/onemath-sparse-write
/src/sparse_blas/ @uxlfoundation/onemath-sparse-write
/tests/unit_tests/sparse_blas/ @uxlfoundation/onemath-sparse-write

Expand Down
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ For GitHub questions, issues, RFCs, or PRs you can contact maintainers via one o
| @uxlfoundation/onemath-rng-write | oneMath RNG maintainers |
| @uxlfoundation/onemath-sparse-write | oneMath Sparse Algebra maintainers |
| @uxlfoundation/onemath-vm-write | oneMath Vector Math maintainers |
| @uxlfoundation/onemath-cpu-aarch64 | AArch64 CPU maintainers |
| @uxlfoundation/onemath-cpu-x64 | x86 CPU maintainers |
| @uxlfoundation/onemath-gpu-amd | AMD GPU maintainers |
| @uxlfoundation/onemath-gpu-intel | Intel GPU maintainers |
| @uxlfoundation/onemath-gpu-nvidia | NVIDIA GPU maintainers |

Please read [MAINTAINERS page](MAINTAINERS.md) for more information about maintainer roles, responsibilities, and how to become one of them.

Expand Down
72 changes: 60 additions & 12 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ This document defines roles in oneMath project.

# Roles and responsibilities

oneMath project defines three main roles:
oneMath project defines four main roles:
* [Contributor](#contributor)
* [Domain maintainer](#domain-maintainer)
* [Backend maintainer](#backend-maintainer)
* [Architecture maintainer](#architecture-maintainer)

These roles are merit based. Refer to the corresponding section for specific
Expand Down Expand Up @@ -44,7 +45,7 @@ Responsibilities:
* Follow and enforce the project [contributing guidelines](CONTRIBUTING.md).
* Co-own with other domain maintainers a specific domain, including contributing
bug fixes, implementing features, and answering domain specific questions
in [#onemkl](https://uxlfoundation.slack.com/archives/onemkl) Slack channel.
in [#onemath](https://uxlfoundation.slack.com/archives/onemath) Slack channel.
* Review pull requests in their specific domain.
* Monitor testing results and flag issues in their specific areas of
responsibility.
Expand All @@ -66,7 +67,7 @@ Privileges:

The process of becoming a Domain maintainer is:
1. A Contributor requests to join corresponding Domain maintainer GitHub team.
2. At least one specific Domain maintainers approve the request.
2. At least one specific Domain maintainer approves the request.

### List of GitHub teams for Domain maintainers

Expand All @@ -79,6 +80,52 @@ The process of becoming a Domain maintainer is:
| @uxlfoundation/onemath-sparse-write | oneMath Sparse Algebra maintainers |
| @uxlfoundation/onemath-vm-write | oneMath Vector Math maintainers |

## Backend Maintainer

Backend maintainer has responsibility for a specific backend in the project.
Backend maintainers are collectively responsible for developing and maintaining their backends,
including reviewing certain changes to their backend 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 backend maintainers a specific backend, including contributing
bug fixes, implementing features, and answering backend specific questions
in [#onemath](https://uxlfoundation.slack.com/archives/onemath) Slack channel.
* Review pull requests pertaining to their specific backend.
* Monitor testing results and flag issues in their specific areas of
responsibility.
* Support and guide Contributors.

Requirements:
* Experience as Contributor in the specific backend for at least 6 months.
* Track record of accepted code contributions to a specific backend.
* Track record of contributions to the code review process.
* Demonstrated in-depth knowledge of the specific backend.
* Commits to being responsible for that specific backend.

Privileges:
* PR approval counts towards approval requirements for a specific backend.
* Can promote fully approved Pull Requests to the `develop` branch.
* Can recommend Contributors to become Backend maintainers.
* Eligible to become an Architecture maintainer.

The process of becoming a Backend maintainer is:
1. A Contributor requests to join corresponding Backend maintainer GitHub team.
2. At least one specific Backend maintainer approves the request.

### List of GitHub teams for Backend maintainers

| GitHub team name | Backend maintainers |
:-----------|:------------|
| @uxlfoundation/onemath-cpu-aarch64 | AArch64 CPU maintainers |
| @uxlfoundation/onemath-cpu-x64 | x86 CPU maintainers |
| @uxlfoundation/onemath-gpu-amd | AMD GPU maintainers |
| @uxlfoundation/onemath-gpu-intel | Intel GPU maintainers |
| @uxlfoundation/onemath-gpu-nvidia | NVIDIA GPU maintainers |

## Architecture Maintainer
Architecture maintainers are the most established contributors who are responsible for the
project technical direction and participate in making decisions about the
Expand All @@ -88,26 +135,27 @@ Responsibilities:
* Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
* Follow and enforce the project [contributing guidelines](CONTRIBUTING.md)
* Co-own with other Domain maintainers on the technical direction of a specific domain.
* Co-own with other Backend maintainers on the support and implementation of a specific backend.
* Co-own with other Architecture maintainers on the project as a whole, including
determining strategy and policy for the project.
* Support and guide Contributors and Domain maintainers.
determining strategy and policy for the project.
* Support and guide Contributors, Domain maintainers, and Backend maintainers.

Requirements:
* Experience as a Domain maintainer or Contributor with focus on the project architecture
for at least 12 months.
* Experience as a Domain or Backend maintainer or Contributor with focus on the project
architecture for at least 12 months.
* Commit at least 25% of working time to the project.
* Track record of major project contributions.
* Demonstrated deep knowledge of the project architecture and build.
* Demonstrated broad knowledge of the project across multiple domains.
* Demonstrated broad knowledge of the project across multiple domains and/or multiple backends.
* 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 recommend Contributor or Domain maintainer to become Architecture maintainers.
* Can recommend Contributor, Domain maintainer, or Backend maintainer to become Architecture maintainer.

Process of becoming a maintainer:
1. A Contributor or Domain maintainer requests to join oneMath Architecture maintainers GitHub team
(@uxlfoundation/onemath-arch-write).
2. At least one of Architecture maintainers approves the request.
1. A Contributor, Domain maintainer, or Backend maintainer requests to join oneMath Architecture
maintainers GitHub team (@uxlfoundation/onemath-arch-write).
2. At least one of the existing Architecture maintainers approves the request.

Loading