diff options
author | Nick Gerace <nickagerace@gmail.com> | 2022-01-13 14:32:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-13 14:32:14 -0500 |
commit | 677acbe145299932a456bef049fe460334fa1296 (patch) | |
tree | 5b7f5963b0295084866e6021e7e7d8cc805f5640 | |
parent | 92e976b207d7c1074bb87432e0e6ca3cd6575cf3 (diff) | |
download | gfold-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.md | 12 | ||||
-rw-r--r-- | .github/pull_request_template.md | 4 | ||||
-rw-r--r-- | Cargo.lock | 12 | ||||
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | LICENSE | 2 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | README.md | 134 | ||||
-rw-r--r-- | RELEASE.md | 1 | ||||
-rw-r--r-- | THANKS.md | 6 |
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. --> @@ -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", @@ -11,6 +11,7 @@ repository = "https://github.com/nickgerace/gfold/" edition = "2021" version = "3.0.0" +rust-version = "1.56.1" [dependencies] anyhow = "1" @@ -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 @@ -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) ~/ @@ -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 @@ -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 @@ -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 |