Hoard 0.5.0 released
Hoard v0.5.0
Announcing the 0.5.0 release of Hoard, the cross-platform dotfile manager!
This release comes with a complete reworking under the hood, which you can read about in the new changelog. Here is a short summary of the user-facing changes:
Breaking Changes
- The operation log file format was changed to better support the new
hoard diffandhoard statuscommands.- Use
hoard upgradeto upgrade your operation logs in-place.
- Use
Features
- Added a new
hoard editcommand to allow users to modify their Hoard configuration file without needing to know where it is stored. - Added new
hoard statusandhoard diffcommands, which help you understand the current state of all of your hoards. See the book for more on each command. - You can now tell Hoard to set special permissions on files and folders that it manages.
Bugfixes
- Fixed an
invalid directivewarning if theHOARD_LOGenvironment variable was not set. - Improved logging output, including cleaning up unnecessary output and making sure error messages are logged where they occur, for maximum context when
HOARD_LOG=debugortrace.
Under the Hood
Basically everything got some amount of refactoring over this release -- too much to list here. These are the highlights:
- Replaced bare
StringandPathbufwith wrapper types that enforce extra invariants. - Added types to cache file operations to decrease runtime.
- Added a dependency on the multi-threaded
tokioruntime, further decreasing runtime to within a few seconds.
The above changes led to an anecdotal runtime decrease from 20 minutes to less than one minute, with multiple hoards, one of which contains multiple large binary files.
Future Plans
Hoard is finally in a usable place for me, so I am going to be taking a break on features for a bit to focus on other projects. After the break, I intend to come back and work on the last major planned feature: file encryption.
I will not be taking a break from fixing bugs, so please report any you find to the issue tracker.