This file explains how to contribute to the FossSweeper project. For standards of behaviour, look at our Code of Conduct.
Report bugs in the issues board. Create a new issue with the Bug Report
template and fill out the form.
Suggest features in the Ideas category of the discussions board. When it is deemed that an adequate discussion has been completed, a thread in the issues board may be created to request the implementation of the feature.
Ask questions in the Q&A category of the discussions board.
Browse the issues board to find an issue that interests you. If you want to work on an issue, say so by commenting in the issue thread. Fork the dev branch of the FossSweeper repository and clone the fork to your local machine. Initialize all git submodules within your local clone using the bash command git submodule update --init --recursive
so you can build the project properly. Commit your changes locally and then push them to your forked repository. When you are ready, go ahead and make a pull request in the FossSweeper pull requests board.
Every time you push changes to GitHub, several tests will automatically run using GitHub Actions. Before your pull request can be merged into FossSweeper, all of these tests must pass.
Many aspects of FossSweeper are tested automatically using the Catch2 unit testing framework. Depending on what code you added or modified, you may be required to add more unit tests or change existing ones. If you are not sure test you need to workon, ask for guidance in your pull request thread.
Unit tests are not enough to catch everything that can go wrong with FossSweeper. Depending on what code you modify, you may be told that you need to run FossSweeper on one or more platforms to ensure that there are no visible bugs. You can emulate a different operating system than your own using virtual machine software such as Virtual Box. If you don't want to do this yourself, add the help-needed
tag to your pull request and ask for someone else to do it for you.
The FossSweeper project is a propoenent of the REUSE Specification. This means that all files in the repository must be adequatly licensed for the your fork to be considered REUSE-compliant. If you have the REUSE Tool installed on your computer, you can check your fork to see if it is compliant using the bash command reuse lint
.