Project template for Rust based projects hosted on Github. Essentially matklad's Basic Things in action. A generated example with the majority of the features enabled can be found over at basic-things-demo.
Create an empty GitHub repository and install cargo-generate
before running:
cargo generate gibbz00/basic-things
CI may expect the presence of both CODECOV_TOKEN
and CARGO_REGISTRY_TOKEN
.
(Reference for template values may be found in ./cargo_generate/values.toml
.)
- git-cliff - Automated changelog generation by the usage of conventional commits.
- mdbook - Optionally enabled to create user focused documentation.
- codecov - Optionally enabled for code coverage uploads and analysis.
- pre-commit - Optionally enabled for quicker validations before committing.
Project aims to provide a comprehensive continuous integration and delivery pipeline. This includes running CI jobs using:
cargo fmt/clippy
- Format and lint check Rust source code and doc commentstaplo fmt/lint
- Format and lint check for TOML fileslychee
- Scan for broken URLscargo-udeps
- Find unused dependenciestypos
- Spell checking source codecargo-deny
- Dependency license and vulnerability scanningdependabot
- Dependency update scanningcocogitto
- Assert usage of convetional commits.
Pipeline will also executes tests with cargo
, mdbook
(if enabled), and cargo llvm-cod
for code coverage reporting.
Release pipeline publishes the crates to crates.io and the book to GitHub Pages.
- Add support for other Git hosts other than GitHub, e.g Gitea and GitLab.
- Make most features opt-in.
- Cocogitto conventional commit checking in
pre-commit
commit-msg hook. - Automated releases with
release-plz
?