How To Contribute
Clone this wiki locally
We welcome community input for all parts of TORQUE. To maximize the value of your contributions, we'd like to set some guidelines:
Join the Community:
Fill out the form for the user's list and/or the developer's list. These are basic ways to coordinate and familiarize yourself with current community efforts, and are excellent resources for getting help using the software or picking experienced user's brains for managing the cluster.
- Clone the current repository and create your local branch.
- Proceed to develop and test the contribution.
- Once completed, submit a pull request with your repository's information and we will follow up with you.
NOTE: Past experience has taught us that contributions work best if users become familiar with the code by working on bugs before attempting to author significant new features.
Second NOTE: Please create pull requests against development branches (develop, or X.Y-dev). For example, a pull request for 5.0 should be made against 5.0-dev instead of 5.0.1 or 5.0.2. When in doubt the branch named development is the safest. Generally speaking, a pull request for a bug fix should be made for the development branch governing the code where it was detected: a pull request for a bug found in 6.0.1 should be made against 6.0-dev. When in doubt, a pull request can always go against develop and then we can discuss any other branches it should be cherry-picked into. No pull requests will be merged into master.
Requirements for All Check-ins:
Any contribution provided to TORQUE must not break any current unit tests, and must compile without any warnings from gcc. Additional unit tests are not required for all patches, but adding unit tests that show the need / prove the viability of your patch will help ensure that it is adopted and that that adoption happens quickly. TORQUE uses the check unit test framework. A tutorial for this framework can be found here.
This category of fix is the easiest for us to integrate into TORQUE. If you see something that is a definite bug, feel free to provide a patch. These typically do not require any kind of coordination with the rest of the community in order to be incorporated. As a general principle, the smaller the change, the easier it is to test and integrate, the less you need to be worried about your work not being accepted or having its acceptance delayed.
If you feel experienced and comfortable in the code, you may wish to add some features. It is important to coordinate efforts with the community as new features are developed, especially in areas where:
- Default behavior is affected and or altered.
- Compatibility with common companion products are affected such as Maui and Moab.
- Backwards compatibility can be affected.
- The feature may not be of general interest.
If there are concerns in these areas that cannot be resolved it may make it so that the contribution can never be adopted into TORQUE. We do not like wasting your time or your efforts, so please coordinate with the community before undertaking any major project.