Skip to content

Latest commit

 

History

History
53 lines (31 loc) · 2.48 KB

CONTRIBUTING.md

File metadata and controls

53 lines (31 loc) · 2.48 KB

Contributing

Thank you for considering contributing to Bolt!

When contributing, please first discuss the change you wish to make via issue, or any other method with the owners of this repository before making a change.

Note that we have a Code of Conduct, please follow it in all your interactions with the project.

Setup

  1. Fork this repository and create your branch from main.

  2. Clone your forked repository.

git clone https://github.com/{username}/bolt && cd bolt
  1. Make sure that you have Rust 1.64.0 or later installed and build the project.
cargo build
  1. Start committing your changes. Follow the conventional commit specification and gitmoji specification while doing so.

  2. Add your tests (if you haven't already) or update the existing tests according to the changes. And check if the tests are passed.

cargo test
  1. Make sure rustfmt and clippy don't complain about your changes.

Create a Pull Request

  1. Ensure that you updated the documentation and filled the Pull Request template according to the changes you made.

  2. Wait for approval from the project owner/maintainer. Discuss the possible changes and update your Pull Request if necessary.

  3. You may merge the Pull Request once you have the sign-off of the project owner/maintainer, or if you do not have permission to do that, you may request the project owner/maintainer to merge it in case they haven't done it after a while.

Release Process

  1. Create a branch from main with the name release/vX.Y.Z where X.Y.Z is the new version number.
  2. Create a Pull Request from the release/vX.Y.Z branch to main. The PR will trigger CI/CD pipeline to check if the release is ready.
  3. Once the PR is approved and the CI/CD pipeline is successful, merge the PR to main.
  4. Create a new release on GitHub with the new version number and the release notes. CI/CD pipeline will automatically publish the new release to crates.io, publish the binaries and the packages to npmjs.

License

By contributing, you agree that your contributions will be licensed under The MIT License or Apache License 2.0.