# How to contribute
The contributions are welcome!
There are just a few small guidelines you need to follow.
1. Code should be `cargo fmt` formatted.
2. Code should pass `cargo clippy`.
3. Exported types, constants, variables and functions should be documented.
5. All tests must pass constantly `cargo test`.
## Versioning
Ethereum Attestation Service Rust client follows semantic versioning. New functionality should be accompanied by increment to the minor version number.
## Releasing
Any code which is complete, tested, reviewed, and merged to master can be released.
1. Make a pull request with changes.
2. Once the pull request has been merged, visit [https://github.com/pradovic/eas-sdk-rs/releases](https://github.com/pradovic/eas-sdk-rs/releases) and click `Draft a new release`.
3. Update the `Tag version` and `Release title` field with the new Ethereum Attestation Service Rust client version. Be sure the version has a `v` prefixed in both places, e.g. `v0.25.0`.
4. Publish the release.