Skip to content

deltalake 0.24.0 cannot compile with E0308 error #3235

@johanan

Description

@johanan

Delta-rs version: 0.24.0

OS: Ubuntu 24.04
rustc: rustc 1.83.0 (90b35a623 2024-11-26)


Bug

What happened: Cannot build deltalake@0.24.0

How to reproduce it:
Add deltalake to a fresh project and it does not build.

cargo new delta
cd delta
cargo add deltalake
cargo build
error[E0308]: mismatched types
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/deltalake-core-0.24.0/src/kernel/models/actions.rs:567:9
    |
566 |     fn try_from(value: &TableFeatures) -> Result<Self, Self::Error> {
    |                                           ------------------------- expected `Result<ReaderFeatures, strum::ParseError>` because of return type
567 |         ReaderFeatures::try_from(value.as_ref())
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `strum::ParseError`, found a different `strum::ParseError`
    |
    = note: `strum::ParseError` and `strum::ParseError` have similar names, but are actually distinct types
note: `strum::ParseError` is defined in crate `strum`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/strum-0.26.3/src/lib.rs:42:1
    |
42  | pub enum ParseError {
    | ^^^^^^^^^^^^^^^^^^^
note: `strum::ParseError` is defined in crate `strum`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/strum-0.27.1/src/lib.rs:42:1
    |
42  | pub enum ParseError {
    | ^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `strum` are being used?

error[E0308]: mismatched types
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/deltalake-core-0.24.0/src/kernel/models/actions.rs:575:9
    |
574 |     fn try_from(value: &TableFeatures) -> Result<Self, Self::Error> {
    |                                           ------------------------- expected `Result<WriterFeatures, strum::ParseError>` because of return type
575 |         WriterFeatures::try_from(value.as_ref())
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `strum::ParseError`, found a different `strum::ParseError`
    |
    = note: `strum::ParseError` and `strum::ParseError` have similar names, but are actually distinct types
note: `strum::ParseError` is defined in crate `strum`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/strum-0.26.3/src/lib.rs:42:1
    |
42  | pub enum ParseError {
    | ^^^^^^^^^^^^^^^^^^^
note: `strum::ParseError` is defined in crate `strum`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/strum-0.27.1/src/lib.rs:42:1
    |
42  | pub enum ParseError {
    | ^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `strum` are being used?

For more information about this error, try `rustc --explain E0308`.
error: could not compile `deltalake-core` (lib) due to 2 previous errors

I was checking other versions and found that if I downgrade deltalake and then re-add it works.

cargo add deltalake@0.23.2
cargo build
cargo add deltalake@0.24.0
cargo build

That will build in the same project that previously did not build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingon-holdIssues and Pull Requests that are on hold for some reason

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions