diff options
author | Nick Gerace <nickagerace@gmail.com> | 2022-03-30 01:06:52 -0400 |
---|---|---|
committer | Nick Gerace <nickagerace@gmail.com> | 2022-03-30 01:36:38 -0400 |
commit | fde1cd0c5f32e407cddbf677fb86d78a4e028d28 (patch) | |
tree | 1d22cf74e60598022ccd03047e6acdcfa78c237c /docs/DEVELOPING.md | |
parent | 52ccb1444e7aa675430ce4016685e0a60054a1d9 (diff) | |
download | gfold-fde1cd0c5f32e407cddbf677fb86d78a4e028d28.zip |
Enable multi-platform development
TLDR: remove barriers to multi-platform development, like Bash and Make.
Moreover, remove the nightly fmt dependency and improve testing to catch
potential corner cases on multiple platforms.
Core:
- Rename "Reports" to "LabeledReports" since "Reports" is not of implied
type Vec<Report>
Testing:
- Add second half to the integration test: comparing found reports with
expected reports
- Essentially, we run the core gfold loop _again_, but only generate
reports and skip displaying them to stdout
CI:
- Removed nightly fmt check and job
- Moved fmt check to stable
- Update bors toml to match changes
Scripts:
- Convert scripts from Bash scripts to independent crates
(multi-platform friendly)
- Add README to scripts directory
- Ensure script crates do not have their Cargo lockfile tracked in Git
Docs:
- Adding DEVELOPING file to replace Makefile
- Move THANKS and RELEASE files to new docs directory, along with
DEVELOPING
- Replace make commands in README and RELEASE files
Misc:
- Remove Rust nightly dependency since it was solely for imports
granulaity for rustfmt
- This repository is once again only reliant on stable Rust
toolchains
- Remove "rust-version" from Cargo toml since it was unused
- Remove Makefile entirely in favor of DEVELOPING file (multi-platform
friendly)
- Update markdown code block languages as "shell" instead of "bash" to
be multi-platform friendly
Signed-off-by: Nick Gerace <nickagerace@gmail.com>
Diffstat (limited to 'docs/DEVELOPING.md')
-rw-r--r-- | docs/DEVELOPING.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md new file mode 100644 index 0000000..d990684 --- /dev/null +++ b/docs/DEVELOPING.md @@ -0,0 +1,48 @@ +# Developing + +This document contains information related to development. + +## Preparing Changes + +First, update dependencies and tidy your changes. + +```shell +cargo fmt +cargo update +cargo fix --edition-idioms --allow-dirty --allow-staged +cargo clippy --all-features --all-targets +``` + +Now, ensure that lints, tests, and builds succeed. + +```shell +cargo fmt --all -- --check +cargo clippy -- -D warnings +cargo doc +cargo test +cargo build +``` + +> Alternatively, you can replace `cargo test` above with [cargo nextest](https://github.com/nextest-rs/nextest). +> +> ```shell +> cargo nextest run +> ``` + +## Performance Checks + +Navigate to the [README in the `scripts` directory](../scripts/README.md) for more information on +how to run performance checks. + +## Optional Checks + +The following checks are optional and should be run occasionally. + + +```shell +# This command requires a nightly toolchain to be installed. +cargo +nightly udeps +cargo bloat --release +cargo bloat --release --crates +cargo audit +```
\ No newline at end of file |