diff options
author | Nick Gerace <nickagerace@gmail.com> | 2021-06-17 22:49:47 -0400 |
---|---|---|
committer | Nick Gerace <nickagerace@gmail.com> | 2021-06-17 22:58:48 -0400 |
commit | 72ea1b30a33bceaaf3a27895e67adaa80096be33 (patch) | |
tree | 5e8a10f59bae81a8c6d616eed922f075b4bac4c4 /docs | |
parent | c3aef2868718e34d1d8f43af4ffa530a520a9a2d (diff) | |
download | gfold-72ea1b30a33bceaaf3a27895e67adaa80096be33.zip |
Move docs to their own directory and simplify README
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ADVANCED.md | 31 | ||||
-rw-r--r-- | docs/DEVELOPING.md | 23 | ||||
-rw-r--r-- | docs/RELEASE.md | 49 |
3 files changed, 103 insertions, 0 deletions
diff --git a/docs/ADVANCED.md b/docs/ADVANCED.md new file mode 100644 index 0000000..b136801 --- /dev/null +++ b/docs/ADVANCED.md @@ -0,0 +1,31 @@ +# Advanced Usage + +This document contains recommendations for experienced terminal users and/or frequent `gfold` users. + +## Post-Installation + +It is highly recommended to run `strip` against the binary on compatible systems to reduce executable size. + +```sh +( TEMP=$(command -v gfold); du -h $TEMP; strip $TEMP; du -h $TEMP ) +``` + +> The above script will exit with a non-zero exit code if `gfold` is not installed and/or is not in your `PATH`. + +## Automatic Upgrades with Cargo + +Keeping the crate up to date is easy with [cargo-update](https://crates.io/crates/cargo-update). + +```sh +cargo install cargo-update +cargo install-update -a +``` + +You can chain this together with the **Post-Installation** step for automatic upgrades. + +## Where is `gfld`? + +`gfld` was an experimental, minimal version of `gfold`. +It was intended to potentially replace `gfold`, but has since been removed. +All optimizations and lessons learned from the project have since been integrated into `gfold`. +Check out the [removal issue to learn more](https://github.com/nickgerace/gfold/issues/110).
\ No newline at end of file diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md new file mode 100644 index 0000000..9884d04 --- /dev/null +++ b/docs/DEVELOPING.md @@ -0,0 +1,23 @@ +# Developing + +This document contains all tips, tricks and notes related to developing `gfold`. + +## Building + +On a compatible platform, execute the following commands: + +```sh +TEMP_TARGET=$HOME +cargo update +cargo +nightly fmt +cargo clippy +cargo test +cargo build --release +TEMP_BINARY=target/release/gfold +du -h $TEMP_BINARY | cut -f -1 +strip $TEMP_BINARY +du -h $TEMP_BINARY | cut -f -1 +time $TEMP_BINARY $TEMP_TARGET +``` + +> You can change `TEMP_TARGET` to a directory you'd like to target.
\ No newline at end of file diff --git a/docs/RELEASE.md b/docs/RELEASE.md new file mode 100644 index 0000000..c435d64 --- /dev/null +++ b/docs/RELEASE.md @@ -0,0 +1,49 @@ +# Release + +This document contains all information related to release. + +## Preparation + +- [ ] Change the `version` field in `Cargo.toml` to `<new-tag>` +- [ ] Run the commands and verify that everything looks/works as expected: + +```sh +cargo update +cargo +nightly fmt --all -- --check +cargo clippy -- -D warnings +cargo test -- --nocapture +cargo doc --open +cargo build --release +``` + +- [ ] Change the version in `CHANGELOG.md` and uncomment the line, `<!--The latest version contains all changes.-->`. +- [ ] Create a commit with the following message: `Update to <new-tag>`. Do not push (or merge) the commit. +- [ ] Test the publishing workflow: + +```sh +cargo publish --dry-run +``` + +- [ ] Finally, push (or merge) the preparation commit. + +## Tagging and Publishing + +- [ ] Once the prepation commit has been pushed (or merged) into `main`, execute the following commands: + +```sh +git tag <new-tag> +git push --tags origin main +``` + +- [ ] Now, publish the crate. + +```sh +cargo publish +``` + +- [ ] Check the [crate](https://crates.io/crates/gfold) on `crates.io`. +- [ ] Check the [docs](https://docs.rs/gfold) on `docs.rs`. + +## Updating the Homebrew Tap + +- [ ] Update the formula for the [tap](https://github.com/nickgerace/homebrew-gfold). |