3 Contribution_guidelines
Moritz Strohm edited this page 6 months ago

Contribution guidelines

Contributing without writing code

Reporting bugs and vulnerabilities

Bugs and vulnerabilities can be reported directly by creating a new issue at Codeberg.org:


If you are not registered on codeberg.org, you may alternatively send an e-mail to Moritz Strohm. The mail address is in the AUTHORS file of the repository:


When writing a bug report, please provide as much information as possible so that the developer(s) can reproduce the problem. The following questions may help you with providing information:

  • What happened?
  • What were you doing with MoeNavigatorEngine when the problem occurred?
  • What is the outcome of the problem?
  • Which steps are needed to reproduce the problem?

A word about vulnerabilities:

Reports about vulnerabilities are not required to be made confidential, since that would mean leaving users in the dark about a security risk that can compromise their digital safety. It is best to immediately report the problem so that everyone can take precautions.

Requesting features and suggesting improvements

Feature requests are welcome, even if you are not able to implement them by yourself. That doesn't make a feature request less valuable.

If you request a feature, the following questions may help you to formulate the request:

  • What is the feature?
  • Why would the project benefit from it?
  • In case the feature involves program logic: Can you describe the workflow?

In case you want to suggest an improvement you may answer the following questions to formulate the suggestion:

  • What is wrong with the current code / workflow / class hierarchy / ... ?
  • Why is the current code / architecture / ... bad?
  • How would your improvement look like? (Feel free to add diagrams etc. if that helps understanding the improvement)

Please be kind, even if you found a piece of the software that is totally screwed in your view. Remember, when N humans are involved, you can expect M different views, with M definetly greater than 1 and usually less than 1.5 * N.

Contributing by writing code

To fix a bug, add features or to improve the code, you can either clone the repository, commit your fix in your fork and then create a pull request or you can simply append a patch to the corresponding issue at codeberg.org. You may include your name (and e-mail address) in the AUTHORS file, if you wish to be mentioned, even when fixing a bug that is trivial.

In case you want to contribute code without registering at codeberg, you can send a patch to Moritz Strohm via e-mail. The mail address can be found in the AUTHORS file of the repository:


In any case, make sure your code follows the Coding style, as far as it is defined. Also make sure your code is easy to read and has comments on the non-trivial parts so that it gets easy to understand what the code is doing. Also, you must provide documentation blocks for classes and their methods in the header files.

If you add or extend a new component (a parser or network protocol handler for example) to MoeNavigtorEngine, make sure to add a test case and add documentation about it in this wiki. In case you modify the behavior of a component (due to a bugfix or an improvement) and you are not sure whether the tests or the documentation needs to be updated, simply add the "test TODO" label (tests) or the "wiki-doc-TODO" label (documentation) to the issue. If no update is required to finish the work on the issue, a core developer will remove the label. If the "test TODO" or "wiki-doc-TODO" label remains, writing tests or updating the documentation in the wiki or both is required before the issue can be closed.