Skip to content

Latest commit

 

History

History
61 lines (41 loc) · 2.17 KB

CONTRIBUTING.md

File metadata and controls

61 lines (41 loc) · 2.17 KB

Contributing to Pact-Rust

PRs are always welcome!

Raising defects

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.

  1. The relevant versions of the packages you are using.
  2. The steps to recreate your issue.
  3. An executable code example where possible.

New features / changes

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'feat: Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Commit messages

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.

Building

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.

Releasing

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:

  1. Have an account on crates.io. Go to that site, and select "Log in with GitHub". It will auto-create your user account.
  2. Get a maintainer to invite you to the crate for the component.
  3. Accept the invite on crates.io. This will allow you to release the Rust crate to crates.io.