Users and developers can contribute code that they think might be useful to others or fix problems that have been found. All contributed code will become part of the publicly available source under the same license.

The best way to contribute code is through a pull request. Make a private fork of Warp on bitbucket and commit your changes to it. From there, a pull request can be submitted, into the master branch. Before committing code, double check that only intended changes are included.

Before submitting a pull request, please check the correctness of the code, that it builds and can be run. Make sure that all of the tests in warp_test run without error.

I have a few requests about the formatting of the code.

    • No tabs please (in either Fortran or Python code)

    • For Fortran code, follow the patterns of indentation in existing code (2 spaces per level for example).

    • For Python, follow the PEP8 standards (mostly). Here are some exceptions:

      • Longer lines are Ok

      • I prefer no space around multiply and divide, e.g. (1 + x)*(1 + y)

      • I prefer no space after commas in array indices (except if they are long expressions)

    • Python code should be compatible with Python2. The install scripts convert to 3 as needed.

    • Longer, descriptive variable names are preferred, within reason (especially avoid abbreviations)

    • For multiword names, I've been using underscores between words, like "variable_name" (this is nice but not necessary).

    • Refrain from modifying code (like formatting changes) that is not associated with the changes of interest.

A comment about comments. Please comment your code, heavily. Typically, there should be a comment on every block of code. The comment should make it clear what is happening, why it is being done, and, if there is anything unusual, why it is being done that way. I will never complain about too many comments. Yes, there are many places in Warp that are not well commented, but that doesn't mean that your contributions don't need comments.