summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Gerace <nickagerace@gmail.com>2022-01-13 14:32:14 -0500
committerGitHub <noreply@github.com>2022-01-13 14:32:14 -0500
commit677acbe145299932a456bef049fe460334fa1296 (patch)
tree5b7f5963b0295084866e6021e7e7d8cc805f5640
parent92e976b207d7c1074bb87432e0e6ca3cd6575cf3 (diff)
downloadgfold-677acbe145299932a456bef049fe460334fa1296.zip
Add msrv for local development (#167)
* Add msrv for local development - Add msrv for local development in "rust-version" field - Add name and years details to LICENSE - Add nixpkgs install option - Update misc packages Signed-off-by: Nick Gerace <nickagerace@gmail.com> * Remove PR and issue templates Remove PR and issue templates due to their lack of use. If gfold grows significantly in users, they will be added back. Signed-off-by: Nick Gerace <nickagerace@gmail.com>
-rw-r--r--.github/ISSUE_TEMPLATE/issue.md12
-rw-r--r--.github/pull_request_template.md4
-rw-r--r--Cargo.lock12
-rw-r--r--Cargo.toml1
-rw-r--r--LICENSE2
-rw-r--r--Makefile4
-rw-r--r--README.md134
-rw-r--r--RELEASE.md1
-rw-r--r--THANKS.md6
9 files changed, 88 insertions, 88 deletions
diff --git a/.github/ISSUE_TEMPLATE/issue.md b/.github/ISSUE_TEMPLATE/issue.md
deleted file mode 100644
index af7aaf8..0000000
--- a/.github/ISSUE_TEMPLATE/issue.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-name: Issue
-about: Create an issue.
----
-
-<!-- Thanks for filing an issue! Since this is a volunteer-ran repository, filing out your issue with the following can help get your issue solved quickly: -->
-
-<!-- 1) A clear description of the issue (alongside reproduction steps, as needed) -->
-<!-- 2) What OS you are using -->
-<!-- 3) Your method of installing/obtaining the application, if relevant -->
-<!-- 4) The output of `gfold -V` (confirm the version based on the `gfold` installation in your `PATH`) -->
-<!-- 5) The output of `gfold --debug`, if relevant -->
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 7440c61..0000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- Thanks for filing a PR! Since this is a volunteer-ran repository, filing out your PR with the following can help get your PR reviewed quickly: -->
-
-<!-- 1) Please describe what your PR does and the reasonining behind it. -->
-<!-- 2) Please link relevant issue(s), as needed. -->
diff --git a/Cargo.lock b/Cargo.lock
index bbc99b8..58e5763 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -68,9 +68,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "crossbeam-channel"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -89,9 +89,9 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.5"
+version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
+checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -102,9 +102,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
+checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120"
dependencies = [
"cfg-if",
"lazy_static",
diff --git a/Cargo.toml b/Cargo.toml
index 3958038..9d92a9e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,6 +11,7 @@ repository = "https://github.com/nickgerace/gfold/"
edition = "2021"
version = "3.0.0"
+rust-version = "1.56.1"
[dependencies]
anyhow = "1"
diff --git a/LICENSE b/LICENSE
index cbd5c75..3b5da67 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,6 +186,8 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
+ Copyright 2020-2022 Nick Gerace
+
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
diff --git a/Makefile b/Makefile
index 136f214..e2830a5 100644
--- a/Makefile
+++ b/Makefile
@@ -44,6 +44,10 @@ scan:
cd $(MAKEPATH); cargo audit
.PHONY: scan
+msrv:
+ cd $(MAKEPATH); cargo msrv
+.PHONY: msrv
+
bench-loosely:
@echo "============================================================="
@time $(shell which gfold) ~/
diff --git a/README.md b/README.md
index 29cba1d..45d57c4 100644
--- a/README.md
+++ b/README.md
@@ -48,132 +48,140 @@ This app displays relevant information for multiple Git repositories in one to m
While this tool might seem limited in scope and purpose, that is by design.
By default, `gfold` looks at every Git repository via traversal from the current working directory.
-However, if you would like to target another directory, you can pass that path (relative or absolute) as the first argument or change the default path in the config file.
+If you would like to target another directory, you can pass its path (relative or absolute) as the first argument or change the default path in the config file.
-## Installation
+After traversal, `gfold` leverages [rayon](https://github.com/rayon-rs/rayon) to perform concurrent, read-only analysis of all Git repositories detected.
+Analysis is performed with the `git` CLI rather than [libgit2](https://github.com/rust-lang/git2-rs) to reduce binary size.
-[![Packaging status](https://repology.org/badge/vertical-allrepos/gfold.svg)](https://repology.org/project/gfold/versions)
+## Usage
-**macOS users:** you can use [Homebrew](https://brew.sh) to install the [tap](https://github.com/nickgerace/homebrew-nickgerace/blob/main/Formula/gfold.rb).
+Pass in `--help` flag to see all the options for using this application.
```bash
-brew install nickgerace/nickgerace/gfold
+gfold
+gfold ..
+gfold $HOME
+gfold ~/
+gfold /this/is/an/absolute/path
+gfold ../../this/is/a/relative/path
```
-_Note:_ the tap may not work with [Linuxbrew](https://docs.brew.sh/Homebrew-on-Linux).
+### Config File
-**Arch Linux users:** you can use [pacman](https://wiki.archlinux.org/title/Pacman) to install `gfold` from the [community repository](https://archlinux.org/packages/community/x86_64/gfold/):
+Upon execution, `gfold` will look for a config file at the following path on macOS, Linux and similar operating systems:
```bash
-pacman -S gfold
+$HOME/.config/gfold/gfold.json
```
-[Development (VCS) package](https://aur.archlinux.org/packages/gfold-git/) can be installed from the AUR:
+On Windows, the config file is located at the following path:
-```bash
-paru -S gfold-git
+```powershell
+{FOLDERID_Profile}\.config\gfold\gfold.json
```
-_Note:_ the above example uses [paru](https://github.com/Morganamilo/paru), which is an [AUR helper](https://wiki.archlinux.org/index.php/AUR_helpers) used to install packages from the AUR.
+Creating and using the config file is entirely optional, and you can ignore your config file at any time using the `-i` flag.
-**Rust developers and Cargo users:** you can use [cargo](https://crates.io) to install the [crate](https://crates.io/crates/gfold) on almost any platform.
+Here is an example creation workflow for a config file:
```bash
-cargo install gfold
+gfold --classic ~/ --print > $HOME/.config/gfold/gfold.json
```
-Keeping the crate up to date is easy with [cargo-update](https://crates.io/crates/cargo-update).
+This config file will default to the classic display mode and set the default path to `$HOME`, rather than the current working directory.
-```bash
-cargo install cargo-update
-cargo install-update -a
+Here are the contents of the resulting config file:
+
+```json
+{
+ "path": "/home/neloth",
+ "display_mode": "Classic",
+ "git_path": null
+}
```
-**Install from source:** if you want to install from source, and not from [crates.io](https://crates.io/crates/gfold), you can clone the repository and build `gfold`.
+You can back up a config file and track its history with `git`.
+On macOS, Linux, and most systems, you can link the file back to a `git` repository.
```bash
-git clone https://github.com/nickgerace/gfold.git
-cd gfold
-make install
+ln -s path/to/repository/gfold.json $HOME/.config/gfold/gfold.json
```
-**Download a binary:** if you do not want to use one of the above installation methods, you can download a binary from the [releases](https://github.com/nickgerace/gfold/releases) page.
+Now, you can update the config file within your repository and include the linking as part of your environment setup workflow.
-```bash
-curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/install.sh | bash
-```
+## Installation
-_Note:_ the installation convenience script _does not verify the binary with a checksum_.
-Discretion is advised, including downloading and reading the script before execution.
+[![Packaging status](https://repology.org/badge/vertical-allrepos/gfold.svg)](https://repology.org/project/gfold/versions)
-To uninstall `gfold` fully, after using this installation method, execute the following script:
+**macOS users:** you can use [Homebrew](https://brew.sh) to install the [tap](https://github.com/nickgerace/homebrew-nickgerace/blob/main/Formula/gfold.rb).
```bash
-curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/uninstall.sh | bash
+brew install nickgerace/nickgerace/gfold
```
-The uninstall script can also be used for cleanup in the event of a failed install.
+_Note:_ the tap may not work with [Linuxbrew](https://docs.brew.sh/Homebrew-on-Linux).
-+**Don't see your preferred package manager?:** please [file an issue](https://github.com/nickgerace/gfold/issues/new/choose)!
+**Arch Linux users:** you can use [pacman](https://wiki.archlinux.org/title/Pacman) to install `gfold` from the [community repository](https://archlinux.org/packages/community/x86_64/gfold/).
-## Usage
+```bash
+pacman -S gfold
+```
-Pass in `--help` flag to see all the options for using this application.
+If you'd like the [development (VCS) package](https://aur.archlinux.org/packages/gfold-git/), you can install it from the AUR.
```bash
-gfold
-gfold ..
-gfold $HOME
-gfold ~/
-gfold /this/is/an/absolute/path
-gfold ../../this/is/a/relative/path
+paru -S gfold-git
```
-### Config File
+_Note:_ the above example uses [paru](https://github.com/Morganamilo/paru), which is an [AUR helper](https://wiki.archlinux.org/index.php/AUR_helpers) used to install packages from the AUR.
-Upon execution, `gfold` will look for a config file at the following path on macOS, Linux and similar operating systems:
+**Nix and NixOS users:** you can install `gfold` from [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/version-management/git-and-tools/gfold/default.nix):
```bash
-$HOME/.config/gfold/gfold.json
+nix-env --install ripgrep
```
-On Windows, the config file is located at the following path:
+**Rust developers and Cargo users:** you can use [cargo](https://crates.io) to install the [crate](https://crates.io/crates/gfold) on almost any platform.
-```powershell
-{FOLDERID_Profile}\.config\gfold\gfold.json
+```bash
+cargo install gfold
```
-Creating and using the config file is entirely optional, and you can ignore your config file at any time using the `-i` flag.
+Keeping the crate up to date is easy with [cargo-update](https://crates.io/crates/cargo-update).
-#### Example: Creating a Config File
+```bash
+cargo install cargo-update
+cargo install-update -a
+```
-Here is an example creation workflow for a config file.
-This config file will default to the classic display mode and set the default path to `$HOME`, rather than the current working directory.
+**Build and install from source:** if you want to install from source, and not from [crates.io](https://crates.io/crates/gfold), you can clone the repository and build `gfold`.
```bash
-gfold --classic ~/ --print > $HOME/.config/gfold/gfold.json
+(
+ git clone https://github.com/nickgerace/gfold.git
+ cd gfold
+ make install
+)
```
-Here are the contents of the resulting config file:
+**Download a binary:** if you do not want to use one of the above installation methods, you can download a binary from the [releases](https://github.com/nickgerace/gfold/releases) page.
-```json
-{
- "path": "/home/neloth",
- "display_mode": "Classic",
- "git_path": null
-}
+```bash
+curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/install.sh | bash
```
-#### Example: Backing Up a Config file
+_Note:_ the installation convenience script _does not verify the binary with a checksum_.
+Discretion is advised, including downloading and reading the script before execution.
-You can back up a config file and track its history with `git`.
-On macOS, Linux, and most systems, you can link the file back to a `git` repository.
+To uninstall `gfold` fully, after using this installation method, execute the following script:
```bash
-ln -s path/to/repository/gfold.json $HOME/.config/gfold/gfold.json
+curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/uninstall.sh | bash
```
-Now, you can update the config file within your repository and include the linking as part of your environment setup workflow.
+The uninstall script can also be used for cleanup in the event of a failed install.
+
+**Preferred package manager not listed:** please [file an issue](https://github.com/nickgerace/gfold/issues/new/choose)!
## Compatibility
diff --git a/RELEASE.md b/RELEASE.md
index 98b20a8..a2ee929 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -17,7 +17,6 @@ make ci build
```
- [ ] Create and _do not merge_ a commit with the following message: `Update to <tag>`
-
- [ ] Test and verify the publishing workflow:
```bash
diff --git a/THANKS.md b/THANKS.md
index a710775..a1b7247 100644
--- a/THANKS.md
+++ b/THANKS.md
@@ -1,5 +1,7 @@
-## Special Thanks
+# Thanks
- [@jrcichra](https://github.com/jrcichra) for adding multi-OS support to the original, early-stage CI pipeline
-- [@orhun](https://github.com/orhun) for maintaining [all AUR packages](https://github.com/orhun/PKGBUILDs)
+- [@orhun](https://github.com/orhun) for maintaining [all AUR packages](https://github.com/orhun/PKGBUILDs) and for adding `gfold` to the [Arch Linux community repository](https://archlinux.org/packages/community/x86_64/gfold/)
+- [@shanesveller](https://github.com/shanesveller) for adding `gfold` to [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/version-management/git-and-tools/gfold/default.nix)
+- [@wezm](https://github.com/wezm) for featuring `gfold` in the ["One Hundred Rust Binaries"](https://www.wezm.net/v2/posts/2020/100-rust-binaries/page2/) series
- [@yaahc](https://github.com/yaahc) for mentoring during an early refactor