PRs are always welcome!
Before raising an issue, make sure you have checked the open and closed issues to see if an answer is provided there. There may also be an answer to your question on stackoverflow.
Please provide the following information with your issue to enable us to respond as quickly as possible.
- The relevant versions of the packages you are using.
- The steps to recreate your issue.
- An executable code example where possible.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'feat: Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
We follow the Conventional Changelog message conventions. Please ensure you follow the guidelines.
If you'd like to get some CLI assistance, getting setup is easy:
npm install commitizen -g
npm i -g cz-conventional-changelog
git cz
to commit and commitizen will guide you.
To build the libraries in this project, you need a working Rust environment. Refer to the Rust Guide.
The build tool used is cargo
.
cd rust
cargo build
This will compile all the libraries and put the generated files in rust/target/debug
.
The released libraries for each module are built by a GH action that attaches the libraries to the GH release for each
crate. To release a crate, run the release.groovy
script in the crate directory. This will guide you through the
release process for the crate. Then create a GH release using the tag and changelog created by the script.
To be able to release a component, you need to:
- Have an account on crates.io. Go to that site, and select "Log in with GitHub". It will auto-create your user account.
- Get a maintainer to invite you to the crate for the component.
- Accept the invite on crates.io. This will allow you to release the Rust crate to crates.io.