This is an opinionated template repository for rust projects. It is "enterprise" because it contains all the things you could ever want from such a repository.
This repository is nix ready. That means that a flake is added for your conveniance as well as actions workflows for working with nix and cachix caching.
For caching with cachix, you need to add a github secret from cachix. Read more here
MSRV for this repository is currently: 1.60.0
That matters explicitly because we run some tools only for this version, e.g.: clippy.
This section contains documentation for the "features" this repository provides.
Bots
Bors is a GitHub bot that prevents merge skew / semantic merge conflicts, so when a developer checks out the main branch, they can expect all the tests to pass out-of-the-box.
Dependabot is enabled so that dependencies are always up-to-date.
Issues and PRs are automatically marked as stale by stalebot. PRs are closed after some time, but issues are not.
CI builds
Builds are done for the following distributions right now:
- alpine
- archlinux
- centos
- debian
- nixos
- RHEL
- static using musl
- ubuntu
- yocto
CI checks
The following checks are currently done by CI:
- tests
- clippy
- coverage
- cargo-deny
- cargo-outdated
CI cross compilation
The following targets are currently enabled for cross compilation:
- ARM
- RISC-V
Other CI features
The following features are implemented in CI that do not fit in above sections:
- caching
- commits are linted using gitlint
- blocking of "!fixup"/"!squash" commits
- first-time contributor message
- automatic labeling
- automatic assigning issues/PRs
- automatic reviews
- missspell checks
- language checks
GitHub Pages
GitHub Pages are used for
- Code documentation
- website (using zola)
Release automation
Nothing is implemented for release automation yet.
(c) 2022 Matthias Beyer
Licensed as MIT or Apache 2.0 or MPL or WTFPL at your opinion.