Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 2.56 KB

CONTRIBUTING.md

File metadata and controls

42 lines (34 loc) · 2.56 KB

contributing

We are all living beings, and what is most important is that we respect each other and work together. If you can not uphold this simple standard, then your contributions are not welcome.

hacking

Just a few simple items to keep in mind as you hack.

  • Pull request early and often. This helps to let others know what you are working on. Please use GitHub's Draft PR mechanism if your PR is not yet ready for review.

  • Use conventional commits, a changelog will automatically be created from such commits

  • When making changes to the configuration, be sure to regenate the schema. This can be done by running:

    cargo run -- config generate-schema schemas/config.json

linting

We are using clippy & rustfmt. Clippy is SO GREAT! Rustfmt ... has a lot more growing to do; however, we are using it for uniformity.

Please be sure that you've configured your editor to use clippy & rustfmt, or execute them manually before submitting your code. CI will fail your PR if you do not.

release workflow

We follow semver for versioning this system.

  • update Cargo.toml version & execute cargo update — this ensures that the Cargo.lock doesn't update during CI due to the new version number, which will cause CI failure.
  • ensure CI completes successfully.
  • add a new tag to the repo matching the new Cargo.toml version. Either via git tag or via the Github UI.
    • all release tags should start with the letter v followed by a semver version.
  • CI is configured for release tags and will create a new GitHub release, and will upload release artifacts to the release page. Verify that this process has completed successfully.

Windows

If you receive an error about OpenSSL not being installed, the easiest way to get around this is to build using rustls instead of natvie-tls.

cargo build --no-default-features -F update_check,rustls

If you want to use native-tls you can install OpenSSL using the instructions from one of the following resources:

- openssl = { version = "0.10", default-features = false, optional = true }
+ openssl = { git = "https://github.com/micolous/rust-openssl", branch = "windows-build", default-features = false, optional = true }