Skip to content

Releases: Byron/dua-cli

v2.25.0

03 Jan 09:32
ad7c77a
Compare
Choose a tag to compare

Chore

  • remove obsolete tui-shared feature

New Features

  • add --log-file flag to keep track of some debug info, which includes panics.
    Previously, when dua i was used, panics would be hard to observe, if at all,
    as they would print to the alternate screen. Now, when the --log-file dua.log
    is specified, the panic will be emitted into the log file instead and thus won't
    be lost anymore.

    This may help with debugging in future.

Bug Fixes

  • --ignore-dirs now work as expected.
    Previously they would need to be specified as relative to the traversal root, which
    was unintuitive and would lead to ignores not working for many.

    Even though this was done for performance to avoid canonicalization, we do now
    perform a more performance version of canonicalization so the overall performance
    should be acceptable nonetheless.

    Also note that ignored directories are now logged when using a --log-file.

  • consistent language across the application and improved style of the Help pane.
    Generally, what was called entry is now called item, consistently.

Other

  • clarify that (and why) termion isn't supported anymore in README.md
    This was triggered by crossterm essentially breaking event handling
    on Windows, which is when I decided to just use the seemingly more
    powerful crossterm events natively.

    Overall, this made event handling more complex, but also allows users of
    crosstermion (the crate that actually dropped termion support) to
    write even more interactive applications without worrying about
    the always out-of-date intermediate layer.

    Interestingly, the crosstermion crate adds some useful features around event handling,
    but also optimizes build times thanks to termion, which is something that
    on my current machine I don't notice anymore, so the value of it diminished greatly.

Commit Statistics

  • 13 commits contributed to the release over the course of 7 calendar days.
  • 7 days passed between releases.
  • 5 commits were understood as conventional.
  • 2 unique issues were worked on: #196, #208

Commit Details

view details
  • #196
    • --ignore-dirs now work as expected. (49f98f5)
  • #208
    • Remove obsolete tui-shared feature (e992659)
    • Clarify that (and why) termion isn't supported anymore in README.md (729e7e9)
  • Uncategorized
    • Use gix-path for more control and performance. (93f0f61)
    • Refactor (7905b48)
    • Fix ignore dirs wip (e2d5a34)
    • Merge branch 'logging' (196f0d6)
    • Add --log-file flag to keep track of some debug info, which includes panics. (6fbe17f)
    • Enforce Rust 2021 style (45d886a)
    • Merge branch 'help-language-consistency' (0a0dfe6)
    • Consistent language across the application and improved style of the Help pane. (20e85c1)
    • Option to enable debug logs (4482e1d)
    • Keep consistent language/punctuation/case throughout the app. (1e6db58)

v2.24.2

26 Dec 21:11
c973826
Compare
Choose a tag to compare

Bug Fixes

  • avoid duplicate key input on windows.
    On Windows, key-states like press/release/repeat are made available
    separately, which means we should avoid responding to key-releases
    as it would incorrectly double the actual user inputs.

Commit Statistics

  • 3 commits contributed to the release.
  • 1 day passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #203

Commit Details

view details
  • #203
    • Avoid duplicate key input on windows. (b5b8aa2)
    • Upgrade to latest verison of tui-crates and native crossterm events. (90b65d5)
  • Uncategorized
    • Merge branch 'tui-crates-upgrade' (edbb446)

v2.24.1

25 Dec 07:11
46fece5
Compare
Choose a tag to compare

Bug Fixes

  • keep checking for existance of entries outside of the glob top-level.
    The glob top-level is used to display all search results which means
    that there can be a lot of them, which would unnecessarily slow down
    the search operation.

    Previously it would never check for the existence of an entry in glob mode,
    but now it will do so outside of the top-level.

Commit Statistics

  • 1 commit contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Keep checking for existance of entries outside of the glob top-level. (8ae727e)

v2.24.0

24 Dec 09:59
f7958cc
Compare
Choose a tag to compare

This release adds long-awaited globbing support, just hit the / key to get started.

You want to find the biggest .git directories? Just type /.git/<enter> and you are done.
What about all target directories? Just write target/ to the glob search prompt and it's done.
What about all directories ending in *.rs/?
Oh, by accident you typed *.rs and now there is a list of a quarter million of entries? No problem,
it's near instant even with millions of files to search or hundreds of thousands to display.

Note that glob-mode can be exited only by pressing ESC when the glob prompt has focus.

Special thanks go to the contributor who made this feature happen,
along with many other improvements. Now dua feels refreshed for 2024, and is much more versatile.

Happy holidays!

Commit Statistics

  • 29 commits contributed to the release over the course of 12 calendar days.
  • 12 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #197

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #197
    • EntryData size test passes on 32-bit (9123ee7)
  • Uncategorized
    • Update dependencies (bc8c7a6)
    • Upgrade owo-colors to v4.0 (141c56c)
    • Update changelog prior to release; bump version (cfa8faa)
    • Merge branch 'glob-review' (1c4d6a7)
    • Use gix-glob for matching; support for matching dirs only. (2e1858c)
    • Remove treeview abstraction in favor of something simpler (3804a1f)
    • Refactor glob widget (b945a1e)
    • More copy-on-write for entries (bc56664)
    • Refactor shortening (8fae939)
    • Thanks clippy (b431ec3)
    • Shorten long paths so that they fit on the screen (7660d64)
    • Show error message on empty search result (360a0d7)
    • Glob most used keys (ff07f39)
    • Fix formatting (0a344fa)
    • Fix cursor rendering (aaa27e8)
    • Small code review fixes (49aecb9)
    • Use appropriate tree view when listing entries (7244bac)
    • Replace EntryData in EntryDataBundle with individual properties (f3b5d00)
    • Implements glob search mode (df6a02c)
    • Merge pull request #201 from Byron/dependabot/cargo/zerocopy-0.7.31 (b23e134)
    • Bump zerocopy from 0.7.30 to 0.7.31 (3efc857)
    • Merge branch 'add_missing_slash_in_root_dir' (9a15867)
    • Make clear why roots were special cased, and try to restore that behaviour. (94c008f)
    • Adds the missing '/' prefix for root directories (101a377)
    • Merge branch 'app_state_init_refactor' (f23a57f)
    • Minior refactor (6f09882)
    • Refactors AppState initialization during app startup (238bc5f)
    • Merge pull request #198 from cinerea0/fix-32bit-test (1b838f9)

v2.23.0

11 Dec 12:03
491b558
Compare
Choose a tag to compare

New Features

  • display the total count of entries-to-be-deleted in the mark pane.
    This allows to better estimate how much work will be needed to perform
    the deletion.

    For example, when marking 3 items for deletion, previously one would see
    3 items marked, but now one will see all items and sub-items, like
    120kitems marked`, which reflects the work that will be done much more
    precisely.

  • Add total size to header bar and change to aggregate, human-readable item count.
    This changes the display from (2034 items) to
    (2k items, 213 MB), providing an overview of the total amount
    of storage used along with the total amount of files on a particular
    hiearchy level.

Bug Fixes

  • single files will not cause IO error
    Running dua <filename> will once again provide size information
    about that filename.

Commit Statistics

  • 16 commits contributed to the release over the course of 1 calendar day.
  • 2 days passed between releases.
  • 3 commits were understood as conventional.
  • 1 unique issue was worked on: #194

Commit Details

view details
  • #194
    • Single files will not cause IO error (192460e)
  • Uncategorized
    • Merge branch 'main_windows_render_refactor' (2da2e2e)
    • Refactor (49772d1)
    • Display the total count of entries-to-be-deleted in the mark pane. (98d5b5a)
    • Refactor (81eadf8)
    • Calculates mark pane item count consistently with the rest of the app (2c69ea1)
    • Refactors MainWindow render to make it more readable (8740d4b)
    • Merge branch 'upgrades' (a9dd549)
    • Upgrade to latest crossterm; switch to ratatui from tui (af2aa61)
    • Update all dependencies (852ee28)
    • Merge branch 'total_item_count' (ba2efe4)
    • Add total size to header bar and change to aggregate, human-readable item count. (3241022)
    • Merge branch 'make_ready_pre_pr_checks' (606d60f)
    • Adjust names of make fmt and make ready; fmt now only checks (9135c18)
    • Adds new target that runs all the checks (to be used before creating a PR) (7fbc136)
    • Displays total item count (7b7bad5)

v2.22.0

09 Dec 09:14
949baf3
Compare
Choose a tag to compare

New Features

  • Press c to sort by count of entries in a directory.
    That way it's easy to spot places that have a lot of (possibly small) files,
    which otherwise would remain under the radar when sorting by size.

Commit Statistics

  • 14 commits contributed to the release over the course of 3 calendar days.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Press c to sort by count of entries in a directory. (45ccb7c)
    • Assure sorting of entry-counts takes files into consideration. (8439ba7)
    • Refactor (9fb3113)
    • Adds keybinding for 'c' to toggle sorting by number of items (8df0b4c)
    • Merge branch 'column_render' (bf4da4e)
    • Run clippy locally just like on CI (645474c)
    • Refactor (bbcd308)
    • Fix visual changes (b8ad16b)
    • Make clippy warnings fatal (1a46d8f)
    • Refactors entries panel by moving code to separate functions (b5b6aba)
    • Put release-build optimization back to level 3; remove windows GNU build. (917339f)
    • Change optimization level back to 0 for hopefully more stable release builds. (2dced34)
    • Assure package-size check isn't fatal anymore (3e509db)
    • Pacify the package size checkf or a while. (09fd59f)

v2.21.0

06 Dec 07:03
7e3e290
Compare
Choose a tag to compare

New Features

  • With a single path provided as root, pretend it's the current working dir
    This makes it seem like the user started the directory walk directly in the given directory,
    which is more intuitive than the previous approach only showed the given directory as
    top-level directory.

    Note that this change only affects invocations like dua <dir> or dua i <dir>.

  • press m to sort by modification date, ascending and descending.

Bug Fixes

  • slightly faster (0.5ms) startup times of the binary on MacOS and maybe Linux.

Commit Statistics

  • 13 commits contributed to the release over the course of 11 calendar days.
  • 14 days passed between releases.
  • 3 commits were understood as conventional.
  • 5 unique issues were worked on: #110, #141, #179, #185, #186

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #110
    • With a single path provided as root, pretend it's the current working dir (de4c2b3)
    • Assure device_id is taken from the final CWD (74e6d42)
  • #141
    • Press m to sort by modification date, ascending and descending. (dd523e3)
  • #179
    • Press m to sort by modification date, ascending and descending. (dd523e3)
  • #185
    • Slightly faster (0.5ms) startup times of the binary on MacOS and maybe Linux. (72fd6d1)
  • #186
    • Assure device_id is taken from the final CWD (74e6d42)
  • Uncategorized
    • Manually set the desired version as cargo smart-release fails to see that 2.20.3 is available (f5bd870)
    • Prepare changelog (6ff009a)
    • Thanks clippy (0c4d31b)
    • Skip through single root directory (e9fb2fd)
    • Increase optimization level (3d270bd)
    • Fix tests on Windows (1b7457e)
    • Hide mtime column by default, unless enabled (0f8377a)
    • Adds keybinding 'm' to toggle sorting by modified time (2bd06be)
    • Add test to assure memory consumption of EntryData doesn't change unexpectedly. (adebd00)

v2.20.3

21 Nov 11:56
bb41fd5
Compare
Choose a tag to compare

Bug Fixes

  • mark-pane now doesn't double-count sizes anymore.

Commit Statistics

  • 2 commits contributed to the release.
  • 1 day passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Mark-pane now doesn't double-count sizes anymore. (7ab0070)
    • Fixes marking parent directory for deletion counts children twice (f7086cc)

v2.20.2

20 Nov 07:11
28fa9dd
Compare
Choose a tag to compare

Bug Fixes

  • alignment when in interactive mode and -f binary

Commit Statistics

  • 8 commits contributed to the release over the course of 32 calendar days.
  • 198 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #177

Commit Details

view details
  • #177
    • Alignment when in interactive mode and -f binary (49c3e3d)
  • Uncategorized
    • Update dependencies (12fa54a)
    • Upgrade journey-test expectations (doesn't run on CI for some reason) (5498040)
    • Upgrade itertools (0c8b6f2)
    • Upgrade open (192420e)
    • Fixes alignment when in interactive mode and -f binary (b3bb851)
    • Make clear which windows toolchain is used on CI (8c02612)
    • Update all dependencies (1bbee14)

v2.20.1

05 May 14:54
bf51db2
Compare
Choose a tag to compare
### Bug Fixes

 - release definition to use a more recent ubuntu, to get linux binaries.
   Otherwise there are no linux runners who can satisfy the request, and they hang forever,
   instead of saying something useful.

### Commit Statistics

 - 1 commit contributed to the release.
 - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
 - 1 unique issue was worked on: #160

### Commit Details

 * **#160**
    - Release definition to use a more recent ubuntu, to get linux binaries. (3e8509d)