Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.

Latest commit

 

History

History
65 lines (49 loc) · 2.75 KB

CONTRIBUTING.md

File metadata and controls

65 lines (49 loc) · 2.75 KB

How to contribute

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.

The roadmap of the project

  • Modify existing algorithms to improve the performance
  • Add new algorithms, for example EDDSA, integrated encryption schema, hierarchical thresholds.

Reporting an issue

  • 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.

Creating a pull request

  • 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!

Reporting security vulnerability

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.

Contribute new feature

  • 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!

Contribute a fix

  • Submit an issue as described above.
  • Communicate proactively.
  • Create pull request.
  • Be patient!

Finally:

  • Contribute a lot
  • Share results of your work on LinkedIn