# Copyright (C) 2007-2012, Parrot Foundation.

=pod

=head1 NAME

docs/project/committer_guide.pod - Committer Guide. 

=head1 DESCRIPTION

From F<docs/project/roles_responsibilities.pod>:

  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.

=head1 ADDING NEW FILES

To add a new file to Parrot, in your git working copy use the command:

  % git add <filename>

=head1 MANIFEST

Be sure to update the MANIFEST when you've added new files.  You do this
by running:

  % perl tools/dev/mk_manifest_and_skip.pl

=head1 IGNORED FILES

Files generated by Parrot at build time should get ignored such that
Cgit status> doesn't pick them up.  They also need to get added to
MANIFEST.SKIP so that Parrot's configuration mechanism doesn't complain
about extra files.  You can tell git to ignore files by adding them to
F<.gitignore>.

=head1 TESTS BEFORE COMMITTING; MAKE CODETEST

Your Parrot working copy must C<make> successfully before committing your
changes to the repository.

It would be best practice to run C<make test> and make sure that your change
hasn't broken anything before committing.
However, as C<make test> takes a long time, it is recommended to run at least
C<make codetest>. This target runs only the file metadata and the
basic coding standards tests.

In case you want to check the POD of your changed file, you can run
C<perl t/codingstd/pod_syntax.t path/to/my/file >.

=head1 LICENSE

Each text file needs to have near its beginning the line (or equivalent
depending upon the current language's comment character):

  # Copyright (C) <creation_year>-<current_year>, Parrot Foundation.

=head1 REMOVING FILES

To remove a file from the Parrot source, you need to use the C<git rm>
command:

  % git rm <filename>

Removing files is much the same as adding files in that you need to run
F<tools/dev/mk_manifest_and_skip.pl> to create the MANIFEST and
MANIFEST.SKIP files appropriately.  Also, you should check that you've not
broken anything by running C<make test> before committing the removal to the
repository.

=head1 WORKING WITH GIT

Our recommended workflow for git is documented in
F<docs/project/git_workflow.pod>.

=head1 SEE ALSO

F<docs/project/roles_responsibilities.pod>, F<RESPONSIBLE_PARTIES>

=cut
