We welcome every sort of contribution, from bug reports to improvements of the code or new features. If you are not yet familiar with contributions to open source projects, don't worry. It's not that difficult and most important steps are explained below.
There are mainly two ways of contribution:
- If you find a bug or have an idea for a good new feature, just add an issue in the GitHub web interface.
- If you already know how to implement a solution, follow the guide to contribute code below using a pull-request. In case you are not sure about the implementation, raise an issue first to discuss ideas with others.
Please note also our Code of Conduct
Here is a quick summary how contributions work on GitHub:
- Fork the repository to your local GitHub account
- Clone the repository to your local computer using
git clone https://github.com/your-github-username/repository-name.git
- Create a new branch where you will later add your changes using
git switch -c branch-name
- Update the files to fix the issue or add new features. Please add your copyright notice in a new line if you made significant changes to the file.
- Use
git add your-changed-files
to add the file contents of the changed files to the so-called staging area (means they are prepared to be committed) - Run
git commit -m "Short message to describe the changes"
to add the staged files to the respository - Upload the changes to the remote repository on GitHub using
git push origin branch-name
- Submit a pull request via the GitHub web interface and wait for the response of the maintainers.
- Better make several small atomic commits than a single big one
- Use meaningful commit messages and pull request topics. Tell what was changed and not that something was changed. "ADC measurements: Improved performance of temperature sensor reading" is much better than "Updates". You can also reference an issue with its numer (e.g. #123) in the commit message
- Use the Libre Solar coding style
All contributions must be licensed under the Apache License 2.0 as the rest of the repository.