Skip to content

Commit 2dbdbc3

Browse files
committed
Update documentation to reflect libgfold removal
This commit contains documentation changes to reflect libgfold's removal. It also contains the following changes: - Change CHANGELOG process to add changes at release time rather than iteratively (because I never remember to do it nor is it required in pull requests) - Update "Cargo.toml" to have alphabetically sorted fields for two sections - Convert "THANKS" into "COMMUNITY_THANKS" because source code contributors are not included and the document is meant to highlight those who would not normally appear in a GitHub contributors section - Update manual install instructions to new binary names - Remove library section from README This commit also ensures that CI only runs on relevant paths. Signed-off-by: Nick Gerace <nickagerace@gmail.com>
1 parent b687b82 commit 2dbdbc3

7 files changed

Lines changed: 46 additions & 95 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,17 @@ on:
33
push:
44
branches:
55
- "main"
6+
paths-ignore:
7+
- "**/*.md"
8+
- "LICENSE"
9+
- "assets/*.gif"
610
pull_request:
711
branches:
812
- "main"
13+
paths-ignore:
14+
- "**/*.md"
15+
- "LICENSE"
16+
- "assets/*.gif"
917
concurrency:
1018
group: "${{ github.workflow }}-${{ github.ref }}"
1119
jobs:

‎CHANGELOG.md‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
# Changelog
22

3-
- All notable changes to this project will be documented in this file
3+
- All notable, released changes to this project will be documented in this file
44
- All changes are from [@nickgerace](https://github.com/nickgerace) unless otherwise specified
55
- The format was inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66
- This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
77

8-
## Unreleased
9-
10-
The latest version contains all changes.
11-
128
## 4.5.1 - 2024-12-09
139

1410
### Changed

‎Cargo.toml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
name = "gfold"
33
version = "4.5.1"
44

5+
authors = ["Nick Gerace <nickagerace@gmail.com>"]
56
categories = ["command-line-utilities", "command-line-interface"]
67
description = "CLI tool to help keep track of your Git repositories."
7-
keywords = ["git", "cli"]
8-
readme = "README.md"
9-
authors = ["Nick Gerace <nickagerace@gmail.com>"]
108
edition = "2021"
119
homepage = "https://github.com/nickgerace/gfold"
10+
keywords = ["git", "cli"]
1211
license = "Apache-2.0"
12+
readme = "README.md"
1313
repository = "https://github.com/nickgerace/gfold"
1414

1515
[profile.release]
1616
codegen-units = 1
17-
opt-level = 3
18-
strip = true
1917
lto = true
18+
opt-level = 3
2019
panic = "abort"
20+
strip = true
2121

2222
[dependencies]
2323
anyhow = { version = "1.0", features = ["backtrace"] }

‎README.md‎

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -112,29 +112,17 @@ Now, you can update the config file within your repository and include the linki
112112

113113
[![Packaging status](https://repology.org/badge/vertical-allrepos/gfold.svg)](https://repology.org/project/gfold/versions)
114114

115-
### Homebrew
115+
### Homebrew (macOS and Linux)
116116

117-
You can use [Homebrew](https://brew.sh) to install `gfold` with a choice of two methods.
117+
You can use [Homebrew](https://brew.sh) to install `gfold` using the [core formulae](https://formulae.brew.sh/formula/gfold).
118118

119-
#### Core (macOS and Linux)
120-
121-
`gfold` is now available in the [core formulae](https://formulae.brew.sh/formula/gfold)!
122119
However, you may run into a naming collision on macOS if [coreutils](https://formulae.brew.sh/formula/coreutils) is installed via `brew`.
123120
See the [troubleshooting](#troubleshooting-and-known-issues) section for a workaround and more information.
124121

125122
```shell
126123
brew install gfold
127124
```
128125

129-
#### Tap (macOS only)
130-
131-
The [tap](https://github.com/nickgerace/homebrew-nickgerace/blob/main/Formula/gfold.rb) is still available if you would like to use it.
132-
This is subject to change.
133-
134-
```shell
135-
brew install nickgerace/nickgerace/gfold
136-
```
137-
138126
### Arch Linux
139127

140128
You can use [pacman](https://wiki.archlinux.org/title/Pacman) to install `gfold` from the [extra repository](https://archlinux.org/packages/extra/x86_64/gfold/).
@@ -187,6 +175,11 @@ For an example on how to do that, refer to the [manual install](./docs/MANUAL_IN
187175

188176
If you would like an example on how to build from source, refer to the [manual install](./docs/MANUAL_INSTALL.md) guide.
189177

178+
### Deprecated: Homebrew Tap (macOS only)
179+
180+
The [tap located at nickgerace/homebrew-nickgerace](https://github.com/nickgerace/homebrew-nickgerace/blob/main/Formula/gfold.rb) has been deprecated.
181+
Please use the aforementioned core Homebrew package instead.
182+
190183
### Preferred Installation Method Not Listed?
191184

192185
Please [file an issue](https://github.com/nickgerace/gfold/issues/new)!
@@ -196,13 +189,6 @@ Please [file an issue](https://github.com/nickgerace/gfold/issues/new)!
196189
`gfold` is intended to be ran on _any_ tier one Rust 🦀 target.
197190
Please [file an issue](https://github.com/nickgerace/gfold/issues) if your platform is unsupported.
198191

199-
## Usage as a Library
200-
201-
There are two ways to use `gfold` as a "library".
202-
203-
1. Use the [`libgfold`](./lib/libgfold/README.md) crate that powers `gfold`
204-
1. Consume valid JSON results from `gfold -d json` (not a library, but useful for non-Rust applications)
205-
206192
## Troubleshooting and Known Issues
207193

208194
If you encounter unexpected behavior or a bug and would like to see more details, please run `gfold` with the following
@@ -241,7 +227,7 @@ This repository's tracking issue is [#205](https://github.com/nickgerace/gfold/i
241227

242228
## Community
243229

244-
For more information and thanks to contributors, users, and the "community" at large, please refer to the **[THANKS](./docs/THANKS.md)** file.
230+
For more information and thanks to users and the "community" at large, please refer to the **[COMMUNITY THANKS](./docs/COMMUNITY_THANKS.md)** file.
245231

246232
- [Packages for NixOS, Arch Linux and more](https://repology.org/project/gfold/versions)
247233
- ["One Hundred Rust Binaries"](https://www.wezm.net/v2/posts/2020/100-rust-binaries/page2/), an article that featured `gfold`

docs/THANKS.md renamed to docs/COMMUNITY_THANKS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# Thanks
1+
# Community Thanks
2+
3+
This document contains "thank you" messages to those who aided or contributed to this project outside of source code changes and issues filed to this repository.
24

35
- [@AcksID](https://github.com/AckslD/nvim-gfold.lua) for creating and maintaining [nvim-gfold.lua](https://github.com/AckslD/nvim-gfold.lua), a `neovim` plugin for `gfold`
46
- [@jrcichra](https://github.com/jrcichra) for adding multi-OS support to the original, early-stage CI pipeline

‎docs/MANUAL_INSTALL.md‎

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ This document contains methods on how to install `gfold` "manually" (i.e. withou
66

77
Executing the commands in this section requires the following:
88

9-
- macOS or Linux (GNU, not MUSL) system
10-
- `x86_64 / amd64` architecture
9+
- macOS `aarch64` or Linux (GNU) `x86_64` system
1110
- `bash` shell (or compatible)
1211
- `jq`, `wget` and `curl` installed and in `PATH`
1312

@@ -22,27 +21,23 @@ for BINARY in "jq" "wget" "curl"; do
2221
done
2322
```
2423

25-
Now, let's determine which binary we need to choose based on our platform.
24+
Now, we need to determine to latest tag to build our release URL.
2625

2726
```bash
28-
INSTALL_OS=""
29-
if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "x86_64" ]; then
30-
INSTALL_OS="linux-gnu"
31-
elif [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "x86_64" ]; then
32-
INSTALL_OS="darwin"
33-
else
34-
echo "must execute on Linux or Darwin x86_64 (x86_64 / amd64) host"
35-
return
36-
fi
27+
LATEST=$(curl -s https://api.github.com/repos/nickgerace/gfold/releases/latest | jq -r ".tag_name")
3728
```
3829

39-
We need to determine to latest tag to build our release URL.
30+
Choose our platform.
4031

4132
```bash
42-
LATEST=$(curl -s https://api.github.com/repos/nickgerace/gfold/releases/latest | jq -r ".tag_name")
33+
# If we are using Linux (GNU) x86_64...
34+
INSTALL_PLATFORM=linux-gnu-x84-64
35+
36+
# If we are using macOS aarch64 (i.e. Apple Silicon or arm64)
37+
INSTALL_PLATFORM=darwin-aarch64
4338
```
4439

45-
With the latest tag and platform determined, we can finally download and install `gfold` to `/usr/local/bin/`.
40+
With the latest tag and platform in hand, we can download and install `gfold` to `/usr/local/bin/`.
4641

4742
```bash
4843
# Remove gfold if it is already in /tmp.
@@ -51,7 +46,7 @@ if [ -f /tmp/gfold ]; then
5146
fi
5247

5348
# Perform the download.
54-
wget -O /tmp/gfold https://github.com/nickgerace/gfold/releases/download/$LATEST/gfold-$INSTALL_OS-amd64
49+
wget -O /tmp/gfold https://github.com/nickgerace/gfold/releases/download/$LATEST/gfold-$INSTALL_PLATFORM
5550

5651
# Set executable permissions.
5752
chmod +x /tmp/gfold
@@ -84,10 +79,8 @@ If you want to install from source locally, and not from [crates.io](https://cra
8479
This should work on all major platforms.
8580

8681
```bash
87-
git clone https://github.com/nickgerace/gfold.git
88-
cd gfold; cargo install --path crates/gfold
82+
git clone https://github.com/nickgerace/gfold.git; cd gfold; cargo install
8983
```
9084

9185
The commands above were tested on macOS.
92-
Slight modification may be required for your platform, but the flow should be the same: clone, change directory and run
93-
`cargo install`.
86+
Slight modification may be required for your platform, but the flow should be the same: clone, change directory and run `cargo install`.

‎docs/RELEASE.md‎

Lines changed: 8 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,60 +10,26 @@ Generally, the versioning scheme looks like the following formats where `X` is a
1010
- **Release candidates (RCs):** `X.X.X-rc.X`
1111
- **Full releases:** `X.X.X`
1212

13-
## Overview
14-
15-
If only `gfold` has changed, release `gfold` alone.
16-
If `libgfold` has changed, release `libgfold` and _then_ `gfold`.
17-
18-
## Checklist for `libgfold`
19-
20-
Steps should be executed in sequential order.
21-
22-
- [ ] Checkout and rebase `main` to its latest commit and checkout a new branch
23-
- [ ] Change the `version` field in [`Cargo.toml`](../lib/libgfold/Cargo.toml) to the new tag
24-
- [ ] Use the new version in the `gfold` [`Cargo.toml`](../lib/gfold/Cargo.toml) file
25-
- [ ] Change the version in [`CHANGELOG.md`](../CHANGELOG.md) and uncomment the following line: `<!--The latest version contains all changes.-->` (skip this for release candidates)
26-
- [ ] Verify that everything looks/works as expected:
27-
28-
```shell
29-
just ci
30-
```
31-
32-
- [ ] Create and _do not merge_ a commit with the following message: `Update libgfold to <tag>`
33-
- [ ] Test and verify the publishing workflow:
34-
35-
```shell
36-
cargo publish --dry-run -p libgfold
37-
```
38-
39-
- [ ] Merge the preparation commit into `main`
40-
- [ ] Publish the crate:
41-
42-
```shell
43-
cargo publish -p libgfold
44-
```
45-
46-
- [ ] Verify that the [crate](https://crates.io/crates/libgfold) on `crates.io` looks correct
47-
- [ ] Ensure that the [docs](https://docs.rs/libgfold/latest/libgfold/) on `docs.rs` look correct
48-
49-
## Checklist for `gfold`
13+
## Checklist
5014

5115
Steps should be executed in sequential order.
5216

5317
- [ ] Checkout and rebase `main` to its latest commit, then checkout a new branch
54-
- [ ] Change the `version` field in [`Cargo.toml`](../bin/gfold/Cargo.toml) to the new tag
55-
- [ ] Change the version in [`CHANGELOG.md`](../CHANGELOG.md) and uncomment the following line: `<!--The latest version contains all changes.-->` (skip this for release candidates)
18+
- [ ] Change the `version` field in [`Cargo.toml`](../Cargo.toml) to the new tag
19+
- [ ] Open a web browser tab to the following link: `https://github.com/nickgerace/gfold/compare/<last-tag>...main`
20+
- [ ] Add a new section the version in [`CHANGELOG.md`](../CHANGELOG.md) with the current date
21+
- [ ] Using the diff, commit messages and commit title, populate the new section with all user-relevant changes
5622
- [ ] Verify that everything looks/works as expected:
5723

5824
```shell
5925
just ci
6026
```
6127

62-
- [ ] Create and _do not merge_ a commit with the following message: `Update gfold to <tag>`
28+
- [ ] Create and _do not merge_ a commit with the following message: `Update to <tag>`
6329
- [ ] Test and verify the publishing workflow:
6430

6531
```shell
66-
cargo publish --dry-run -p gfold
32+
cargo publish --dry-run
6733
```
6834

6935
- [ ] Merge the preparation commit into `main`
@@ -78,7 +44,7 @@ git push --tags origin main
7844
- [ ] Publish the crate:
7945

8046
```shell
81-
cargo publish -p gfold
47+
cargo publish
8248
```
8349

8450
- [ ] Verify that the [crate](https://crates.io/crates/gfold) on `crates.io` looks correct

0 commit comments

Comments
 (0)