Skip to content

Roles and Responsibilities

soh-cah-toa edited this page Sep 22, 2011 · 1 revision

This document describes the roles and responsibilities of parties involved in the Parrot project. Roles are divided into three general categories: Project Team, Committers, and Contributors. These categories may be further divided into smaller sub-roles.

Project Team

Members of the project team set the overall direction of the project, track project progress, oversee the project source (and access to that source), and develop and maintain the project. The project team consists of positions selected on the basis of available volunteers and a general evaluation of suitable skills by other existing project team members.

Architect

The architect has the primary responsibility of setting the overall direction of the project and to facilitate team communication and understanding of architectural issues. The architect is primarily but not solely responsible for making design decisions and documenting them in Parrot Design Documents (responsibility for design and design documentation of project subcomponents may be given to other members of the Project Team, or may be held jointly). The architect also works with release managers to develop and maintain the release schedule.

Release Manager

Release managers are responsible for executing a product release according to the release schedule. The release schedule is developed and maintained jointly with the release managers and the architect.

See docs/project/release_manager_guide.pod for more information about release managers.

Metacommitter

All metacommitters are responsible for managing commit access to the Parrot repository. Once the architect approves a request for a contributor to be given commit access, a metacommitter provides that access. The architect is a metacommitter, but other project team members also hold this role.

See docs/project/metacommitter_guide.pod for more information.

Committers

Contributors who submit numerous, high-quality patches may be considered as a committer. Committers have commit access to the full Parrot repository, but generally work only on one or more sub-projects (described below). Contributors may be considered for commit access either by being nominated by another committer or by asking for it.

Core Developer

Develops and maintains core subsystems (e.g. I/O, Exceptions).

Compiler Developer

Develops and maintains one or more Parrot compilers (e.g. IMCC, PGE, TGE).

High Level Language Developer

Develops and maintains one or more high-level languages (e.g. Rakudo, Winxed, Lua).

Build Manager

Maintains and extends configuration and build sub-systems. Reviews smoke reports and attempts to extend platform support.

Lead Tester

Develops, maintains, and extends test suite coverage and testing tools. Responsible for testing goals including complete coverage of core components on targeted platforms.

Platform Porter

Develops and maintains Parrot for a particular platform, making portability fixes or creating installation packages.

Patch Monster

Reviews and applies patches submitted by general contributors, keeping an eye on conformance with coding standards and desirability of features.

Contributors

Contributors are volunteers who write code or documentation patches, take part in email or online conversations, or contribute to the project in other ways. All volunteer contributions are appreciated and recognized. All volunteers who contribute to a file in the Parrot repository may add their name to the CREDITS file.

General Contributor

Many contributors have no more specific classification - they may find a bug, provide a patch, submit or respond to a question, write documentation, or contribute in some other way.

Smoke Tester

Submits smoke reports on one or more platforms. No knowledge of Parrot's internals are necessary.

Cage Cleaner

Fixes failing tests, makes sure coding standards are implemented, reviews documentation and examples. A entire class of tickets in the issue tracking system is dedicated for use by this group. This position encompasses tasks from entry level to advanced and is a good way to get familiar with Parrot's internals.