How to Contribute

= Basic contributions =


 * Reporting a bug on [/forum.html our forum]: This is helpful and a good first step to getting a bug fixed. If you're not quite sure what you're seeing is a bug, this is the best way to report it, rather than going straight to the bug database.
 * Submitting a bug report to our database: This is a very valuable contribution. A full bug report gives us a permanent record of the bug in a central location where we can easily refer to it later. You should always attach failing Java code to the bug report to help us reproduce it.

At this level, you only need to be able to download and use a JogAmp project like JOGL. Here are some helpful links:


 * Downloading and installing JOGL
 * Setting up a JogAmp project in your favorite IDE

= Advanced contributions =


 * Submitting a bug report with a unit test: This not only documents the bug, but gives us a way to reproduce it in our automatic test suite. This insures that once the bug is fixed, it won't happen again later as the code is changed.
 * Submitting a bug report with a unit test and a fix: This is the best possible way to insure that a bug gets fixed quickly, since you've submitted a complete package which the maintainer just needs to examine and approve.
 * Adding a new feature: This is the ultimate level of contribution to JogAmp. Before starting at this level, you should consult the module maintainer to make sure there's agreement about the direction you want to go. But other than that, you're limited only by your imagination.

To contribute at an advanced level, you'll need to be able to build the JogAmp project you want to contribute to. Here are some helpful links:


 * Building JOGL on the command line
 * Building JOGL in Eclipse
 * [/jogl/doc/HowToBuild.html How To Build JOGL]
 * [/jocl/doc/HowToBuild.html How To Build JOCL]

= Git References =

Our modules have been migrated to Git, thanks to the great Git toolchain. In the past we used a centralized Subversion repository, which required access to a central server.

Our preferred method of Git collaboration is via the [free GitHub server]. But you could also contribute via email, http, or the Git daemon.


 * Collaboration with Git
 * Distributed SCM with Git
 * http://help.github.com/git-installation-redirect
 * http://help.github.com/git-email-settings/
 * http://help.github.com/
 * GIT Manual for SVN Experts