Purpose:
The purpose of this document is to describe the GitHub roles used by the FIO protocol and how each role can be obtained by community members.
Roles:
GIT Organization
Owner – This role can perform all admin and management of members, repositories, teams and other git information associated with the FIO organization. importantly owners can create and remove repositories within the organization. Owners can invite new members into the GitHub organization.
Member – An organization member is a pre existing git account that has been invited and accepted the invitation into the FIO organization. Members can be assigned to teams within the FIO protocol. Members can be provided permissions/repository roles (see below). Members can be private or public (this is the choice of the member). Membership on the FIO protocol is held by a small set of individuals in the community (less than 50)
Team – a team is a group of FIO protocol members. Teams can be provided permissions/repository roles (see below). teams can be secret or visible.
Repository – a repository is a set of content being source control managed by the FIO organization. Repositories can be public or private
Permissions/Repository Roles
These items apply to teams and individual members within the FIO protocol organization.
Read
Read and clone repositories. Open and comment on issues and pull requests.
Triage
Read permissions plus manage issues and pull requests.
Write
Triage permissions plus read, clone and push to repositories.
Maintain
Write permissions plus manage issues, pull requests and some repository settings.
Admin
Full access to one or more repositories including sensitive and destructive actions. Modify Admin Role
Branch names for organization repositories
master – current operational baseline.
develop – development branch used to deliver projects deemed worthy of release.
release – release branches and release tags will be made at the discretion of the release manager from the develop branch.
feature – feature branches will be made for any dev efforts, names feature/<unique work task name>
Change requests (PR)
Reviewer/commenter – anyone with read access to the repo can comment on changes/PRs.
Approver – anyone with read access to the repo can approve or request further changes to a PR.
Code Owner – for each repository or groups of associated repositories there will be a set of organization members who are qualified to provide an approving review to enable merge of the PR (it is recommended at least 2 of these be identified per repo). it is recommended that GitHub Teams be used to identify code owners for related repositories on the GitHub.
Merger – once a PR has met approval requirements any organization member with write access to the repository may merge the PR (this requires write access to the repo).
a process of change request will be used within FIO. By convention the FIO protocol owners will decide how many code owner reviewers are required for pull requests to be merged into the above named branches of each repository. it is recommended that for develop this number be at least 1, and for master it be at least 2. All FIO organization repositories should be configured in the same manner. Each should enable require review by code owners. a code owners file should be established in each repository.
How to obtain a role --
Owner, Admin
For FIO the GitHub organization administration is the duty of a single WP.
In order to gain these roles, a candidate will need to be a member of this WP team. The combined role (owner/admin) will be assigned to 2 or more people at the discretion of the WP lead. In FIO the accounts serving as owner and admin for all repositories will be the same git accounts in order to ensure consistency of configuration of FIO git repositories.
Code owner --
code owners are experienced engineers in designing testing and implementing of software either on or off of the blockchain. Any organization member with the necessary interest or experience can become a code owner. The granting of the code owner role will be performed by the existing set of code owners.
In order to gain this role, a GitHub account holder must become a member of the FIO organization, then they must request to be granted code ownership permission on the desired team/s. The existing set of code owners will give a thumbs up, thumbs down to approve or deny the request.
Assumptions:
It is assumed that the GitHub FIO organization owners will act in the best interests of the FIO DAO when interacting with the FIO community. If any community member feels that they are not, then issues can be brought up to the FIO steering committee during the normal steering committee WP review and monthly meeting process.
Add Comment