Skip to content

Commit 3842fa2

Browse files
authored
RFC: Moving to UXL GitHub org (#86)
* RFC: Moving to UXL GitHub org * formatting fix * Add primary contacts and move date * Add TBB/DPL transition dates * Add more details about the moving process. * Add links to orgs * add links to the repos * adding completion dates for onemkl and onednn * ccl/dal q4 2024
1 parent e5b962c commit 3842fa2

File tree

1 file changed

+202
-0
lines changed

1 file changed

+202
-0
lines changed

rfc/001-changing-github-org.rst

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
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+
Repo Information
45+
================
46+
47+
.. list-table::
48+
:header-rows: 1
49+
50+
* - Current Repo
51+
- Primary Contact
52+
- Migration Date
53+
- New Org
54+
- New Repo
55+
* - onednn_
56+
- Vadim Pirogov
57+
- Q4 2024
58+
- onednn-project_
59+
- oneDNN
60+
* - onedal_
61+
- Nikolay Petrov
62+
- Q4 2024
63+
- onedal-project_
64+
- oneDAL
65+
* - oneccl_
66+
- Joel Rosenzweig
67+
- Q4 2024
68+
- oneccl-project_
69+
- oneCCL
70+
* - onemkl_
71+
- Irina Topinskaia
72+
- Q4 2024
73+
- onemkl-project_
74+
- oneMKL-sycl-interfaces
75+
* - onedpl_
76+
- Timmie Smith
77+
- Q4 2024
78+
- onedpl-project_
79+
- oneDPL
80+
* - onetbb_
81+
- Ekaterina Semenova
82+
- Q4 2024
83+
- onetbb-project_
84+
- oneTBB
85+
* - oneapi-spec
86+
- Robert Cohn
87+
- 5/2/2024
88+
- uxlfoundation_
89+
- oneapi-spec_
90+
91+
.. _onednn-project: https://github.com/onednn-project
92+
.. _onedal-project: https://github.com/onedal-project
93+
.. _oneccl-project: https://github.com/oneccl-project
94+
.. _onetbb-project: https://github.com/onetbb-project
95+
.. _onedpl-project: https://github.com/onedpl-project
96+
.. _onemkl-project: https://github.com/onemkl-project
97+
.. _uxlfoundation: https://github.com/uxlfoundation
98+
99+
.. _onednn: https://github.com/oneapi-src/onednn
100+
.. _onedal: https://github.com/oneapi-src/onedal
101+
.. _oneccl: https://github.com/oneapi-src/oneccl
102+
.. _onetbb: https://github.com/oneapi-src/onetbb
103+
.. _onedpl: https://github.com/oneapi-src/onedpl
104+
.. _onemkl: https://github.com/oneapi-src/onemkl
105+
.. _oneapi-spec: https://github.com/uxlfoundation/oneapi-spec
106+
107+
108+
Org Administration
109+
==================
110+
111+
The projects will have ownership of their org. To ensure continuity, select at
112+
least 2 people to have the org ``owner`` role. It is not recommended to broadly
113+
share ownership permissions. Prepare a basic set of recommended configurations
114+
(e.g. 2fa) for the org or perhaps the org can be configured before handover of
115+
the project. Each org will have Linux Foundation and UXL admins who are there
116+
for emergency maintenance only. Need to share some guides on how to manage an
117+
org.
118+
119+
Process
120+
=======
121+
122+
This is a sketch of the activity. Each project should prepare its own schedule
123+
and plan. Robert Dower, the maintainer of oneapi-src org will help with the
124+
move by preparing the new org, transferring the teams, and moving the repos.
125+
126+
Preparation:
127+
128+
1. Create the new org and teams
129+
2. Prepare a project specific test plan
130+
3. Prepare a project specific communication plan
131+
4. Identify URLs that are not redirected and prepare PR's to update them.
132+
133+
Execution:
134+
135+
1. Communicate the change to the community.
136+
2. Move the repos to the new org.
137+
3. Merge the PR's to update the URLs
138+
4. Testing
139+
140+
Cleanup:
141+
142+
1. Update URLs that are redirected
143+
144+
Moving the Repo
145+
---------------
146+
147+
The recommended way to move the repo is to use the GitHub web interface to move
148+
it to the new org. This will preserve the issues, PR's, and stars. The repo URL
149+
will change, but GitHub will redirect the old URL to the new URL. Another
150+
option is to fork the repo into the new org, but it will not do forwarding and
151+
will not preserve the issues, PR's, and stars.
152+
153+
It may be convenient to initially fork the repo to the new org for the purpose
154+
of testing. I believe you can rename the repo in the new org to avoid confusion
155+
about the active repo. Another possibility it to make the new repo private. In
156+
either case, the fork would be deleted and the original repo moved.
157+
158+
Robert Cohn has experience writing python scripts that use the GitHub APIs so
159+
if there is some aspect of the move that you would like to automate, please let
160+
him know.
161+
162+
Project Web Sites
163+
-----------------
164+
165+
Most project web sites are hosted on GitHub pages. The URL is based on the org
166+
and repo name. The URL will change when the repo is move. GitHub pages URLs are
167+
not automatically forwarded, but we can manually forward individual URLs.
168+
169+
Projects may want to consider moving their web site to a new URL that is not
170+
based on the org and repo name. This will avoid the need to manually forward
171+
URLs if the repo or org changes in the future. It also makes it possible to
172+
change the web hosting provider without changing URLs. GitHub Pages is
173+
preferred, but other providers allow dynamic content and bigger web sites.
174+
Contact Robert Cohn to discuss web hosting if you want alternate hosting.
175+
176+
177+
Risks and Mitigations
178+
=====================
179+
180+
This section includes some generic risks. Each project should identify its own
181+
risks.
182+
183+
Community confusion
184+
Communicate the change to the community and ensure that they understand the
185+
new org structure and schedules.
186+
Community disruption
187+
Ensure that the new org has the same teams, permissions, and integrations as
188+
the current org. Leverage GitHub repo URL redirect and provide website
189+
redirects.
190+
Maintainer disruption
191+
Ensure that maintainers are aware of the change and have the necessary
192+
permissions to continue their work.
193+
CI/CD disruption
194+
Test plan. Ensure the CI/CD maintainers are available to address problems.
195+
Unexpected breakage
196+
Test the new org before the move. Have a rollback plan in case of unexpected
197+
breakage. Search the repos for references to the old org.
198+
Release disruption
199+
Schedule moves during a time when releases are not planned.
200+
201+
.. _`uxlfoundation`: https://github.com/uxlfoundation
202+
.. _`oneapi-src`: https://github.com/oneapi-src

0 commit comments

Comments
 (0)