Thank you for considering contributing to Collaborative Circom! Your help is essential for keeping this project stable, secure, and up-to-date. Below are the guidelines for contributing, including how to report security vulnerabilities.
If you find a security vulnerability, or are not sure whether it is a security vulnerability, DO NOT OPEN A GITHUB ISSUE. Read the section on how to handle security vulnerabilities.
If you find a bug, please open an issue and provide as much detail as possible. Make sure to include:
- A clear and descriptive title.
- A detailed description of the problem, including any error messages.
- Steps to reproduce the issue.
- The expected and actual behavior.
- Environment details (operating system, Rust version, etc.).
If you have an idea for a new feature or an improvement to an existing feature, we’d love to hear from you! Please open an issue and include:
- A clear and descriptive title.
- A detailed explanation of the proposed enhancement.
- Any relevant examples, code snippets, or use cases.
Before you start working on a new feature or a bug fix, please check the open issues and confirm that the work is not already in progress. If it’s a significant change, it might be worth discussing your idea with the maintainers first.
We provide a justfile
in the root directory to check for compliance for PRs. Please run
just check-pr
and verify that all checks succeed. Keep the following things in mind:
- Follow Rust clippy: We follow the guidelines from clippy.
- Public API must be documented: every exposed artifact must be documented.
- Keep commits atomic: Each commit should be a self-contained piece of work, with a clear commit message. The commit message should follow the guidelines for conventional commit message.
Tests are essential for maintaining the reliability of the project. Please make sure that:
- All new features include unit/e2e tests.
- Bug fixes include regression tests to prevent future issues.
- The entire test suite passes before submitting your changes.
Clear and comprehensive documentation helps others understand how to use and contribute to the project. You can contribute by:
- Fixing typos or improving explanations in existing documentation.
- Adding documentation for new features.
- Improving examples and tutorials.
If you find a security vulnerability, DO NOT open an issue on GitHub. Instead, please email the details to TACEO.
We take security vulnerabilities seriously and will respond promptly to address the issue.
-
Fork the repository and create a new branch for your feature or bug fix:
git checkout -b your-feature-branch
-
Make your changes in the feature branch.
-
Run the linter and test suite with:
just check-pr
-
Commit your changes with a clear and descriptive message.
-
Push to your fork and open a pull request against the main branch.
-
Your pull request will be reviewed, and feedback may be provided. Once approved, it will be merged into the main branch.
Thanks! Your TACEO team ❤️