-
-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation errors with rusqlite 0.29 #68
Comments
Thanks @johnbcodes we'll have a look with @cljoly and see what we can do to stay compatible with the new versions of |
Thanks for submitting the PR to tokio-rusqlite and for the research @johnbcodes ! I think that there are two problems here, and that we could tackle them separately. Make rusqlite_migration compatible with latest dependenciesWe want future versions of rusqlite_migration to be compatible with the latest versions of our dependencies. And I agree with you @czocher, as much as possible, we want to keep the same MSRV. If we have to increase it though, so be it, we can’t make any promise anyway as long as rusqlite does not make promises as well.
Make rusqlite_migration properly express its dependenciesWe want versions of rusqlite_migration to properly express their dependencies, i.e. if the user requests version 0.29 of rusqlite and rusqlite_migration is incompatible with it, we should get an error from the dependency solver, not a compilation error from the library. In that regard, we currently have a bug in version 1.0.1 (and most of the previous ones IIRC), in that the
|
As discussed in #69, currently, version 1.0.1 of `rusqlite_migration` is incompatible with rusqlite version 0.29. The problem is that the Cargo.toml states the contrary, when it says: ```toml [dependencies.rusqlite] version = ">=0.23.0" default-features = false features = [] ``` I think we should treat this as a bug and issue a patch release with a fix. This commit makes the code compatible with version 0.29. We are lucky that such a code exists and is not too complicated. As a result, and to fix the second related issue of insufficiently tight version requirements on `rusqlite`, the range is not open-ended anymore and we now constrain the upper bound as well. This means that we won’t have to worry about breaking changes that `rusqlite` version 0.30 may introduce. I’ve tested this change with all the non-yanked versions of rusqlite and it did `cargo build && cargo test tests::` without issues. The `cargo test tests::` is to exclude documentation test as I don’t want to make these weird due to the workaround for old `rusqlite` versions. I’ve also run the full `cargo test` with `rusqlite` version 0.29 and 0.28, because the documentation examples should be correct for those. Fixes #68
TL;DR: if you encounter a compilation problem on rusqlite_migration in version 1.0.x, make sure you update to 1.0.2. This patch version supports rusqlite 0.29 Future versions will have much tighter dependency requirements, this is tracked in #69. |
rusqlite has removed some deprecated items with 0.29, including
NO_PARAMS
in this commit.Full compatibility also requires tokio-rusqlite to be updated for which a pull request has been submitted
The text was updated successfully, but these errors were encountered: