Skip to content

Latest commit

 

History

History
78 lines (48 loc) · 2.49 KB

CONTRIBUTING.md

File metadata and controls

78 lines (48 loc) · 2.49 KB

How To Contribute

Thank you for considering contributing to hanko! This document intends to make contribution more accessible while aligning expectations. Please don't hesitate to open issues and PRs regardless if anything is unclear.

By contributing to hanko, you agree that your code will be licensed under the terms of the MIT License without any additional terms or conditions.

Getting Started

To gain an overview of hanko, please read the documentation.

General Guidelines

  • Contributions of all sizes are welcome, including single line grammar / typo fixes.
  • For new features, documentation and tests are a requirement.
  • Changes must pass CI. PRs with failing CI will be treated as drafts unless you explicitly ask for help.
  • Simplicity is a core objective of hanko. Please open an issue before working on a new feature to discuss it.

Development Environment

Devcontainer

For users of IDEs with support for devcontainers, it's usage is recommended.

Other

Ensure a recent version of rustup is available and optionally install just.

Coding Standards

hanko uses rustfmt for uniform fomatting and clippy for basic linting and enforcement of best practices. The just lint recipe can be used to run both.

just lint

In addition to basic formatting and linting, a high code coverage should be maintained.

just test

Performance

To ensure that hanko does not regress in performance, benchmarks are run on every PR. To execute them locally, run cargo bench.

Releasing a new version

To release a new version of hanko, perform the following steps.

  • Ensure the unreleased section of the CHANGELOG contains all relevant changes.

  • Pick a new version according to the SemVer 2.0 spec and set it in your environment.

    export NEW_VERSION=0.5.0
  • Checkout a new branch.

    git switch -c bump-version-$NEW_VERSION
  • Use the just recipe to bump the version. This will create the necessary commits as well as a pull request using the GitHub CLI.

    just bump-version $NEW_VERSION
  • Once the branch is merged, a GitHub release for the new version containing the recent changes can be created automatically.

    just release-latest-version $NEW_VERSION