Skip to content

Commit 05c8c96

Browse files
committed
RFC: Moving to UXL GitHub org
1 parent 69829cd commit 05c8c96

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

rfc/001-changing-github-org.rst

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
==========================================
2+
Moving Projects to UXL GitHub Organization
3+
==========================================
4+
5+
Moving UXL projects from `oneapi-src`_ to an organization owned
6+
by UXL.
7+
8+
Background
9+
==========
10+
11+
All 6 of the original UXL projects are in the `oneapi-src`_ GitHub
12+
organization. The org is owned by Intel and also contains projects that are not
13+
part of UXL. We need to transfer ownership of the repos to UXL by moving them
14+
to a new org.
15+
16+
We considered various options:
17+
18+
1. Move all the repos to the `uxlfoundation`_ org.
19+
2. Move the oneapi-src org to UXL.
20+
3. Move the repos to a project-specific org.
21+
22+
We do not recommend (1) and (2) because they are a shared org. A shared org has
23+
the following drawbacks:
24+
25+
* Must share GitHub runners, permissions, and integrations
26+
* Repo and team naming conflicts
27+
* Community confusion. DPL and DNN have different communities and goals.
28+
* Requires central management, and UXL does not have the resources to manage
29+
the org
30+
31+
Furthermore, (2) requires redefining the purpose of oneapi-src, which will lead
32+
to confusion about the projects that go and stay.
33+
34+
A shared org does have some advantages:
35+
36+
* Central management can be more efficient and secure
37+
* Sharing team definitions across projects when there are shared teams
38+
* Provides more visibility for UXL as the host of the projects
39+
40+
We recommend (3) because it is the common practice for large complex open
41+
source projects. Projects will have the freedom to manage their org as they see
42+
fit and not be affected by requirements or preferences of other projects.
43+
44+
Proposed Org & Rep Names
45+
========================
46+
47+
.. list-table::
48+
:header-rows: 1
49+
50+
* - Current Repo
51+
- New Org
52+
- New Repo
53+
* - onednn
54+
- onednn-project
55+
- oneDNN
56+
* - onedal
57+
- onedal-project
58+
- oneDAL
59+
* - oneccl
60+
- oneccl-project
61+
- oneCCL
62+
* - onemkl
63+
- onemkl-project
64+
- oneMKL-sycl-interfaces
65+
* - onedpl
66+
- onedpl-project
67+
- oneDPL
68+
* - onetbb
69+
- onetbb-project
70+
- oneTBB
71+
72+
Org Administration
73+
==================
74+
75+
The projects will have ownership of their org. To ensure continuity, select at
76+
least 2 people to have the org ``owner`` role. It is not recommended to broadly
77+
share ownership permissions. Prepare a basic set of recommended configurations
78+
(e.g. 2fa) for the org or perhaps the org can be configured before handover of
79+
the project. Each org will be Linux Foundation and UXL admins who are there for
80+
emergency maintenance only. Need to share some guides on how to manage an org.
81+
82+
Process
83+
=======
84+
85+
This is a sketch of the activity. Each project should prepare its own schedule
86+
and plan. Robert Dower, the maintainer of oneapi-src org will help with the
87+
move by preparing the new org, transferring the teams, and moving the repos.
88+
89+
Preparation:
90+
1. Create the new org and teams
91+
2. Prepare a project specific test plan
92+
3. Prepare a project specific communication plan
93+
4. Identify URLs that are not redirected and prepare PR's to update them.
94+
95+
Execution:
96+
1. Communicate the change to the community.
97+
2. Move the repos to the new org.
98+
3. Merge the PR's to update the URLs
99+
4. Testing
100+
101+
Cleanup:
102+
1. Update URLs that are redirected
103+
104+
Risks and Mitigations
105+
=====================
106+
107+
This section includes some generic risks. Each project should identify its own
108+
risks.
109+
110+
Community confusion
111+
Communicate the change to the community and ensure that they understand the
112+
new org structure and schedules.
113+
Community disruption
114+
Ensure that the new org has the same teams, permissions, and integrations as
115+
the current org. Leverage GitHub repo URL redirect and provide website
116+
redirects.
117+
Maintainer disruption
118+
Ensure that maintainers are aware of the change and have the necessary
119+
permissions to continue their work.
120+
CI/CD disruption
121+
Test plan. Ensure the CI/CD maintainers are available to address problems.
122+
Unexpected breakage
123+
Test the new org before the move. Have a rollback plan in case of unexpected
124+
breakage. Search the repos for references to the old org.
125+
Release disruption
126+
Schedule moves during a time when releases are not planned.
127+
128+
.. _`uxlfoundation`: https://github.com/uxlfoundation
129+
.. _`oneapi-src`: https://github.com/oneapi-src

0 commit comments

Comments
 (0)