First of all, many thanks for your interest in collaborate in the development!
Here you will find some useful information to get started.
- Getting a copy of the sources
-
The first step to perform is to get a local copy of the development
sources. Just install a GNU Bazaar client and issue the following
commands.
To get the sources of the GNU PDF Library from the trunk:
$ bzr branch bzr://bzr.savannah.gnu.org/pdf/libgnupdf/trunk
- Getting familiar with GNU Bazaar
-
We are using the GNU Bazaar 1 version
control system. Before to be able to contribute code to this project
you should get familiar to the usage of Bazaar.
The GNU Bazaar User Guide
2
is very good. In the Bazaar site (http://www.bazaar-vcs.org)
you will also find useful tips for people coming from other VCSs such
as CVS or subversion.
The “Bzr For Emacs Devs” page in the Emacs wiki provides detailed
information on the workflow used in the Emacs project. Even if we
don't follow that exact workflow, most of the guidelines there apply
in the GNU PDF development. You can find the document at
http://www.emacswiki.org/emacs/BzrForEmacsDevs.
- Subscribing to the development mailing list
-
GNU PDF developers communicate using the pdf-devel@gnu.org
mailing list. Most of the work in the development is discussed there,
so you definitely want to subscribe to it if you are going to write
some code.
Goto the pdf-devel mailman web interface in
http://lists.gnu.org/mailman/listinfo/pdf-devel and set up your
subscription. Then, send a first email introducing yourself.
There is another mailing list pdf-tasks@gnu.org that is used
by the Flyspray installation to send change notifications of tasks.
You can subscribe to this mailing list at
http://lists.gnu.org/mailman/listinfo/pdf-tasks.
- Getting familiar with Savannah
-
Savannah is the central point of development for GNU software. The GNU
PDF project has a savannah project in
http://savannah.gnu.org/projects/pdf
- Getting familiar with the library
-
Take a look to the design of the library and the source code. The
documents to look at are the “GNU PDF Library Reference Guide”
(available in doc/gnupdf.texi) and the “GNU PDF Library Architecture
Manual” (available in doc/gnupdf-arch.texi).
There is useful information in the README-dev file located at
the root of the source distribution. In particular the dependencies
that you need to have installed in your system are detailed there.
If you have doubts about any aspect of the library or the
implementation, just ask in pdf-devel.
- Getting familiar with the GNU standards
-
The GNU PDF Library is a GNU package. That means we should follow the
GNU Standards to ensure quality and compatibility with other parts of
the GNU Operating System.
You should be familiar with the GNU Coding Standards before to write
code for the GNU PDF library. You can read it online in
http://www.gnu.org/prep/standards.
- Getting familiar with our coding conventions
-
Read our Hackers Guide (this very document) for several conventions we
use when writing source code.
- Taking a task to work on
-
Please read the documentation on tasks management in
Tasks management.
If you want to work in a NEXT task, please be sure to state your
interest in the pdf-devel mailing list before. The developers in the
pdf-devel mailing list can guide you towards the more convenient task
for you to take and can give valuable advice about how to implement
it.
- Signing papers
-
The GNU PDF codebase is copyrighted by the Free Software
Foundation. This is a way to strength the GPL. That means that we need
you to sign papers before to be able to integrate your code in the
distribution. There are several ways to get this done. Please ask in
pdf-devel for the details.
- Sending patches for inclusion
-
If you have written a patch you want to be included in GNU PDF, please
send it to the pdf-devel mailing list. Your patch will be then
discussed and maybe accepted.