Skip to content
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

chore! Update rusqlite to v0.33 #173

Merged
merged 4 commits into from
Sep 23, 2024
Merged

chore! Update rusqlite to v0.33 #173

merged 4 commits into from
Sep 23, 2024

Conversation

cljoly
Copy link
Owner

@cljoly cljoly commented Jul 22, 2024

This PR aims to introduce a long term solution to update rusqlite to v0.33. If you need an updated version now, there is a stopgap alpha version that you might be able to use.


Changelog at https://github.com/rusqlite/rusqlite/releases/tag/v0.32.0

Concerns:

@cljoly cljoly added dependencies Pull requests that update a dependency file blocked Blocked on some internal or external progress labels Jul 22, 2024
@cljoly cljoly added this to the Version 1.3.0 milestone Jul 22, 2024
@xuxiaocheng0201
Copy link
Contributor

Hello, is there any progress?

@cljoly
Copy link
Owner Author

cljoly commented Jul 25, 2024

@xuxiaocheng0201 as I understand it, we need tokio-rusqlite to update first, because we can only link to one version of libsqlite3-sys. You are welcome to open an issue with tokio-rusqlite (I’ll do it when I have more time) or propose a PR to update the dependency in rusqlite_migration if there is a solution I’m missing.

@czocher
Copy link
Collaborator

czocher commented Jul 26, 2024

@xuxiaocheng0201 there's already a PR available, waiting for merge: programatik29/tokio-rusqlite#34

@xuxiaocheng0201
Copy link
Contributor

Perhaps we can release a lite version without alpha-async-tokio-rusqlite feature?
It seems that we are unable to contact the author of tokio-rusqlite.
If you have this plan, then I am willing to submit a PR on a new branch.

@cljoly
Copy link
Owner Author

cljoly commented Aug 4, 2024

Perhaps we can release a lite version without alpha-async-tokio-rusqlite feature?

Yes, we can release an alpha version without the feature, as a stop gap. We will need a more long term solution to release a stable version (where we have compatibility guarantees and try to make things that work well).

If you have this plan, then I am willing to submit a PR on a new branch.

Thanks, please go ahead.

As a side note, I tried dependency renaming (rusqlite_032 and rusqlite_033) to make the default and async features use different dependencies, but we still have the two sqlite versions in the dependency tree and compilation fails.

@czocher
Copy link
Collaborator

czocher commented Aug 20, 2024

@cljoly great success, the update was merged: programatik29/tokio-rusqlite#34 we can now update our version.

@cljoly
Copy link
Owner Author

cljoly commented Aug 20, 2024

Thanks for flagging @czocher!

I understand we are still awaiting a release of tokio-rusqlite, aren’t we?

@coveralls
Copy link

coveralls commented Aug 20, 2024

Coverage Status

coverage: 94.03%. remained the same
when pulling 40462f1 on rusqlite-033
into bdf4a02 on master.

Cargo.toml Outdated Show resolved Hide resolved
@oxalica
Copy link

oxalica commented Sep 3, 2024

It seems that no library code is changed to use the new rusqlite dependency. Could we just relax the version specification to allow both rusqlite versions by [rusqlite] version = ">=0.31.0, <0.33"?
I did a quite test, it is both compatible with rusqlite 0.32 when alpha-async-tokio-rusqlite disabled and compatible with rusqlite 0.31 when enabled. So downstream user can decide which way to go and we won't need to wait for tokio-rusqlite (plus we don't need to do anything once they release. Cargo will select the newer version if possible automatically).

@cljoly
Copy link
Owner Author

cljoly commented Sep 4, 2024

It seems that no library code is changed to use the new rusqlite dependency. Could we just relax the version specification to allow both rusqlite versions by [rusqlite] version = ">=0.31.0, <0.33"?
I did a quite test, it is both compatible with rusqlite 0.32 when alpha-async-tokio-rusqlite disabled and compatible with rusqlite 0.31 when enabled. So downstream user can decide which way to go and we won't need to wait for tokio-rusqlite (plus we don't need to do anything once they release. Cargo will select the newer version if possible automatically).

That's a great idea, certainly worth a try. Please feel free to open a PR. Otherwise I'll try it when I get the chance.

Changelog at https://github.com/rusqlite/rusqlite/releases/tag/v0.32.0

Concerns:
* rusqlite/rusqlite#1532: does this mean that
  default transaction behavior can interfer with the migrations?
As a temporary measure to refine the PR, until a proper tokio-rusqlite
version is released.
@cljoly cljoly removed the blocked Blocked on some internal or external progress label Sep 23, 2024
@cljoly cljoly merged commit 313e532 into master Sep 23, 2024
32 checks passed
@cljoly cljoly deleted the rusqlite-033 branch September 23, 2024 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants