# Copyright (C) 2007, The Perl Foundation.
# $Id: /mirror/trunk/docs/project/roles_responsibilities.pod 24304 2007-12-30T15:15:03.136638Z bernhard  $

=head1 Parrot Roles and Responsibilies

This document describes the roles and responsibilities of parties involved in
the Parrot project. Roles are divided into three categories (Project Team,
Committers, Contributors) and may be further subdivided.

=head1 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 existing Project Team members.

=head2 Architect

The architect has primary responsibility for setting overall direction of the
project, and to facilitate team communication and understanding of
architectual 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 the Pumpking and Release Managers to develop and
maintain the release schedule.

=head2 Project Manager

The Project Manager has primary responsibility for tracking project progress.
The Project Manager holds a weekly meeting with the Project Team and key
Committers, and reports back to TPF and project sponsors. The Project Manager
also manages project priorities and developer concerns.

=head2 Pumpking

The Pumpking has primary responsibility for the project source. The Pumpking
is the lead developer, and as such reviews patches, defines coding standards,
and assists the efforts of Committers and Contributors. The Pumpking also
develops and maintains the release schedule with the Architect and Release
Managers.

=head2 Release Manager

Release managers have responsibility for executing a product release,
according to the release schedule. The release schedule is developed and
maintained jointly with the Architect and the Pumpking.

See F<docs/project/release_manager_guide.pod> for more information.

=head2 Metacommitter

All Metacommitters are responsible for managing commit access to the Parrot
repository. Once the Architect or Pumpking approves a request for a
Contributor to be given commit access, a Metacommitter provides that access.
The Architect and Pumpking are Metacommitters, but other Project Team members
may also hold this role.

See F<docs/project/metacommiter_guide.pod> for more information.

=head1 Committers

Contributors who submit numerous, high-quality patches may be considered to
become a Committer. Committers have commit access to the full Parrot
repository, but generally work only on one or more subprojects; Committer
categories are described below. Contributors may considered for commit access
either by being nominated by another Committer, or by asking for it.

=head2 Core Developer

Develops and maintains core subsystems (e.g. IO, Exceptions.)

=head2 Compiler Developer

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

=head2 High Level Language Developer

Develops and maintains one or more High Level Languages
(e.g. Tcl, Lua, Perl 6.)

=head2 Build Manager

Maintains and extends configure and build subsystems. Reviews smoke reports
and attempts to extend platform support.

=head2 Lead Tester

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

=head2 Platform Porter

Develops and maintains installation packages on various platforms.

=head2 Patch Monster

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

=head1 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.

=head2 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.

=head2 Smoke Tester

Submits smoke reports on one or more platforms. No knowledge of parrot
internals necessary.

=head2 Cage Cleaner

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

=head1 STABILITY

This document is 'Stable'. Changes must be approved by the Project Team.

=head1 AUTHOR

Jerry Gay a.k.a. particle

=head1 SEE ALSO

F<RESPONSIBILE_PARTIES>, F<docs/project/>

=cut
