SeaQL / sea-query

🔱 A dynamic SQL query builder for MySQL, Postgres and SQLite
https://www.sea-ql.org
Other
1.18k stars 195 forks source link

sea-query-rusqlite doesn't compile with v0.29.0 of rusqlite #669

Closed mihirsamdarshi closed 1 year ago

mihirsamdarshi commented 1 year ago

Description

When trying to use sea-query-rusqlite with a more recent version of rusqlite I get compile errors. I was able to resolve this, by removing the restrictive = "0.28" from the dependency section of sea-query-rusqlite's Cargo.toml

Steps to Reproduce

[package]
name = "testing"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rusqlite = { version = "0", features = ["modern-full", "bundled-sqlcipher-vendored-openssl"], default-features = false }
rusqlite_migration = "^1.1.0-alpha.2"
sea-query = { version = "0", features = ["derive", "attr", "backend-sqlite"], default-features = false }
sea-query-rusqlite = { version = "0", features = ["with-chrono", "with-json", "with-time", "with-uuid"], default-features = false }

Expected Behavior

SeaORM should work with rusqlite v0.29.0.

Note that this issue doesn't appear with the following key replacement:

rusqlite_migration = "1"

Actual Behavior

    Updating crates.io index
error: failed to select a version for `libsqlite3-sys`.
    ... required by package `rusqlite v0.28.0`
    ... which satisfies dependency `rusqlite = "^0.28"` of package `sea-query-rusqlite v0.1.0`
    ... which satisfies dependency `sea-query-rusqlite = "^0"` of package `testing v0.1.0 (/Users/me/Code/testing)`
versions that meet the requirements `^0.25.0` are: 0.25.2, 0.25.1, 0.25.0

the package `libsqlite3-sys` links to the native library `sqlite3`, but it conflicts with a previous package which links to `sqlite3` as well:
package `libsqlite3-sys v0.26.0`
    ... which satisfies dependency `libsqlite3-sys = "^0.26.0"` of package `rusqlite v0.29.0`
    ... which satisfies dependency `rusqlite = "=0.29.0"` of package `rusqlite_migration v1.1.0-alpha.2`
    ... which satisfies dependency `rusqlite_migration = "^1.1.0-alpha.2"` of package `testing v0.1.0 (/Users/me/Code/testing)`
Only one package in the dependency graph may specify the same links value. This helps ensure that only one copy of a native library is linked in the final binary. Try to adjust your dependencies so that only one package uses the links ='libsqlite3-sys' value. For more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links.

failed to select a version for `libsqlite3-sys` which could resolve this conflict

Reproduces How Often

Yes, using the attached Cargo.toml

Versions

OS: macOS 14.0-beta DB: Sqlite

tyt2y3 commented 1 year ago

Released rusqlite binding 0.4 for sea-query 0.30