|
| 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