External contributors are encouraged to submit issues and pull requests to this repository. That being said, not all issues will be addressed nor will all correct pull requests be merged.
The Commonware Library provides robust, high-performance primitives and contributions that do not directly advance this work will not be considered. This includes (but is not limited to):
- Introducing an external dependency
- Implementing optional functionality
- Adding complex algorithms that provide marginal performance improvements
- Refactoring for the sake of refactoring
- Trivial changes from accounts farming contribution metrics (especially when aided by an LLM)
- New primitives and/or dialects that are ecosystem-specific
Note
Common commands are aliased in a justfile for convenience. Refer to
Just's installation guide, or run
cargo install just on any platform.
This repository uses the default cargo and clippy formatting rules for .rs files, treating warnings as errors. To check linting, run:
$ just lintTo fix formatting automatically, run:
$ just fix-fmtBefore making a PR, to run all lints and tests, run:
$ just pre-prReleases are automatically published to cargo by GitHub Actions whenever a version update is merged into the main branch.
To increment the patch version of all crates (and update the corresponding minimum required version in workspace.dependencies), run:
./scripts/bump_versions.shYou agree that any work submitted to this repository shall be dual-licensed under the included Apache 2.0 and MIT licenses, without any additional terms or conditions. Additionally, you agree to release your copyright interest in said work to the public domain, such that anyone is free to use, modify, and distribute your contributions without restriction.
Looking to discuss a potential contribution or get feedback? Reach out on GitHub Discussions!