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