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:

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.