-
-
Notifications
You must be signed in to change notification settings - Fork 344
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Generated by Cargo | ||
# will have compiled files and executables | ||
**/target/ | ||
|
||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries | ||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html | ||
Cargo.lock | ||
|
||
# These are backup files generated by rustfmt | ||
**/*.rs.bk | ||
|
||
# These are temp files generated by trybuild | ||
wip | ||
|
||
# coverage reports | ||
**/*.profraw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/usr/bin/env just --justfile | ||
|
||
@_default: | ||
just --list | ||
|
||
# Clean all build artifacts | ||
clean: | ||
cargo clean | ||
|
||
# Update all dependencies, including the breaking changes. Requires nightly toolchain (install with `rustup install nightly`) | ||
update: | ||
cargo +nightly -Z unstable-options update --breaking | ||
cargo update | ||
|
||
# Quick compile without building a binary | ||
check: | ||
RUSTFLAGS='-D warnings' cargo check --workspace --all-targets | ||
|
||
# Build the library | ||
build: | ||
cargo build --workspace | ||
|
||
# Run cargo clippy to lint the code | ||
clippy: | ||
cargo clippy --all-targets --workspace -- -D warnings | ||
|
||
# Test code formatting | ||
test-fmt: | ||
cargo fmt --all -- --check | ||
|
||
# Reformat all code `cargo fmt`. If nightly is available, use it for better results | ||
fmt: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
if command -v cargo +nightly &> /dev/null; then | ||
echo 'Reformatting Rust code using nightly Rust fmt to sort imports' | ||
cargo +nightly fmt --all -- --config imports_granularity=Module,group_imports=StdExternalCrate | ||
else | ||
echo 'Reformatting Rust with the stable cargo fmt. Install nightly with `rustup install nightly` for better results' | ||
cargo fmt --all | ||
fi | ||
# Run all tests | ||
test: | ||
cargo test --all-targets --workspace | ||
|
||
# Test documentation | ||
test-doc: | ||
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps | ||
|
||
# Build and open code documentation | ||
docs: | ||
cargo doc --no-deps --open | ||
|
||
# Print Rust version information | ||
rust-info: | ||
rustc --version | ||
cargo --version | ||
|
||
# Run all tests as expected by CI | ||
ci-test: rust-info test-fmt clippy build test test-doc | ||
|
||
# Run minimal subset of tests to ensure compatibility with MSRV (Minimum Supported Rust Version). This assumes the default toolchain is already set to MSRV. | ||
ci-test-msrv: rust-info build test |