Byron / dua-cli

View disk space usage and delete unwanted data, fast.
https://lib.rs/crates/dua-cli
MIT License
4.12k stars 112 forks source link

Build fails on Windows due to termion errors #2

Closed rivy closed 4 years ago

rivy commented 5 years ago
error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\lib.rs:24:9
   |
24 | pub use sys::size::terminal_size;
   |         ^^^ maybe a missing `extern crate sys;`?

error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\lib.rs:25:9
   |
25 | pub use sys::tty::{is_tty, get_tty};
   |         ^^^ maybe a missing `extern crate sys;`?

error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
 --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:5:5
  |
5 | use sys::tty::get_tty;
  |     ^^^ maybe a missing `extern crate sys;`?

error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:29:5
   |
29 | use sys::attr::{get_terminal_attr, raw_terminal_attr, set_terminal_attr};
   |     ^^^ maybe a missing `extern crate sys;`?

error[E0432]: unresolved import `sys`
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:28:5
   |
28 | use sys::Termios;
   |     ^^^ maybe a missing `extern crate sys;`?

error[E0425]: cannot find function `get_tty` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:14:36
   |
14 |     thread::spawn(move || for i in get_tty().unwrap().bytes() {
   |                                    ^^^^^^^ not found in this scope

error[E0425]: cannot find function `get_tty` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:43:36
   |
43 |     thread::spawn(move || for i in get_tty().unwrap().bytes() {
   |                                    ^^^^^^^ not found in this scope

error[E0425]: cannot find function `set_terminal_attr` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:45:9
   |
45 |         set_terminal_attr(&self.prev_ios).unwrap();
   |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `get_terminal_attr` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:90:23
   |
90 |         let mut ios = get_terminal_attr()?;
   |                       ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `raw_terminal_attr` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:93:9
   |
93 |         raw_terminal_attr(&mut ios);
   |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `set_terminal_attr` in this scope
  --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:95:9
   |
95 |         set_terminal_attr(&ios)?;
   |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `set_terminal_attr` in this scope
   --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:106:9
    |
106 |         set_terminal_attr(&self.prev_ios)?;
    |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `get_terminal_attr` in this scope
   --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:111:23
    |
111 |         let mut ios = get_terminal_attr()?;
    |                       ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `raw_terminal_attr` in this scope
   --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:112:9
    |
112 |         raw_terminal_attr(&mut ios);
    |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `set_terminal_attr` in this scope
   --> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:113:9
    |
113 |         set_terminal_attr(&ios)?;
    |         ^^^^^^^^^^^^^^^^^ not found in this scope

error: aborting due to 15 previous errors

Some errors occurred: E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0425`.
error: Could not compile `termion`.
warning: build failed, waiting for other jobs to finish...
ghost commented 5 years ago

It looks like the rustc version is too old. I am using edition 2018, v1.35 . Can you please check?

ofek commented 5 years ago

Same here on stable-x86_64-pc-windows-msvc unchanged - rustc 1.35.0 (3c235d560 2019-05-20)

ghost commented 5 years ago

Thank you! It's very odd, and seems entirely related to Rustc not understanding the new module rules.

I have cross-posted this in the termion repository - let's see what they say.

ghost commented 5 years ago

I can reproduce this issue with rustc v1.31.1 on Alpine, for instance. Unfortunately I can't get a newer version of rustc there that easily :(.

``` For more information about this error, try `rustc --explain E0658`. error: Could not compile `jwalk`. warning: build failed, waiting for other jobs to finish... ^C Building [=================================================> ] 80/90: synstructure, structopt-derive /tmp # cargo build 2>&1 > alpine.build Compiling synstructure v0.10.2 Compiling structopt-derive v0.2.15 Compiling tui-react v0.1.2 (/tmp/tui-react) Compiling jwalk v0.4.0 error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> tui-react/src/lib.rs:4:9 | 1 | mod list; | --------- not an extern crate passed with `--extern` ... 4 | pub use list::*; | ^^^^ | note: this import refers to the module defined here --> tui-react/src/lib.rs:1:1 | 1 | mod list; | ^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> tui-react/src/lib.rs:5:9 | 2 | mod terminal; | ------------- not an extern crate passed with `--extern` ... 5 | pub use terminal::*; | ^^^^^^^^ | note: this import refers to the module defined here --> tui-react/src/lib.rs:2:1 | 2 | mod terminal; | ^^^^^^^^^^^^^ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0658`. error: Could not compile `tui-react`. warning: build failed, waiting for other jobs to finish... error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:19:5 | 4 | mod index_path; | --------------- not an extern crate passed with `--extern` ... 19 | use index_path::*; | ^^^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:4:1 | 4 | mod index_path; | ^^^^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:20:5 | 5 | mod iterators; | -------------- not an extern crate passed with `--extern` ... 20 | use iterators::*; | ^^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:5:1 | 5 | mod iterators; | ^^^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:21:5 | 6 | mod ordered; | ------------ not an extern crate passed with `--extern` ... 21 | use ordered::*; | ^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:6:1 | 6 | mod ordered; | ^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:22:5 | 7 | mod ordered_queue; | ------------------ not an extern crate passed with `--extern` ... 22 | use ordered_queue::*; | ^^^^^^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:7:1 | 7 | mod ordered_queue; | ^^^^^^^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:24:9 | 3 | mod dir_entry; | -------------- not an extern crate passed with `--extern` ... 24 | pub use dir_entry::DirEntry; | ^^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:3:1 | 3 | mod dir_entry; | ^^^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:25:9 | 5 | mod iterators; | -------------- not an extern crate passed with `--extern` ... 25 | pub use iterators::DirEntryIter; | ^^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:5:1 | 5 | mod iterators; | ^^^^^^^^^^^^^^ error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130) --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:26:9 | 8 | mod read_dir; | ------------- not an extern crate passed with `--extern` ... 26 | pub use read_dir::{ReadDir, ReadDirSpec}; | ^^^^^^^^ | note: this import refers to the module defined here --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/jwalk-0.4.0/src/core/mod.rs:8:1 | 8 | mod read_dir; | ^^^^^^^^^^^^^ ```
rivy commented 5 years ago

Problem remains with all rust versions up to v1.35.0.

C:\...\rust\dua-cli>cargo -V
cargo 1.35.0 (6f3e9c367 2019-04-04)

C:\...\rust\dua-cli>rustc -V
rustc 1.35.0 (3c235d560 2019-05-20)

C:\...\rust\dua-cli>ver
Microsoft Windows [Version 10.0.17763.437]
snikeguo commented 5 years ago

@Byron-TW https://gitlab.redox-os.org/redox-os/termion/issues/139 this lib doesn't support windows .. Supports Redox, Mac OS X, BSD, and Linux (or, in general, ANSI terminals). aha~

photex commented 5 years ago

As a possible solution, I replaced termion with crossterm for a TUI application and it now works on Windows.

ghost commented 5 years ago

@photex Thanks so much for the hint! Even though I don't have access to Windows, the latest master does use crossterm in TUI, instead of termion.

ghost commented 5 years ago

It doesn't actually work that easily due to input handling being different. @photex Do you have a PR that works for you on windows? Maybe termion input handling does work fine despite crossterm doing the drawing.

photex commented 5 years ago

@Byron-TW I'll check it out on Monday. For my application the only real input is a gamepad actually so I didn't dig in.

rivy commented 5 years ago

Sorry, no joy. The compilation still fails with the same errors for 34274b1.

bltavares commented 4 years ago

Triage: it still happens on latest Rust + Windows

> cargo install dua-cli
error: could not compile `termion`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `dua-cli v2.3.2`

> cargo -V
cargo 1.41.0 (626f0f40e 2019-12-03)
> rustc -V
rustc 1.41.0 (5e1a79984 2020-01-27)
Byron commented 4 years ago

It looks like switching to crossterm as TUI backend and adjusting input handling in DUA is the way to go. Unless Termion will one day be ported to Windows.

Byron commented 4 years ago

I think an easy first step could be to build without TUI on windows, and possibly disable coloring in the little that remains. Now that GitHub actions are coming, it's possible to test a thing or two, see here.

mardukbp commented 4 years ago

@Byron-TW I successfully built dua-cli v2.2.0 on Windows 10 using stable rustc 1.42.0 and the windows-support branch of termion.

In order to do this I added the following before the [dependencies] in Cargo.toml:

[patch.crates-io]
termion = { git = "https://gitlab.redox-os.org/Jezza/termion.git", branch = "windows-support" }

Building later versions is only possible with rustc nightly. A workaround to build using rustc stable was discussed in the vector project.

Building version 2.6.0 fails due to src/crossdev.rs not providing the necessary functions for Windows.

It is recommended to execute dua-cli in a modern Terminal, like Alacritty (which is written in Rust).

Byron commented 4 years ago

Thanks a lot for looking into this! You have sparked hope, because…

For completeness, here is the compatibility MR for termion referenced in the comment above - should that get merged, then dua should be gaining windows support permanently.

Byron commented 4 years ago

Here are some issues encountered on the way:

And finally, now with every release, there will be builds for windows as well :)!

https://github.com/Byron/dua-cli/releases/tag/v2.6.0

@mardukbp Could you validate these are actually working? If so, I think this issue can be closed.

mardukbp commented 4 years ago

@Byron I tried cargo +nightly install --git https://github.com/Byron/dua-cli.git and it failed because it is fetching termion from crates.io instead of the git repo with the Windows patch. I tried to specify different sources for termion depending on the platform, but cargo does not support this. All platforms must use the same source for a given crate.

So I added the patch.crates-io section to Cargo.toml and everything worked fine.

Byron commented 4 years ago

Could you try the release binaries published To GitHub releases linked above? The patch section is not added in master as I am not sure what it does for cargo install yet. But releases will now include windows versions whenever I create a new tag.

mardukbp commented 4 years ago

I tried it with the default Windows shell (cmd.exe), PowerShell, nushell and xonsh. dua i is only usable in the last two and using Alacritty as terminal emulator.

Besides the UI, dua i reports incorrect sizes, way smaller than the actual size.

EDIT: dua i is not calculating the size of subdirectories, only files.

I also noticed that dua considers 1 MB = 1000 bytes instead of 1024 bytes, which differs from the behavior of Windows Explorer.

EDIT: I just saw that dua uses "metric" MB by default. Why?

Byron commented 4 years ago

I have added a note to the Readme to communicate the kind of Windows support that is established now. This ticket probably cannot be closed as it talks about compiling on Windows, which still doesn't work on master and on stable. I would expect this to work once Termion gets Windows support and once the unstable feature used on Windows stabilizes, making it a mere matter of time.

Metric MB are used because that's the standard on MacOS I suppose, but there is a --format flag which allows to change that, e.g. dua -f binary.

Byron commented 4 years ago

I have just released `dua 2.9 which should bring full windows support powered by crossterm.

Could you have a look and let me know how it works? I would love to close this issue :).

mardukbp commented 4 years ago

I tried the MSVC version on Windows 10 with WezTerm and xonsh. It runs. But dua i still does not calculate the sizes of subdirectories.

Byron commented 4 years ago

Thank you! It's good to see that it works with unix'y shells still, but I would be particularly interested in learning how it fares with cmd.exe and Powershell.

The issue with the incorrect directory sizes is tracked in #53 - what's missing there is a contribution of someone who actually has windows. It's odd the counting doesn't work as I would believe Rust abstracts over this kind of thing.

rivy commented 4 years ago

Thanks for pushing forward on windows support @Byron! 🎉

I haven't fully tested it, but it's now compiling and seems, on first blush, to be working correctly.

As noted, dua i shows size as 0 for subdirectories (and all files within those directories are shown as 0 size). At the same time though, a simple dua does seem to show the correct size for files and subdirectories. I'll follow-up on #53 to see if I can help track down the problem.

I created a PR (#60) that fixes a couple of compiler warnings and adds the usually expected wildcard support (for windows).

There is a test error which appears to be some single byte size differences in EntryData ...

>cargo +nightly test
   Compiling dua-cli v2.9.0 (C:\Users\Roy\OneDrive\Projects\rust\dua-cli)
    Finished test [unoptimized + debuginfo] target(s) in 2.77s
     Running target\debug\deps\dua-cbadb0c3e39d4e6a.exe

running 1 test
test inodefilter::tests::it_filters_inodes ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target\debug\deps\dua-b1160d1b01703dd0.exe

running 5 tests
test interactive::app_test::unit::it_can_handle_ending_traversal_without_reaching_the_top ... ignored
test interactive::app::common::tests::fit_string_inputs ... ok
test interactive::app_test::journeys_with_writes::basic_user_journey_with_deletion ... ok
test interactive::app_test::journeys_readonly::simple_user_journey_read_only ... ok
test interactive::app_test::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels ... FAILED

failures:

---- interactive::app_test::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels stdout ----
thread 'interactive::app_test::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels' panicked at 'assertion failed: `(left == right)`: filesystem graph is stable and matches the directory structure

Diff < left / right > :
<"StableGraph { Ty: \"Directed\", node_count: 15, edge_count: 14, edges: (0, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (6, 7), (6, 8), (6, 9), (6, 10), (10, 11), (6, 12), (12, 13), (1, 14), node weights: {0: EntryData { name: \"\", size: 1259069, metadata_io_error: false }, 1: EntryData { name: \"tests/fixtures\\\\sample-01\", size: 1259069, metadata_io_error: false }, 2: EntryData { name: \".hidden.666\", size: 666, metadata_io_error: false }, 3: EntryData { name: \"a\", size: 256, metadata_io_error: false }, 4: EntryData { name: \"b.empty\", size: 0, metadata_io_error: false }, 5: EntryData { name: \"c.lnk\", size: 0, metadata_io_error: false }, 6: EntryData { name: \"dir\", size: 1258024, metadata_io_error: false }, 7: EntryData { name: \"1000bytes\", size: 1000, metadata_io_error: false }, 8: EntryData { name: \"dir-a.1mb\", size: 1000000, metadata_io_error: false }, 9: EntryData { name: \"dir-a.kb\", size: 1024, metadata_io_error: false }, 10: EntryData { name: \"empty-dir\", size: 0, metadata_io_error: false }, 11: EntryData { name: \".gitkeep\", size: 0, metadata_io_error: false }, 12: EntryData { name: \"sub\", size: 256000, metadata_io_error: false }, 13: EntryData { name: \"dir-sub-a.256kb\", size: 256000, metadata_io_error: false }, 14: EntryData { name: \"z123.b\", size: 123, metadata_io_error: false }}, free_node: NodeIndex(4294967295), free_edge: EdgeIndex(4294967295) }"
>"StableGraph { Ty: \"Directed\", node_count: 15, edge_count: 14, edges: (0, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (6, 7), (6, 8), (6, 9), (6, 10), (10, 11), (6, 12), (12, 13), (1, 14), node weights: {0: EntryData { name: \"\", size: 1259070, metadata_io_error: false }, 1: EntryData { name: \"tests/fixtures\\\\sample-01\", size: 1259070, metadata_io_error: false }, 2: EntryData { name: \".hidden.666\", size: 666, metadata_io_error: false }, 3: EntryData { name: \"a\", size: 256, metadata_io_error: false }, 4: EntryData { name: \"b.empty\", size: 0, metadata_io_error: false }, 5: EntryData { name: \"c.lnk\", size: 1, metadata_io_error: false }, 6: EntryData { name: \"dir\", size: 1258024, metadata_io_error: false }, 7: EntryData { name: \"1000bytes\", size: 1000, metadata_io_error: false }, 8: EntryData { name: \"dir-a.1mb\", size: 1000000, metadata_io_error: false }, 9: EntryData { name: \"dir-a.kb\", size: 1024, metadata_io_error: false }, 10: EntryData { name: \"empty-dir\", size: 0, metadata_io_error: false }, 11: EntryData { name: \".gitkeep\", size: 0, metadata_io_error: false }, 12: EntryData { name: \"sub\", size: 256000, metadata_io_error: false }, 13: EntryData { name: \"dir-sub-a.256kb\", size: 256000, metadata_io_error: false }, 14: EntryData { name: \"z123.b\", size: 123, metadata_io_error: false }}, free_node: NodeIndex(4294967295), free_edge: EdgeIndex(4294967295) }"

', src\interactive\app_test\unit.rs:12:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    interactive::app_test::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels
rivy commented 4 years ago

Closing as fixed (with all tests passing) as of commit 5a36cd18a31ca1fbdc62d4e594933a6327fe4e7d. 🎉

dantho commented 4 years ago

Um... New user just trying out install on Windows... Fails with:

Compiling termion v1.5.5 error[E0433]: failed to resolve: unresolved import --> C:\Users\thordani.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.5\src\lib.rs:24:9 24 | pub use sys::size::terminal_size; unresolved import

I'm on Win10 Version 1909 (OS Build 18363.1139) rustc 1.47.0 (18bf6b4f0 2020-10-07)

Byron commented 4 years ago

@dantho To be able to understand where the issue is coming from, it's important to know how it can be reproduced. I would expect it to work with cargo install dua-cli, which will not pull in termion at all (it's known to fail on windows).

rivy commented 4 years ago

Not reproduced on my Windows machine. Compiling, testing, and installing correctly (although it still requires nightly for the use of the "features" attribute in src/lib.rs).

C:>ver
Microsoft Windows [Version 10.0.18363.1082]
C:>rustc --version
rustc 1.47.0 (18bf6b4f0 2020-10-07)
C:>cargo +nightly test
...
    Finished test [unoptimized + debuginfo] target(s) in 0.25s
     Running target\debug\deps\dua-a93d27099610674e.exe

running 1 test
test inodefilter::tests::it_filters_inodes ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target\debug\deps\dua-0849b0478c8e2faa.exe

running 5 tests
test interactive::app::common::tests::fit_string_inputs ... ok
test interactive::app_test::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels ... ok
test interactive::app_test::unit::it_can_handle_ending_traversal_without_reaching_the_top ... ok
test interactive::app_test::journeys_with_writes::basic_user_journey_with_deletion ... ok
test interactive::app_test::journeys_readonly::simple_user_journey_read_only ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

   Doc-tests dua

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
C:>cargo +nightly install --path .
  Installing dua-cli v2.10.3 (C:\Users\Roy\OneDrive\Projects\rust\dua-cli)
    Updating crates.io index
  Downloaded syn v1.0.45
  Downloaded 1 crate (225.6 KB) in 0.74s
   Compiling autocfg v1.0.1
   Compiling cfg-if v0.1.10
   Compiling lazy_static v1.4.0
   Compiling winapi v0.3.9
   Compiling scopeguard v1.1.0
   Compiling maybe-uninit v2.0.0
   Compiling bitflags v1.2.1
   Compiling version_check v0.9.2
   Compiling proc-macro2 v1.0.24
   Compiling unicode-xid v0.2.1
   Compiling libc v0.2.79
   Compiling smallvec v1.4.2
   Compiling unicode-width v0.1.8
   Compiling rayon-core v1.8.1
   Compiling syn v1.0.45
   Compiling log v0.4.11
   Compiling unicode-segmentation v1.6.0
   Compiling cassowary v0.3.0
   Compiling either v1.6.1
   Compiling hashbrown v0.9.1
   Compiling vec_map v0.8.2
   Compiling strsim v0.8.0
   Compiling anyhow v1.0.33
   Compiling glob v0.3.0
   Compiling utf8-width v0.1.4
   Compiling fixedbitset v0.2.0
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.6
   Compiling crossbeam-epoch v0.8.2
   Compiling indexmap v1.6.0
   Compiling rayon v1.4.1
   Compiling lock_api v0.3.4
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling textwrap v0.11.0
   Compiling heck v0.3.1
   Compiling itertools v0.9.0
   Compiling byte-unit v4.0.9
   Compiling wild v2.0.4
   Compiling quote v1.0.7
   Compiling num_cpus v1.13.0
   Compiling crossbeam-channel v0.4.4
   Compiling crossbeam-queue v0.2.3
   Compiling petgraph v0.5.1
   Compiling parking_lot_core v0.7.2
   Compiling crossterm_winapi v0.6.1
   Compiling atty v0.2.14
   Compiling open v1.4.0
   Compiling filesize v0.2.0
   Compiling crossbeam-deque v0.7.3
   Compiling parking_lot v0.10.2
   Compiling clap v2.33.3
   Compiling colored v2.0.0
   Compiling crossbeam v0.7.3
   Compiling structopt-derive v0.4.13
   Compiling crossterm v0.17.7
   Compiling tui v0.12.0
   Compiling jwalk v0.5.1
   Compiling structopt v0.3.20
   Compiling tui-react v0.12.0
   Compiling crosstermion v0.4.0
   Compiling dua-cli v2.10.3 (C:\Users\Roy\OneDrive\Projects\rust\dua-cli)
    Finished release [optimized] target(s) in 2m 30s
   Replacing C:\Users\Roy\.cargo\bin\dua.exe
    Replaced package `dua-cli v2.10.2` with `dua-cli v2.10.3 (C:\Users\Roy\OneDrive\Projects\rust\dua-cli)` (executable `dua.exe`)

@dantho , how were you trying to install it?