Thank you for considering to contribute to the project. In this guide you can find answers on the following questions:
- How to file a bug/issue report
- How to create a pull request
- How to report security vulnerability
- How to suggest a new feature
- How to contribute a fix
Please, recheck this document regularly, as the rules and requirements may change in the future. For example, we may enforce signed commits only.
- Modify existing algorithms to improve the performance
- Add new algorithms, for example EDDSA, integrated encryption schema, hierarchical thresholds.
- Submit the issue using New Issue button in Issues tab. Browse open issues before creating new one.
- Monitor your issue. Others may contribute comments on the best way to fix it. People may know how to workaround the problem too.
- Choose the issue which you want to address.
- Notify the admin of the project that you pick this issue. You will be assigned to the issue eventually so that you (and anyone else) could see your ID in the issue's assignees list.
- Make a fork of the repository and create a branch with unique name there.
- Write good code.
- Follow idiomatic code principles for the language you’re using (RUST) and verify that by running cargo clippy command.
- Respect design choices already made in the project until you build credibility to influence them.
- Avoid adding new dependencies as much as possible. In doubtful cases - consult a maintainer.
- Pay attention to the MIT license: don’t contribute anything encumbered by copyright or patent issues.
- Don't fix/improve unrelated problems in the same PR: submit another issue(s) instead.
- Unit test(s) are required in this project. Integration tests are encouraged. You can modify an existing integration test to cover the new case.
- Use cargo fmt command before committing anything.
- Submit new pull request to the master branch.
- Communicate with admin to get a reviewer assigned.
- Monitor your pull request.
- Eventually get your code merged!
if you identify an exploit in the existing code, please share it in private so that we can address it before it gets disclosed to a public.
- Check the roadmap of the project.
- Submit an issue as described above.
- Consider attaching a design document to the issue.
- Prepare for the discussion with our cryptographer(s) and software developers.
- If approved, create pull request.
- Be patient!
- Submit an issue as described above.
- Communicate proactively.
- Create pull request.
- Be patient!
- Contribute a lot
- Share results of your work on LinkedIn