summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorNick Gerace <nickagerace@gmail.com>2022-10-20 10:11:30 -0400
committerNick Gerace <nick@pop-os.localdomain>2022-10-20 12:30:59 -0400
commit478ec5413d811964845354bef6e48117145294cd (patch)
tree692b6ac2c546aee03f345315089ed7cf0b562ed2 /docs
parent9f27d8be6b3bf3ac0c1ed36c8ef3ead893f02ca4 (diff)
downloadgfold-478ec5413d811964845354bef6e48117145294cd.zip
Update to 4.1.0 and switch from argh to clap v4
- Update to 4.1.0 - Switch from argh to clap v4 - Remove ability to combine display flag with version flag - Move pre-4.0.0 changelog entries to their own file - Ensure integration test artifacts are built in the correct location Signed-off-by: Nick Gerace <nickagerace@gmail.com> Signed-off-by: Nick Gerace <nick@pop-os.localdomain>
Diffstat (limited to 'docs')
-rw-r--r--docs/CHANGELOG_PRE_V4.md522
-rw-r--r--docs/RELEASE.md2
2 files changed, 523 insertions, 1 deletions
diff --git a/docs/CHANGELOG_PRE_V4.md b/docs/CHANGELOG_PRE_V4.md
new file mode 100644
index 0000000..f54b116
--- /dev/null
+++ b/docs/CHANGELOG_PRE_V4.md
@@ -0,0 +1,522 @@
+# Changelog Before Version 4.0.0
+
+For new changes, please see the current [CHANGELOG](../CHANGELOG.md).
+
+- All notable changes to this project will be documented in this file
+- All changes are from [@nickgerace](https://github.com/nickgerace) unless otherwise specified
+- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
+
+## [After 3.0.0]
+
+Please see [CHANGELOG](../CHANGELOG.md).
+
+## [3.0.0] - 2022-01-06
+
+### Added
+
+- Ability to ignore config file options
+- Ability to print merged config options
+- Ability to specify path to `git`
+- Ability to store default path target in config file (defaults to current working directory)
+- Ability to use config file in `$HOME/.config/gfold/gfold.json` and `{FOLDERID_Profile}\.config\gfold\gfold.json`
+- Ability to use old display mode with `--classic` flag and store preference in config file
+- Formal CLI parsing library, `argh`
+- Install and uninstall scripts
+- New display mode that avoids grouping repositories (API-breaking since this is the new default display mode)
+
+### Changed
+
+- Codebase to a domain-driven architecture (major refactor)
+
+### Removed
+
+- Mention of the [deprecated, old Homebrew tap](https://github.com/nickgerace/homebrew-gfold) in the README
+- Short `-h` flag due to CLI crate addition (`argh`)
+
+### Notes
+
+- Evaluated using `tracing` and `tracing-subscriber` over `log` and `env_logger`, but due to their combined larger size, the logging crates remain the same as before.
+- The config file can be non-existent, empty, partially filled out or completely filled out. There's also an option to ignore the config file completely and only use CLI options.
+- This crate has used other CLI parsing libraries in the past, and recently did not use any, but with manual testing and [publicly available benchmarks](https://github.com/rust-cli/argparse-benchmarks-rs/blob/c37e78aabdaa4384a9c49be3735a686803d0e37a/README.md#results), `argh` is now in use.
+
+## [2.0.2] - 2021-12-02
+
+### Changed
+
+- Misc package bumps
+
+## [2.0.1] - 2021-10-29
+
+### Added
+
+- Logger that can be set via an environment variable (`RUST_LOG`)
+
+### Changed
+
+- Permission denied errors to be logged rather than displayed to `stderr`
+
+### Misc
+
+- Ensure `crates.io` and `git` tag are in sync (very slight and accidental derivation for `2.0.0`)
+
+## [2.0.0] - 2021-10-29
+
+### Added
+
+- Discrete Code of Conduct file
+- Unpushed commit checking by default (greedy static analysis, so this may need to be tuned for edge cases)
+- `git` CLI wrapper instead of Git library usage due to security, Git already being installed, inconsistencies between the library and the CLI, and more
+
+### Changed
+
+- Codebase re-write geared towards data-efficiency and parallelism
+- Dramatic runtime speed and binary size improvements (consistently able to reproduce, but heavily variable based on payload, OS, etc.)
+- Entire structure from library-driven to application-driven (no `lib.rs`)
+
+### Removed
+
+- All CLI flags except for `-h/--help` and `-V/--version`
+- CLI crate since it is unneeded
+- Git library usage in favor of leveraging `git` subcommands due to security, Git already being installed, inconsistencies between the library and the CLI, and more
+- `DEVELOPING.md` and `EXTRA.md` since they were outdated/unimportant
+- `lib.rs` and the crate's library-based components
+
+## [1.4.1] - 2021-08-02
+
+### Changed
+
+- Misc package bumps
+
+## [1.4.0] - 2021-06-17
+
+### Changed
+
+- Continue upon PermissionDenied errors rather than exiting
+- Documentation to be moved to the new `docs` directory
+
+## [1.3.0] - 2021-05-25
+
+### Changed
+
+- Config type to be embedded within the Driver
+ - Not in public library modules, but this should improve generation efficiency
+
+### Removed
+
+- `-d/--debug` flag since all logging has been removed from the librariy, and `main.rs` does not log
+- `env_logger` crate
+- `log` crate
+- Logging from the entire library in favor of returning errors when needed and handling when possible/preferred
+
+## [1.2.1] - 2021-05-23
+
+### Changed
+
+- Bold table headers instead of repo names
+
+### Removed
+
+- Extra newline before first entry when printing all tables
+
+## [1.2.0] - 2021-05-16
+
+### Removed
+
+- Middleware `run` function in `lib.rs` since it's unecessary and unintuitive
+ - Before, you used a type from the `driver` module as a parameter for `run`
+ - Now, you only use types from `driver`
+
+## [1.1.1] - 2021-05-16
+
+### Changed
+
+- Config management to be done by applications consuming the library (moved out of `lib.rs`)
+- Driver module to be public
+- Printing to STDOUT to be done by applications consuming the library (moved out of `lib.rs`)
+- `TableWrapper` type to be a private, internal type
+
+## [1.1.0] - 2021-05-15
+
+### Added
+
+- Shallow search flag to disable recursive search (accessible via `-s/--shallow`)
+
+### Changed
+
+- Binary size to be ~60% of the size of `gfold 1.0.4`
+ - Primarily, this was achieved by removing unused default features from imported crates
+ - Runtime speed is the same, better, or more consistent
+- Default search behavior to be recursive rather than shallow
+- Short flag for `--skip-sort` from `-s` to `-x`
+- Workspace implementation to a single crate (similar to before `gfld`)
+
+### Removed
+
+- `gfld`, the lightweight version of `gfold` due the following reasons:
+ - its over ~105% average slower runtime speed (despite it being ~40% of the size)
+ - printing to STDOUT was not consistent in subcommand scenarios
+- Recursive flag since `gfold` uses recursive search by default
+
+## [1.0.4] - 2021-04-04
+
+### Changed
+
+- Fixed final output order (sorted by name, then by status)
+
+## [1.0.3] - 2021-04-02
+
+### Changed
+
+- Directory name finder to default to the current working directory if empty (`gfld`)
+- Misc. optimizations in `gfld`
+- Release profile optimizations to be at workspace scope for binaries
+
+## [1.0.2] - 2021-04-01
+
+### Changed
+
+- `gfld` output to not include parent root since all results started with the same string
+
+## [1.0.1] - 2021-03-30
+
+### Added
+
+- `Cargo.lock` to the workspace to fix AUR builds
+
+## Changed
+
+- CI to use `--locked` for builds
+
+## [1.0.0] - 2021-03-29
+
+### Added
+
+- A brand new, minimal CLI: `gfld`
+- `DEVELOPING.md` for instructions on building `gfld`
+
+### Changed
+
+- Documentation to include `gfld`
+- GitHub issue template to include `gfld` information
+- GitHub PR CI to only build for Linux while keeping macOS and Windows for release CI
+- The repository to be split into two crates: `gfold` and `gfld`
+- Unnecessary `PathBuf` usages to `Path` when possible in `util.rs`
+
+### Removed
+
+- Release workflow for GitHub actions (now, it is "merge only")
+- Uploaded binaries due to lack of checksums and maintenance
+
+## [0.9.1] - 2021-03-16
+
+### Added
+
+- RELEASE file for releasing `gfold`
+
+### Changed
+
+- README installation section to be condensed
+- LICENSE to not use copyright dates or name (reduce maintenance)
+
+### Removed
+
+- Makefile in order to be cross-platform-friendly
+
+## [0.9.0] - 2021-02-15
+
+### Added
+
+- Email display feature
+- Include standard directory feature
+- Shorthand flag for all features without one
+
+### Changed
+
+- Directory walking to skip hidden directories
+- Repository opening check to log error in debug mode rather than panic
+
+### Removed
+
+- File header comments
+- Prettytable macros
+
+## [0.8.4] - 2021-01-26
+
+### Added
+
+- Dependencies section to CHANGELOG
+- `paru` to suggested AUR helpers in README
+
+### Changed
+
+- All CRLF files to LF
+- Condense tests into loops where possible
+- Label `unpush_check` as an experimental feature
+- `macos-amd64` to `darwin-amd64`
+- `unpush_check` from `disable` to `enable`
+
+## [0.8.3] - 2020-12-15
+
+### Added
+
+- Disable unpushed commit check flag and functionality
+- Logging for origin and local reference names for unpushed commit check
+
+## [0.8.2] - 2020-12-14
+
+### Added
+
+- `gfold --version` to issue template
+- Unpush functionality (again)
+
+### Changed
+
+- Unpush function to only return boolean
+
+### Removed
+
+- Contributing section from README to reduce requirements
+- Empty results message since it was potentially misleading
+
+## [0.8.1] - 2020-12-01
+
+### Added
+
+- Condition enum for adding rows to final table
+- Debug flag
+- Many debug statements for the new debug flag
+
+### Changed
+
+- Bare repository checking to original behavior
+- `util.rs` results generation to include Condition enum
+
+### Removed
+
+- Carets from `Cargo.toml` to maintain stability
+- Unpush functionality temporarily
+
+## [0.8.0] - 2020-11-26
+
+### Added
+
+- Debugging calls for general usage and the new unpushed commit code
+- Derive debug to the `Config` struct
+- Lightweight logging stack with `env_logger` and `log`
+- Two files: `driver.rs` and `util.rs`
+- Unpushed commit status functionality and output
+
+### Changed
+
+- Bare repository detection to use upstream function
+- Library contents into `driver.rs` and `util.rs` through a major refactor
+
+## [0.7.1] - 2020-11-18
+
+### Added
+
+- In-depth description of the `run` function
+
+### Changed
+
+- Consolidated boolean test permutations into one test
+
+### Removed
+
+- All non-public comments in `*.rs` files
+
+## [0.7.0] - 2020-11-11
+
+### Added
+
+- Crate to crates.io
+- Crates.io publishing requirements to `[package]` in `Cargo.toml`
+- Homebrew tap
+- Library description to `lib.rs`
+
+### Changed
+
+- Dependency versioning to use carets
+- README mentions of specific version tags
+- README plaintext blocks to single quotes when mixed with formatted text
+- README to sort installation method by package managers first
+
+### Removed
+
+- Public structs and functions without only `run` (primary backend driver) remaining
+
+## [0.6.2] - 2020-11-03
+
+### Added
+
+- No color flag and functionality
+
+### Removed
+
+- Pull request template
+
+## [0.6.1] - 2020-10-12
+
+### Added
+
+- Code of Conduct link
+- GitHub issue template
+- GitHub pull request template
+
+### Changed
+
+- LICENSE to be extended through 2021
+- Match blocks in `lib.rs` to be consolidated
+- Nearly all contents of `lib.rs` to return errors back to the calling function in `main.rs`
+
+### Removed
+
+- Duplicate code related to the match block consolidation
+
+## [0.6.0] - 2020-10-10
+
+### Added
+
+- Doc comments and `cargo doc` to `release` target
+- `eyre` for simple backtrace reporting
+- `gfold-bin` to AUR portion of README
+- `lib.rs` as part of major refactor
+
+### Changed
+
+- Pre-build Makefile targets to be consolidated
+- Refactor source code to be driven by a library, helmed by `lib.rs`
+
+### Removed
+
+- `util.rs` and `gfold.rs` as part of major refactor
+
+## [0.5.2] - 2020-10-08
+
+### Added
+
+- GitHub release downloads to README
+- Binary publishing workflow to the dummy file
+
+### Changed
+
+- Existing merge workflow to use debug building instead of release building
+- Makefile target containing the old default branch name
+
+### Removed
+
+- Makefile target for statically-linked building
+
+## [0.5.1] - 2020-10-07
+
+### Added
+
+- Release dummy GitHub Action
+- Version README badge
+
+### Changed
+
+- A reduction to CI build time and complexity by combining the test and check steps,
+- GitHub workflow "merge" file name to "merge.yml"
+- GitHub workflow name to "merge"
+- OS compatibility claims in README through a simplified list
+- README badges to use shields.io
+
+### Removed
+
+- MUSL mentions in docs
+
+## [0.5.0] - 2020-09-02
+
+### Added
+
+- Recursive search feature and flag
+- Skip sort feature and flag
+- Unit tests for recursive search and skip sort
+- AUR PKGBUILD GitHub repository to README
+- Results and TableWrapper structs, and relevant functions,
+- Three methods for Results struct (printing/sorting/populating results)
+- Make targets for `run-recursive` and `install-local`
+
+### Changed
+
+- Switch from `walk_dir` function to object-driven harness for execution
+- Move `walk_dir` function logic to `Results` method
+- Function `is_git_repo` to its own file
+- Any unnecessary match block to use "expect" instead
+- Cargo install to use a specific tag
+- Version upgrade workflow to Makefile
+
+### Removed
+
+- Leftover "FIXME" comments for recursive search ideas
+
+## [0.4.0] - 2020-08-31
+
+### Added
+
+- Changelog
+- Tags automation
+
+### Changed
+
+- Example output to use mythical repositories
+- Path flag to positional argument
+- Switched to structopt library for CLI parsing
+
+### Removed
+
+- Tag v0.3.0 (duplicate of 0.3.0 with the "v" character)
+- All GitHub releases before 0.3.1
+- Releases information from README
+
+## [0.3.1] - 2020-08-30
+
+### Added
+
+- Add AUR installation documentation
+- Add AUR packages from [@orhun](https://github.com/orhun)
+
+### Changed
+
+- Switch to Apache 2.0 license from MIT license
+- Reorganize build tags, and add test build target
+
+## [0.3.0] - 2020-08-24
+
+### Changed
+
+- Handling for bare repositories to print their status to STDOUT with the mentorship of [@yaahc](https://github.com/yaahc)
+
+## [0.2.2] - 2020-08-24
+
+### Changed
+
+- "Continue" to the next repository object if the current object is bare
+- Release availability in README
+
+## [0.2.1] - 2020-06-08
+
+### Added
+
+- Experimental statically-linked, MUSL support
+
+## [0.2.0] - 2020-05-10
+
+### Changed
+
+- Switched to prettytable-rs
+- Unit tests to work with prettytable-rs
+
+## [0.1.1] - 2020-04-10
+
+### Added
+
+- Example output, contributors, and usage in README
+- Building for Windows, macOS, and Linux amd64 in CI pipeline from [@jrcichra](https://github.com/jrcichra)
+
+## [0.1.0] - 2020-04-08
+
+### Added
+
+- Base contents
diff --git a/docs/RELEASE.md b/docs/RELEASE.md
index 7d177c5..d18cd14 100644
--- a/docs/RELEASE.md
+++ b/docs/RELEASE.md
@@ -16,7 +16,7 @@ Steps should be executed in sequential order.
cargo fmt --all -- --check
cargo clippy -- -D warnings
cargo test
-cargo doc
+RUSTDOCFLAGS="-Dwarnings" cargo doc --all
cargo build
```