This document explains how to contribute to this project in many aspects. Please make sure to read this thoroughly before making any contributions.
The so-called "issue" includes but is not limited to software bugs and suggestions
There is a possibility that your issue has already been filed, so please search the issue tracker before filing a new one
When searching, use keywords instead of full sentences. For example, search "crash unbounded variable" instead of "The program crashes with 'unbounded variable' message printed on screen".
How you report software bugs greatly affects how fast it can be processed and fixed, refer to How to Report Bugs Effectively for more information
If you are fluent in a language other than English, you may help this project by translating it to your language. This is called localization or L10N for short. This software has already been internationalized so that it is capable of displaying different languages.
Also, please consider translating our documentation to the language that you are fluent in.
The documentation of this project may be outdated through time, and needs help to keep it up to date.
Refer to the following articles for reference on writing manpages:
There are so many aspects of the code that can be improved, however, please consider the following topics while doing so.
It is required to mimic the coding style of the current code
This project uses tab characters for indentation as it's width can be flexibly configured in many text editors
- Padding is required for operators
- Padding is avoided for the outer curly braces
NOTE: This currently only applies to the GNU Bash shell scripts.
- Underscore for variable names
- Underscore for function names
We use UTF-8 encoding for all of our files
It is appreciated if you share this project with others. Also, if you write an article about this project, plese share it with us, we'd love to hear about it!
All current artwork is stored under src/data. Please only use materials that are under a free license.
Avoid creating commits that do multiple things at once as this will help other developers understand the change history.
Use concrete language on what the commit does in the commit message.