Repository creation, ownership and access rights
This is a policy was approved by the EdgeX TSC on 7/26/19 by email and modified with approval of TSC on 7/31/19 .
This is text approved and added with Architect's meeting 3/16/20.
Github Organizations
EdgeX Foundry is an open project with all of its code, documentation and other artifacts stored primarily in Github. Specifically, there are two Github organizations that hold EdgeX related artifacts:
- https://github.com/edgexfoundry: contains the code, documentation, and other artifact repositories that are or were (now archived) part of the EdgeX Foundry platform. In particular, this organization holds artifacts that EdgeX continues to manage, maintain and support per its release and support strategy (see https://lf-edgexfoundry.atlassian.net/wiki/pages/viewpage.action?pageId=11670494 and https://lf-edgexfoundry.atlassian.net/wiki/display/FA/Long+Term+Support).
- https://github.com/edgexfoundry-holding: holds repositories containing proposed additions to EdgeX, experiments, demonstrations, and other code, documentation and artifacts that have not officially been brought into EdgeX but are available for evaluation and exploration. The holding organization was established to support the large code contribution process defined here: https://lf-edgexfoundry.atlassian.net/wiki/display/FA/Contributor%27s+Process. In other words, this the “playground” staging area for code that is not yet officially a part of EdgeX and is not under any active management, release, or support strategy and in fact may never be a part of EdgeX in the future. Users and community members should apply ample caution when pulling anything out of this organization as the EdgeX community offers no guarantees of support, viability or ownership of any repository herein.
Github Repository Creation and Owners
New EdgeX repositories can be created in either Github organization.
- Repositories created in edgexfoundry require the majority approval of the TSC as these are considered repositories of artifacts that EdgeX must manage, maintain and otherwise actively administer with the support of the Linux Foundation. New repositories in this organization are created with a request sent through support.linuxfoundation.org (the Linux Foundation’s IT project support system) and must contain the github id of the “owner” and a list of github IDs for the original committers (all approved by the TSC). The owner should be a WG chair. The request for a new repository must also include a reference to the TSC approval (example: link to the meeting minutes containing the approval). Any modification to the repositories (updates on name, deletion, archival, membership changes, or additional administrative changes) require TSC majority approval. The request for any change to the repository must be made through the LF support system and include a reference to the TSC approval.
- Repositories created in edgexfoundry-holding require the approval of any single TSC member. Repositories in this organization are also created with a request sent through support.linuxfoundation.org and must contain the github id of the “owner” and a list of github IDs for the original committers. The owner is the TSC member requesting the holding repository. The request for a new repository should contain a link to this policy for approval. Any modification to the repositories (updates on name, deletion, archival, membership changes, or additional administrative changes) require the repository owner’s approval (not TSC approval). The request for any change to the repository must be made through the LF support system and should contain a link to this policy for approval.
Provide the following information in the new repo request:
Project: EdgeX Foundry
Summary: Create new <repo-name> repo
Description:
- Repo Name: <repo-name>
- Repo Description: "<some description> | Owner: <owning WG name>"
- Organization: <edgexfoundry | edgexfoundry-holding>
- Committers: devops-core-team, <list of other committer IDs>
- Branch Protection: master branch protection (1 committer approval)
- File Creation: <repo-name>-settings and <repo-name>-codecov-token
- Repository Template: ask to use the EdgeX repo template (https://github.com/edgexfoundry-holding/template-repo) if you need Dependabot, Conventional Commits and a PR template provided with the repo.
- Approval: provide your role and reference Repository creation, ownership and access rights or reference the TSC vote approving the repo
Example:
Moving repository from edgexfoundry-holding to edgexfoundry
When a repository is ready to be moved from holding to the edgexfoundry Github org, the following process should be followed (as approved in the Nov 2019 F2F meeting):
1) the requestor should petition the associated working group through the working group chairman for review and approval to move the repository out of holding.
2) the chairman of the working group will request a review and hold a vote of the work group to move the repository out of holding
3) the workgroup chairman will request the TSC chairman or vice chairman to put the move to a TSC vote at the next available meeting (this should be done byTSC emailer so as to allow maximum distribution and notification of the review)
4) the TSC meeting will inform the TSC of the requested move and an email vote will occur after the meeting. Approval by majority of the TSC is required to move the repository from holding to edgexfoundry organization.
Note: code that is in edgexfoundry (the EdgeX Foundry organization) that is undergoing some refactoring and moved is to a new repository does not require a holding repository (in edgefoundry-holding). Code that is in a edgexfoundry can be moved directly into a new edgexfoundry repository without being moved to holding and then approved to come back.
Github Repository Ownership Changes
The owner of a repository in edgexfoundry or edgexfoundry-holding occurs with WG Chair transfer. As a new chairperson is voted in or named by the TSC, the repositories formerly owned by the previous chair automatically transfer to the new chair unless the TSC votes by majority to transfer the ownership to an alternate chairperson.
Repository Access Rights
WG Chairs (and owners of the repositories) may request committer or maintainer rights by nominating and getting the approval of at least two TSC members per the https://lf-edgexfoundry.atlassian.net/wiki/pages/viewpage.action?pageId=11670423#Contributors,Committers&Maintainers-NominationandApprovalofMaintainersandCommitters policy.
With the approval of two TSC members, a request to access rights must be submitted by the repository owner through support.linuxfoundation.org and must provide the github IDs for the new committers/maintainers and a reference to the TSC vote approving their access.