Ic-cdk-optimizer does not build anymore

Running cargo install ic-cdk-optimizer I’m getting

    Updating crates.io index
  Downloaded ic-cdk-optimizer v0.3.0
  Downloaded 1 crate (10.3 KB) in 0.25s
  Installing ic-cdk-optimizer v0.3.0
  Downloaded humansize v1.1.1
  Downloaded heck v0.3.3
  Downloaded binaryen v0.12.0
  Downloaded vec_map v0.8.2
  Downloaded clap_derive v3.0.0-beta.4
  Downloaded itoa v0.4.7
  Downloaded os_str_bytes v3.1.0
  Downloaded textwrap v0.14.2
  Downloaded serde_json v1.0.66
  Downloaded ryu v1.0.5
  Downloaded cmake v0.1.45
  Downloaded clap v3.0.0-beta.4
  Downloaded wabt v0.10.0
  Downloaded unicode-segmentation v1.8.0
  Downloaded binaryen-sys v0.12.0
  Downloaded wabt-sys v0.8.0
  Downloaded 16 crates (4.7 MB) in 1.05s (largest was `wabt-sys` at 2.6 MB)
   Compiling proc-macro2 v1.0.28
   Compiling libc v0.2.99
   Compiling cc v1.0.69
   Compiling unicode-xid v0.2.2
   Compiling version_check v0.9.3
   Compiling memchr v2.4.0
   Compiling syn v1.0.74
   Compiling unicode-segmentation v1.8.0
   Compiling cfg-if v1.0.0
   Compiling regex-syntax v0.6.25
   Compiling autocfg v1.0.1
   Compiling serde v1.0.127
   Compiling ryu v1.0.5
   Compiling ppv-lite86 v0.2.10
   Compiling serde_json v1.0.66
   Compiling serde_derive v1.0.127
   Compiling hashbrown v0.11.2
   Compiling itoa v0.4.7
   Compiling unicode-width v0.1.8
   Compiling lazy_static v1.4.0
   Compiling os_str_bytes v3.1.0
   Compiling bitflags v1.3.2
   Compiling strsim v0.10.0
   Compiling vec_map v0.8.2
   Compiling termcolor v1.1.2
   Compiling remove_dir_all v0.5.3
   Compiling humansize v1.1.1
   Compiling heck v0.3.3
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling cmake v0.1.45
   Compiling indexmap v1.7.0
   Compiling textwrap v0.14.2
   Compiling wabt-sys v0.8.0
   Compiling aho-corasick v0.7.18
   Compiling quote v1.0.9
   Compiling getrandom v0.2.3
   Compiling atty v0.2.14
   Compiling rand_core v0.6.3
   Compiling rand_chacha v0.3.1
   Compiling regex v1.5.4
   Compiling rand v0.8.4
   Compiling tempfile v3.2.0
   Compiling binaryen-sys v0.12.0
   Compiling clap_derive v3.0.0-beta.4
   Compiling clap v3.0.0-beta.4
   Compiling wabt v0.10.0
   Compiling binaryen v0.12.0
   Compiling ic-cdk-optimizer v0.3.0
error[E0609]: no field `input` on type `Option<CommandLineOpts>`
  --> /home/alexander/.cargo/registry/src/github.com-1ecc6299db9ec823/ic-cdk-optimizer-0.3.0/src/main.rs:33:41
   |
33 |     let content = if let Some(i) = opts.input {
   |                                         ^^^^^

error[E0609]: no field `output` on type `Option<CommandLineOpts>`
  --> /home/alexander/.cargo/registry/src/github.com-1ecc6299db9ec823/ic-cdk-optimizer-0.3.0/src/main.rs:74:25
   |
74 |     std::fs::write(opts.output, wasm_back).expect("Could not write output file.");
   |                         ^^^^^^

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0609`.
error: failed to compile `ic-cdk-optimizer v0.3.0`, intermediate artifacts can be found at `/tmp/cargo-installpQIdui`

Caused by:
  could not compile `ic-cdk-optimizer`

To learn more, run the command again with --verbose.

Am I doing it wrong?

Opened a PR, please review.
@chenyan @roman-kashitsyn

@senior.joinu and I found a temporary solution.
–locked flag makes cargo to install right subdependency clap v3.0.0-beta.2 and installation succeeds

cargo install --force --locked ic-cdk-optimizer

PS may be non forced

2 Likes