A collection of software to build services and apps in a particular style.
Applications:
appbiotic
, a Rust CLI toolappbiotic-code-error
, error types with well known metadata
Guiding principles, strive for as much as possible:
- code readable
- tools inspectable
- builds hermetic with minimal dependencies
Meaning:
- avoid macros
- avoid non-hermetic generators such as Rust's
build.rs
- avoid tooling not installed by default in CI runner or any additional runtime
In order to develop and test against all features, select the full
feature in your rust-analyzer
settings. This
project's workspace .vscode/settings.json
already has this setting.
Releasing uses cargo-release
:
cargo install --version 0.24.11 cargo-release
Bump version:
cargo-release release version patch --workspace --execute
Push and merge to main. Then tag:
VERSION=$(cargo read-manifest | jq -r '"v" + .version'); \
git tag -s "$VERSION" && \
git tag -v "$VERSION" && \
git push origin "$VERSION"
Publish:
cargo-release release publish --workspace --config .config/.cargo-release/release.toml --execute
Please read the contributing guide for the latest contributing guidelines.