dustinblackman / oatmeal

Terminal UI to chat with large language models (LLM) using different model backends, and integrations with your favourite editors!
https://dustinblackman.com/posts/oatmeal/
MIT License
477 stars 23 forks source link

cargo install-update errors out #33

Closed kapral18 closed 7 months ago

kapral18 commented 7 months ago

Not sure if this is an issue for here or on install-update side but posting anyway, let me know

❯ cargo install-update oatmeal
    Polling registry 'https://index.crates.io/'.

Package  Installed  Latest   Needs update
oatmeal  v0.9.1     v0.12.1  Yes

Updating oatmeal
    Updating crates.io index
  Installing oatmeal v0.12.1
    Updating crates.io index
warning: profile package spec `insta` in profile `dev` did not match any packages

    Did you mean `idna`?
warning: profile package spec `similar` in profile `dev` did not match any packages
   Compiling libc v0.2.151
   Compiling proc-macro2 v1.0.72
   Compiling unicode-ident v1.0.12
   Compiling cfg-if v1.0.0
   Compiling autocfg v1.1.0
   Compiling once_cell v1.18.0
   Compiling serde v1.0.193
   Compiling version_check v0.9.4
   Compiling log v0.4.20
   Compiling zerocopy v0.7.32
   Compiling allocator-api2 v0.2.16
   Compiling memchr v2.7.1
   Compiling itoa v1.0.10
   Compiling slab v0.4.9
   Compiling futures-core v0.3.30
   Compiling ahash v0.8.7
   Compiling pin-project-lite v0.2.13
   Compiling crc32fast v1.3.2
   Compiling rustls v0.21.10
   Compiling httparse v1.8.0
   Compiling rustversion v1.0.14
   Compiling pkg-config v0.3.28
   Compiling serde_json v1.0.107
   Compiling quote v1.0.33
   Compiling cc v1.0.83
   Compiling hashbrown v0.14.3
   Compiling syn v2.0.43
   Compiling bytes v1.5.0
   Compiling system-configuration-sys v0.5.0
   Compiling thiserror v1.0.53
   Compiling num_cpus v1.16.0
   Compiling getrandom v0.2.11
   Compiling socket2 v0.5.5
   Compiling mio v0.8.10
   Compiling tracing-core v0.1.32
   Compiling fnv v1.0.7
   Compiling futures-sink v0.3.30
   Compiling spin v0.9.8
   Compiling equivalent v1.0.1
   Compiling signal-hook-registry v1.4.1
   Compiling core-foundation-sys v0.8.6
   Compiling untrusted v0.9.0
   Compiling tokio v1.33.0
   Compiling indexmap v2.1.0
   Compiling ring v0.17.7
   Compiling onig_sys v69.8.1
   Compiling lock_api v0.4.11
   Compiling adler v1.0.2
   Compiling parking_lot_core v0.9.9
   Compiling bitflags v1.3.2
   Compiling miniz_oxide v0.7.1
   Compiling tracing v0.1.40
   Compiling futures-channel v0.3.30
   Compiling http v0.2.11
   Compiling powerfmt v0.2.0
   Compiling pin-utils v0.1.0
   Compiling signal-hook v0.3.17
   Compiling smallvec v1.11.2
   Compiling futures-task v0.3.30
   Compiling ryu v1.0.16
   Compiling futures-io v0.3.30
   Compiling bitflags v2.4.1
   Compiling tinyvec_macros v0.1.1
   Compiling base64 v0.21.5
   Compiling scopeguard v1.2.0
   Compiling tinyvec v1.6.0
   Compiling futures-util v0.3.30
   Compiling deranged v0.3.11
   Compiling core-foundation v0.9.4
   Compiling num_threads v0.1.6
   Compiling unicode-width v0.1.11
   Compiling try-lock v0.2.5
   Compiling time-core v0.1.2
   Compiling lazy_static v1.4.0
   Compiling percent-encoding v2.3.1
   Compiling want v0.3.1
   Compiling form_urlencoded v1.2.1
   Compiling unicode-normalization v0.1.22
   Compiling time v0.3.31
   Compiling http-body v0.4.6
   Compiling security-framework-sys v2.9.1
   Compiling unicode-bidi v0.3.14
   Compiling paste v1.0.14
   Compiling sct v0.7.1
   Compiling tokio-util v0.7.9
   Compiling rustls-webpki v0.101.7
   Compiling utf8parse v0.2.1
   Compiling httpdate v1.0.3
   Compiling syn v1.0.109
   Compiling h2 v0.3.22
   Compiling anyhow v1.0.75
   Compiling tower-service v0.3.2
   Compiling either v1.9.0
   Compiling safemem v0.3.3
   Compiling heck v0.4.1
   Compiling line-wrap v0.1.1
   Compiling anstyle-parse v0.2.3
   Compiling serde_derive v1.0.193
   Compiling tokio-macros v2.1.0
   Compiling thiserror-impl v1.0.53
   Compiling futures-macro v0.3.30
   Compiling strum_macros v0.25.3
   Compiling idna v0.5.0
   Compiling tokio-rustls v0.24.1
   Compiling security-framework v2.9.2
   Compiling signal-hook-mio v0.2.3
   Compiling parking_lot v0.12.1
   Compiling hyper v0.14.28
   Compiling rustls-pemfile v1.0.4
   Compiling backtrace v0.3.69
   Compiling malloc_buf v0.0.6
   Compiling vergen v8.2.5
   Compiling quick-xml v0.31.0
   Compiling gimli v0.28.1
   Compiling crossbeam-utils v0.8.18
   Compiling anstyle-query v1.0.2
   Compiling same-file v1.0.6
   Compiling anstyle v1.0.4
   Compiling linked-hash-map v0.5.6
   Compiling rustix v0.38.25
   Compiling colorchoice v1.0.0
   Compiling yaml-rust v0.4.5
   Compiling anstream v0.6.5
   Compiling walkdir v2.4.0
   Compiling hyper-rustls v0.24.2
   Compiling objc v0.2.7
   Compiling rustls-native-certs v0.6.3
   Compiling strum v0.25.0
   Compiling crossterm v0.27.0
   Compiling flate2 v1.0.28
   Compiling system-configuration v0.5.1
   Compiling onig v6.4.0
   Compiling url v2.5.0
   Compiling addr2line v0.21.0
   Compiling lru v0.12.1
   Compiling errno v0.3.5
   Compiling bincode v1.3.3
   Compiling plist v1.6.0
   Compiling serde_urlencoded v0.7.1
   Compiling xattr v1.1.1
   Compiling filetime v0.2.23
   Compiling object v0.32.2
   Compiling num-traits v0.2.17
   Compiling encoding_rs v0.8.33
   Compiling cassowary v0.3.0
   Compiling strsim v0.10.0
   Compiling rustc-demangle v0.1.23
   Compiling mime v0.3.17
   Compiling ipnet v2.9.0
   Compiling unicode-segmentation v1.10.1
   Compiling indoc v2.0.4
   Compiling regex-syntax v0.7.5
   Compiling clap_lex v0.6.0
   Compiling clap_builder v4.4.7
   Compiling stability v0.1.1
   Compiling reqwest v0.11.22
   Compiling syntect v5.1.0
   Compiling tar v0.4.40
   Compiling tracing-serde v0.1.3
   Compiling objc_id v0.1.1
   Compiling itertools v0.12.0
   Compiling sharded-slab v0.1.7
   Compiling console v0.15.7
   Compiling thread_local v1.1.7
   Compiling block v0.1.6
   Compiling option-ext v0.2.0
   Compiling async-trait v0.1.74
   Compiling glob-match v0.2.1
   Compiling fastrand v2.0.1
   Compiling oatmeal v0.12.1
   Compiling tempfile v3.8.1
   Compiling tracing-subscriber v0.3.18
   Compiling dirs-sys v0.4.1
   Compiling objc-foundation v0.1.1
   Compiling crossbeam-channel v0.5.10
   Compiling ratatui v0.25.0
   Compiling clap v4.4.7
   Compiling async-compression v0.4.5
   Compiling futures-executor v0.3.30
   Compiling itertools v0.11.0
   Compiling iana-time-zone v0.1.59
   Compiling winnow v0.5.31
   Compiling unsafe-libyaml v0.2.10
   Compiling toml_datetime v0.6.5
   Compiling shell-words v1.1.0
   Compiling tui-textarea v0.4.0
   Compiling ratatui v0.24.0
   Compiling serde_yaml v0.9.27
   Compiling toml_edit v0.21.0
   Compiling dialoguer v0.10.4
   Compiling chrono v0.4.31
   Compiling futures v0.3.28
   Compiling tracing-appender v0.2.3
   Compiling clap_complete v4.4.4
   Compiling arboard v3.2.1
   Compiling dirs v5.0.1
   Compiling better-panic v0.3.0
   Compiling dashmap v5.5.3
   Compiling uuid v1.6.1
   Compiling yansi v0.5.1
error[E0277]: the trait bound `impl ratatui::widgets::Widget + '_: Widget` is not satisfied
   --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/oatmeal-0.12.1/src/application/ui.rs:116:37
    |
116 |                 frame.render_widget(textarea.widget(), layout[1]);
    |                       ------------- ^^^^^^^^^^^^^^^^^ the trait `Widget` is not implemented for `impl ratatui::widgets::Widget + '_`
    |                       |
    |                       required by a bound introduced by this call
    |
    = help: the following other types implement trait `Widget`:
              BarChart<'a>
              ratatui::widgets::Block<'a>
              Canvas<'a, F>
              Chart<'a>
              ratatui::widgets::Clear
              Gauge<'a>
              LineGauge<'a>
              List<'a>
            and 4 others
note: required by a bound in `Frame::<'_>::render_widget`
   --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.24.0/src/terminal.rs:598:12
    |
596 |     pub fn render_widget<W>(&mut self, widget: W, area: Rect)
    |            ------------- required by a bound in this associated function
597 |     where
598 |         W: Widget,
    |            ^^^^^^ required by this bound in `Frame::<'_>::render_widget`

error[E0308]: mismatched types
    --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/oatmeal-0.12.1/src/domain/models/textarea.rs:12:13
     |
11   |           textarea.set_block(
     |                    --------- arguments to this method are incorrect
12   | /             Block::default()
13   | |                 .borders(Borders::ALL)
14   | |                 .border_type(BorderType::Double)
15   | |                 .title("Enter prompt")
16   | |                 .padding(Padding::new(1, 1, 0, 0)),
     | |__________________________________________________^ expected `Block<'_>`, found `ratatui::widgets::Block<'_>`
     |
     = note: `ratatui::widgets::Block<'_>` and `Block<'_>` have similar names, but are actually distinct types
note: `ratatui::widgets::Block<'_>` is defined in crate `ratatui`
    --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.24.0/src/widgets/block.rs:230:1
     |
230  | pub struct Block<'a> {
     | ^^^^^^^^^^^^^^^^^^^^
note: `Block<'_>` is defined in crate `ratatui`
    --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.25.0/src/widgets/block.rs:233:1
     |
233  | pub struct Block<'a> {
     | ^^^^^^^^^^^^^^^^^^^^
     = note: perhaps two different versions of crate `ratatui` are being used?
note: method defined here
    --> /Users/kapral18/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tui-textarea-0.4.0/src/textarea.rs:1648:12
     |
1648 |     pub fn set_block(&mut self, block: Block<'a>) {
     |            ^^^^^^^^^

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
The following warnings were emitted during compilation:

warning: not within a suitable 'git' worktree!
warning: VERGEN_GIT_BRANCH set to default
warning: VERGEN_GIT_COMMIT_AUTHOR_EMAIL set to default
warning: VERGEN_GIT_COMMIT_AUTHOR_NAME set to default
warning: VERGEN_GIT_COMMIT_COUNT set to default
warning: VERGEN_GIT_COMMIT_DATE set to default
warning: VERGEN_GIT_COMMIT_MESSAGE set to default
warning: VERGEN_GIT_COMMIT_TIMESTAMP set to default
warning: VERGEN_GIT_DESCRIBE set to default
warning: VERGEN_GIT_SHA set to default

error: could not compile `oatmeal` (bin "oatmeal") due to 2 previous errors
error: failed to compile `oatmeal v0.12.1`, intermediate artifacts can be found at `/var/folders/lg/yd3s86fd0q1__s18v68tn4g80000gn/T/cargo-installXK4g31`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Updated 0 packages.
Failed to update oatmeal.

Having said that, I can successfully upgrade with cargo install oatmeal --locked

dustinblackman commented 7 months ago

It doesn't seem like install-update is respecting Cargo.lock (or even my Cargo.lock?). Ratatui is a fast moving library and they've introduced breaking changes in the latest version that I haven't supported. It's one of the reasons I keep all my dependencies pinned, and install-update doesn't seem to look at that.

kapral18 commented 7 months ago

got it, thanks closing