Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save charlesjolley/827243 to your computer and use it in GitHub Desktop.
Save charlesjolley/827243 to your computer and use it in GitHub Desktop.

SproutCore Committers and Reviewer Policy

SproutCore has three kinds of special status beyond being a contributor. Committers have direct read-write access to the Git repository, enabling them to commit changes by themselves or others once reviewed. Reviewers are permitted to review patches and may grant or deny approval for committing. SproutCore Core Team members set the overall direction of the project and manage long term plans. Details of the review and commit process are available on the contribution page.

New SproutCore Committers and Reviewers are selected by existing Reviewers. New Core Team members are selected by the existing Core Team

An up to date list of current SproutCore Committers, Reviewers and Core Team members is maintained at sproutcore.com.

Choosing Committers and Reviewers

A candidate for SproutCore Committer or Reviewer should initially be nominated by a Reviewer in accordance with the criteria below. If the required other Reviewers (see below) second the nomination, then it carries within 5 business days unless someone objects. If an objection is raised, the Reviewers will discuss the matter and try to come to consensus; failing this, the matter will be decided by majority vote of the Reviewers.

Once someone is successfully nominated for SproutCore Committer status, Strobe will take care of granting access to the GitHub account.

Once someone is successfully nominated for Reviewer status, the nominating Reviewer or another responsible party should inform the candidate and ask for indication of acceptance from the potential new member. If the candidate accepts, a notice will be posted on the SproutCore blog.

Criteria for Committers

A SproutCore Committer should be a person we can trust to follow and understand the project policies about checkins and other matters.

Normally a potential Committer would be nominated once they have submitted around 5-10 good patches, shown good judgment and understanding of project policies, and demonstrated good collaboration skills. To be nominated and seconded, they will have to interact with more than one Reviewer.

If someone submits many patches but does not show good judgment or effective collaboration, that contributor might not be nominated right away. If someone submits fewer patches than this but has experience working in another JavaScript library and has a track record of good collaboration with the SproutCore project, they may be nominated sooner.

Significant contributors to testing, bug management, web site content, documentation, project infrastructure and other non-code areas may also be nominated, even without the normal threshold of patches.

A person who will be working under the supervision of a Reviewer on SproutCore-related projects can be nominated if the Team member is willing to vouch for them and supervise them to ensure they follow project policies on checkins. Supervision does not necessarily imply a manager/employee relationship, just that you work with the potential committer closely enough to make sure they follow policy and work well with others.

All committer nominations require the support of three Reviewers. One Reviewer nominates, two others second the nomination.

Criteria for Reviewers

A SproutCore Reviewer should be a person who has shown particularly good judgment, understanding of project policies, collaboration skills, and understanding of the code. Reviewers are expected to ensure that patches they review follow project policies, and to do their best to check for bugs or other problems with the patch. They are also expected to show good judgment in whether or not they review a patch at all, or defer to another Team member.

A potential Reviewer may be nominated once they have submitted a minimum of 20 good patches. They should also be in touch with other members of the Team and aware of who are the experts in various areas.

A person who submits many patches but does not show good collaboration skills, code understanding or understanding of project policies may never be nominated. Making unofficial reviews before you become a Reviewer is encouraged. Just add your comments to the commits on GitHub. This is an excellent way to show your skills.

For Reviewer status, there is no supervision exception.

All Reviewer nominations require the support of four other Reviewers. One member nominates, three others second. Reviewers should be known in the SproutCore community as a whole, and not just within their own place of employment or just within a specific organized project. Therefore, at least one of the four supporting members must not share any company or project affiliations with the nominee (other than SproutCore itself).

Suspension and Revocation of Committer or Reviewer Status

SproutCore Committer or Reviewer status can be revoked by 2/3 vote of the Reviewers, not including the person under consideration for revocation. The Core Team may also revoke Committer or Reviewer status by a 2/3 vote.

Someone actively damaging the repository or intentionally abusing their review privilege may have it temporarily suspended on the request of any two Reviewers. In such a case, the requesting Reviewers should notify the reviewer list with a description of the offense. At this point, Reviewer or Committer status will be temporarily suspended for one week, pending outcome of the vote for permanent revocation.

About the Core Team

The SproutCore Core Team is responsible for setting the long term direction of the project. Committers and Reviewers follow the Core Team's guidance when it comes to making high level decisions about major features, process, priorities, etc.

Anyone can become a Core Team member as long as they meet the criteria (below). Unlike Reviewers and Committers, however, the goal is to keep the Core Team small enough that it can make decisions. As such, the Core Team will not usually add new members unless someone is making substantial new contributions or an existing member has stepped out.

It is also common for someone to join the Core Team and then later leave because they get busy with other projects or technologies. Such people are called "Core Team Alums", and have a bio posted permanently on the SproutCore website.

Criteria for the Core Team

A SproutCore Core Team member should be a person who has demonstrated a strong vision, commitment to the project, good judgement and a willingness to invest the time necessary to guide the long term success of the project. Core Team members are expected to participate in weekly meetings and email discussions, help promote the project, and mentor new Committers and Reviewers. They are also work closely with other team members to help nurture the community as well as care for the code.

Core Team members often are but need not be Reviewers or Committers. Someone who has contributed significantly to the project through marketing, website, documentation or other mean may not have access but still earn a spot on the Core Team.

To become a Core Team member, a candidate must be nominated by another Core Team member and approved by the majority of the team.

Once approved, a Core Team member remains on the team as long as they fulfill their duties and work cooperatively with the rest of the team.

Becoming a Core Team Alum

If a member stops participating or significantly reduces their involvement for more than three months they may be removed from being an active member of the Core Team unless the Core Team decides to keep them on by majority vote.

A Core Team member who causes problems within the team can also be removed by a vote of 2/3 of the Core Team, not including the member in question.

Individuals who were once but no longer are on the Core Team are called Alumni. A Core Team Alumnus who becomes active again may rejoin the team by the normal nomination process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment