gitui-org / gitui-org/gitui

cargo install fails due to ratatui-version missmatch

Aperta
#2,346 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Rust
Stelle
22.5k
Fork
773
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Describe the bug

`cargo install gitui` fails. ratatui version seems to be outdated at https://crates.io/crates/gitui/0.26.3/dependencies (^0.26) compared to Cargo.toml in git-repo (0.27) (https://github.com/extrawurst/gitui/commit/95bbbda9af9a31830b32f491a8308e667c017f94)

Compiling the git-repo works fine.

### Reproduce

#### does not work

1. cargo install gitui

#### works

1. git clone [...] temp_dir
2. cd temp_dir
3. cargo run

### Context (please complete the following information)
- GitUI Version: `0.26.3`
- Rust version: `1.80`

### Additional context

Whole error:

[...]
Compiling syntect v5.2.0
Compiling ratatui v0.26.3
Compiling crossterm v0.28.1
Compiling which v6.0.3
Compiling two-face v0.4.0
Compiling ratatui v0.28.1
Compiling tui-textarea v0.4.0
Compiling git2 v0.18.3
Compiling git2-hooks v0.3.3
Compiling asyncgit v0.26.3
error[E0308]: mismatched types
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gitui-0.26.3/src/components/textinput.rs:157:28
|
157 | .set_cursor_line_style(self.theme.text(true, false));
| --------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ratatui::style::Style`, found a differ
| |
| arguments to this method are incorrect
|
= note: `ratatui::style::Style` and `ratatui::style::Style` have similar names, but are actually distinct types
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.3/src/style.rs:227:1
|
227 | pub struct Style {
| ^^^^^^^^^^^^^^^^
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.28.1/src/style.rs:228:1
|
228 | pub struct Style {
| ^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `ratatui` are being used?
note: method defined here
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tui-textarea-0.4.0/src/textarea.rs:1770:12
|
1770 | pub fn set_cursor_line_style(&mut self, style: Style) {
| ^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gitui-0.26.3/src/components/textinput.rs:160:5
|
159 | text_area.set_placeholder_style(
| --------------------- arguments to this method are incorrect
160 | / self.theme
161 | | .text(self.selected.unwrap_or_default(), false),
| |___________________________________________________________________^ expected `ratatui::style::Style`, found a diff
|
= note: `ratatui::style::Style` and `ratatui::style::Style` have similar names, but are actually distinct types
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.3/src/style.rs:227:1
|
227 | pub struct Style {
| ^^^^^^^^^^^^^^^^
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.28.1/src/style.rs:228:1
|
228 | pub struct Style {
| ^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `ratatui` are being used?
note: method defined here
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tui-textarea-0.4.0/src/textarea.rs:1850:12
|
1850 | pub fn set_placeholder_style(&mut self, style: Style) {
| ^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gitui-0.26.3/src/components/textinput.rs:164:5
|
163 | text_area.set_style(
| --------- arguments to this method are incorrect
164 | self.theme.text(self.selected.unwrap_or(true), false),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ratatui::style::Style`, found a diff
|
= note: `ratatui::style::Style` and `ratatui::style::Style` have similar names, but are actually distinct types
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.3/src/style.rs:227:1
|
227 | pub struct Style {
| ^^^^^^^^^^^^^^^^
note: `ratatui::style::Style` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.28.1/src/style.rs:228:1
|
228 | pub struct Style {
| ^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `ratatui` are being used?
note: method defined here
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tui-textarea-0.4.0/src/textarea.rs:1629:12
|
1629 | pub fn set_style(&mut self, style: Style) {
| ^^^^^^^^^

error[E0308]: mismatched types
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gitui-0.26.3/src/components/textinput.rs:169:6
|
168 | text_area.set_block(
| --------- arguments to this method are incorrect
169 | / Block::default()
170 | | .borders(Borders::ALL)
171 | | .border_style(
172 | | ratatui::style::Style::default()
... |
176 | | )
177 | | .title(self.title.clone()),
| |__________________________________________________^ 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`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.3/src/widgets/block.rs:64:1
|
64 | pub struct Block<'a> {
| ^^^^^^^^^^^^^^^^^^^^
note: `Block<'_>` is defined in crate `ratatui`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.28.1/src/widgets/block.rs:109:1
|
109 | pub struct Block<'a> {
| ^^^^^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `ratatui` are being used?
note: method defined here
--> /home/nick/.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>) {
| ^^^^^^^^^

error[E0277]: the trait bound `impl ratatui::widgets::Widget + '_: Widget` is not satisfied
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gitui-0.26.3/src/components/textinput.rs:644:20
|
644 | f.render_widget(ta.widget(), area);
| ------------- ^^^^^^^^^^^ 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`:
&W
&str
BarChart<'_>
Canvas<'_, F>
Chart<'_>
Gauge<'_>
LineGauge<'_>
Paragraph<'_>
and 10 others
note: required by a bound in `ratatui::Frame::<'_>::render_widget`
--> /home/nick/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.3/src/terminal/frame.rs:74:29
|
74 | pub fn render_widget(&mut self, widget: W, area: Rect) {
| ^^^^^^ required by this bound in `Frame::<'_>::render_widget`

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: gitui@0.26.3: buildname 'nightly 2024-08-28 (17ca14e)'

error: could not compile `gitui` (bin "gitui") due to 5 previous errors
error: failed to compile `gitui v0.26.3`, intermediate artifacts can be found at `/tmp/cargo-installfSFcy2`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia da Cargo.toml e dal pacchetto pubblicato 0.26.3 eseguendo cargo install gitui; confronta la sua dipendenza da ratatui con la versione del repository e riproduci gli errori dovuti a versioni duplicate. Il lavoro è completato quando il pacchetto pubblicato si installa correttamente senza incompatibilità tra i tipi di ratatui.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
cli
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.