summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorNick Gerace <nickagerace@gmail.com>2021-06-17 22:49:47 -0400
committerNick Gerace <nickagerace@gmail.com>2021-06-17 22:58:48 -0400
commit72ea1b30a33bceaaf3a27895e67adaa80096be33 (patch)
tree5e8a10f59bae81a8c6d616eed922f075b4bac4c4 /docs
parentc3aef2868718e34d1d8f43af4ffa530a520a9a2d (diff)
downloadgfold-72ea1b30a33bceaaf3a27895e67adaa80096be33.zip
Move docs to their own directory and simplify README
Diffstat (limited to 'docs')
-rw-r--r--docs/ADVANCED.md31
-rw-r--r--docs/DEVELOPING.md23
-rw-r--r--docs/RELEASE.md49
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).