Contributing to ScanCode.io
Thank you so much for being so interested in contributing to ScanCode.io. We are always on the lookout for enthusiastic contributors like you who can make our project better, and we’re willing to lend a helping hand if you have any questions or need guidance along the way. That being said, here are a few resources to help you get started.
Note
By contributing to the ScanCode.io project, you agree to the Developer Certificate of Origin.
Do Your Homework
Before adding a contribution or create a new issue, take a look at the project’s README, read through our documentation, and browse existing issues, to develop some understanding of the project and confirm whether a given issue/feature has previously been discussed.
Ways to Contribute
Contributing to the codebase is not the only way to add value to ScanCode.io or join our community. Below are some examples to get involved:
First Timers
You are here to help, but you’re a new contributor! No worries, we always welcome newcomer contributors. We maintain some good first issues and encourage new contributors to work on those issues for a smooth start.
Warning
“Can I work on this issue?”
You do not need our permission to work on an open issue. A good start is to present your understanding of the problem/bug and how you would fix it. Providing some code using a pull request will come handy, but being able to explain a solution is always a good start.
Make sure to read through this page and follow the recommendations.
Warning
“Is this issue is open?”
Unless closed, yes it is open.
Report Issues
Code Contributions
Code is contributed to the codebase using pull requests. A pull request should always be attached to an existing issue. When there is no existing issues, start by creating one to discuss potential solutions and implementation details before writing any code.
We use several conventions to ensure code quality regarding format, testing, and attribution.
Make sure to follow those conventions before submitting your code:
Code validation
We use PEP8 conventions. A command is available to automatically format your code:
make valid
Unit tests
We write tests, a lot of tests, thousands of tests. When fixing bugs or adding new features, you should add tests too. You can run the test suite with:
make test
Commit messages and Developer Certificate of Origin
Follow the instructions at Writing good Commit Messages and check some examples.
You must include a “Signed-off-by” to your commit messages:
Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
Your code is now ready to be pushed as a PR
Note
Pull requests that are not passing the automated integration tests are unlikely to be reviewed. Focus on making all the “Checks” to pass before asking for a code review.
Documentation Improvements
Documentation is a critical aspect of any project that is usually neglected or overlooked. We value any suggestions to improve ScanCode.io documentation.
Tip
Our documentation is treated like code. Make sure to check our writing guidelines to help guide new users.
Other Ways
You want to contribute to other aspects of the ScanCode.io project, and you can’t find what you’re looking for! You can always discuss new topics, ask questions, and interact with us and other community members on Gitter.
Helpful Resources
Review our comprehensive guide for more details on how to add quality contributions to our codebase and documentation
Check this free resource on how to contribute to an open source project on github
Follow this wiki page on how to write good commit messages