For new changes, please see the current CHANGELOG.
- All notable, released changes to this project from a user's perspective will be documented in this file
- All changes are from @nickgerace unless otherwise specified
- The format was inspired by Keep a Changelog
- This project adheres to Semantic Versioning
Please see CHANGELOG.
- Bump dependencies
- Help message to rely on line wrapping
- Update release binary names for clarity (including fixing the macOS one for the correct architecture)
- Bump dependencies
- Ability to use the standard display mode, but the results are purely alphabetical and not sorted by repository status
- Bump dependencies
- Bump dependencies
- Bump dependencies
- Bump the minor version field instead of the patch field because the dependency tree has significantly changed
- Technically, the sole user-facing change is that the external dependencies have been bumped
- For context,
libgfoldwas newly introduced and contains the majority of the originalgfoldsource code
- Only run CI checks on merge
- Publish and use
libgfoldfor the first time - Split
gfoldinto two crates: a library and a binary - Use cargo workspace dependencies
- Bump dependencies
- Remove
flake.nixdue to lack of use (might return in the future) - Fix missing
4.3.2title in theCHANGELOG
- Bump dependencies
- Add
flake.nixfor more local development options
- Bump dependencies
- Bump LICENSE year
- Add submodule information to the
jsondisplay mode (i.e.gfold -d json)- This information is not yet accessible in other display modes
- Bump dependencies
- Add demo GIF to README
- Performed significant refactor to reduce the usage of "floating" functions (i.e. ensure functions are members of unit structs at minimum) as well as remove reliance on a single generic error enum
- Add "unknown" status for repositories hitting the
extensions.worktreeconfigerror - Bump dependencies
- Change "unpushed" color to blue
- Ignore the
extensions.worktreeconfigerror until the corresponding upstream issue is resolved: libgit2/libgit2#6044
- Bump dependencies
- When checking if "unpushed" and attempting to resolve the reference from a short name, ignore the error and assume we need to push
- Bump dependencies
- Ensure dependencies have their minor version fields locked
- This
CHANGELOGentry was accidentally not included in the4.1.1tag
- Add debug symbol stripping for
cargo installusers (result: ~79% of the size of4.0.1)
- Bump dependencies
- Change CLI library from
arghtoclap v4 - Ensure integration test artifacts exist in the correct location
- Refactor to use
cargoworkspaces, which should unlock the ability to create "scripts" via sub-crates
- Remove ability to print the version as a single JSON field (combine
-V/--versionwith-d/--display json)- Normally, this would necessitate a bump of the "major" field in the version, but
-V/--versionis serializable to JSON (just a string)
- Normally, this would necessitate a bump of the "major" field in the version, but
- Bump dependencies
- Add Bors to avoid merge skew/semantic merge conflicts
- Add color mode option with the following choices: "always", "compatibility" and "never"
- "always": display with rich colors (default)
- "compatibility": display with portable colors
- "never": display with no color
- Add display flag with the following choices: "standard" (or "default"), "json" and "classic"
- "standard" (or "default") and "classic" output options return from the previous release
- "json" output is a new option that displays all results in valid JSON, which is useful for third party applications, plugins, parsers, etc.
- Add documentation comments almost everywhere for
cargo doc - Add git2-rs, which replaces
gitsubcommand usage- Even though
gitsubcommands were used over git2-rs to reduce binary size, significant speed increases could only be achieved by using the latter - More consistent behavior since git2-rs can be tested at a locked version
- Even though
- Add JSON output flag for both version and results printing
- Add roubleshooting section to CLI help
- Add troubleshooting section to README for using
RUST_LOGandRUST_BACKTRACE
- Change config file location from
<prefix>/gfold/gfold.jsonto<prefix>/gfold.toml - Change config file type from JSON to TOML
- Change CLI help sections to be divided by headers
- Drastically improve performance by moving from sequential target generation to nested, parallel iterators for target generation
- Modify grey color default to avoid a bug where the
stdoutcolor is not refreshed withintmuxwhen using macOSTerminal.app - Refactor module layout
displaynow contains its child,colorreportnow contains its child,target
- Refactor testing for the entire crate
- All tests have been replaced in favor on one integration test
- The old tests relied on developer's environment, which is highly variable
- The new test creates multiple files, directories, and repositories in the
targetdirectory to simulate an actual development environment
- Use a harness for the
colormodule instead of individual functions
- Remove debug flag in favor of using
RUST_LOG - Remove display of
nonefields for the standard (default) display of result (i.e. now, if an optional field was not found, it is not shown) - Remove git path option for CLI and config file
- Remove
gitsubcommand usage
- Substantial performance gains should be noticeable in certain scenarios
- Observed range in loose benchmarking "real world" usage: ~1.2x to ~5.1x faster than
gfold 3.0.0on macOS 12.3.1 - Binary size has increased, but speed has taken priority for this release
- Observed range in loose benchmarking "real world" usage: ~1.2x to ~5.1x faster than
- Using
RUST_LOGandRUST_BACKTRACEshould be more helpful when debugging unexpected output, performance or suspected bugs
Please see CHANGELOG_PRE_V4.