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:

Github Repository Creation and Owners

New EdgeX repositories can be created in either Github organization.

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://wiki.edgexfoundry.org/pages/viewpage.action?pageId=21823860#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.