Contributing to SANSA

This guide shows various ways how to contribute to SANSA. By contributing to SANSA does not necessarily mean to just write code. There are many ways to interact with the SANSA community and contribute to SANSA including asking questions or joining the discussions on the mailing list, reporting a bug, suggesting a feature, contributing code and documentation, or testing the develop branch.


Ask a question

The SANSA community is keen to answer and help with your questions. We have a mailing list for that purpose. Subscribe to the mailing list via @SANSA-Stack or by sending an e-mail message to sansa-stack+subscribe@googlegroups.com. Once the subscription is confirmed, you can send questions to sansa-stack@googlegroups.com ) or use GitHub Issues by posting your questions to GitHub Issues for the specific module.

Report a bug

Reporting bugs are one of the best ways to contribute. Before creating a bug report, please check that an issue reporting the same problem does not already exist, even the closest ones. If there is a such an issue, you may add your report as a comment on the respective issue reporting the same bug. To report a new bug, open an issue that describes the bug and if possible list the steps to reproduce it. Set the label to “bug”. If you want to provide a fix along with your bug report: That is great! In this case please send us a pull request as described in section Contribute Code.

Suggest a feature

To request a new feature, open an issue and summarize the desired functionality and its use case. Set the issue label to “feature”.

Contribute Code

Below we list a simplified outline of what the workflow for code contributions looks like:

  • Check the list of open issues. Either assign an existing issue to yourself or create a new one that you would like work on and discuss your ideas and use cases.
  • Fork the repository
  • Create a topic branch from where you want to base your work. This is usually develop.
  • Make commits of logical units.
  • Write good commit messages. A good commit should contain the following information when you submit a commit:
    • What changes the commit imply and why this commit is done. The subject of the commit should answer the changes made and the body should contain more information on why this commit was done.
    • When creating a pull request, its comment should reference the corresponding issue (closes issue #x, related to issue #y or something else).
  • Push your changes in your fork of the repository.
  • Submit a pull request (PR)
  • Your pull request must receive at least one review approve from one maintainer.

For Scala code, SANSA follows the official Scala style guide and we apply the scala-style validation at every push.

Contribute Documentation

Keeping the documentation up to date is a way to success. But this often requires a lot of effort and keeping track of all the changes. We aim to provide brief, correct, and complete documentation and we are happy to welcome any contribution to improve SANSA’s documentation by reporting missing, incorrect, or outdated information using GitHub Issues.

Testing

We keep the develop branch build-error free and that will go into the release. We welcome everyone to test out our develop branch and see if the framework is working properly and the integration works. SANSA-Examples could be one of the starting points to go for.

 

Thanks a lot for your contributions!