Skip to content

Latest commit

 

History

History
522 lines (317 loc) · 13.1 KB

CHANGELOG_PRE_V4.md

File metadata and controls

522 lines (317 loc) · 13.1 KB

Changelog Before Version 4.0.0

For new changes, please see the current CHANGELOG.

[After 3.0.0]

Please see CHANGELOG.

[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

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, 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

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

[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

[0.1.0] - 2020-04-08

Added

  • Base contents