Skip to content

bump(bdk_chain): rusqlite to 0.36.0 #2002

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

binarybaron
Copy link

@binarybaron binarybaron commented Jul 29, 2025

Description

This PR bumps the chain crates feature dependency on rusqlite to the more recent version 0.36.0.

Notes to the reviewers

I submitted this PR because the "outdated" dependency breaks dependency resolution in my project.

See #1766

Changelog notice

Checklists

All Submissions:

New Features:

  • I've added tests for the new feature
  • I've added docs for the new feature

Bugfixes:

  • This pull request breaks the existing API
  • I've added tests to reproduce the issue which are now passing
  • I'm linking the issue being fixed by this PR

@binarybaron binarybaron changed the title bump(chain): rusqlite to 0.37.0 bump(bdk_chain): rusqlite to 0.37.0 Jul 29, 2025
Copy link
Contributor

@tnull tnull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that unilaterally bumping the rusqlite dependency just in BDK is a good idea, as it will result in incompatibility with other crates in the rust-bitcoin space. Unfortunately, 0.31 is the current 'agreed upon' standard across crates.

If we see a need to bump it, this will take some coordination effort across projects (BDK, LDK, Cashu, Fedimint, Payjoin, at the very least would be affected).

@binarybaron binarybaron changed the title bump(bdk_chain): rusqlite to 0.37.0 bump(bdk_chain): rusqlite to 0.36.0 Jul 29, 2025
@binarybaron
Copy link
Author

Changed to 0.36.0 because arti-client uses 0.36.0

@notmandatory
Copy link
Member

@tnull & @binarybaron what would you think about extracting the bdk_sqlite persistence store from the bdk_chain crate and putting it in it's own crate. If we do that we could have a 1.0.0 version with the current 0.31.0 rusqlite and release a new 2.0.0 version with 0.36.0 rusqlite, while still back-porting bug / features for the 1.x. Or open to other ideas along these lines.

@tnull
Copy link
Contributor

tnull commented Jul 29, 2025

@tnull & @binarybaron what would you think about extracting the bdk_sqlite persistence store from the bdk_chain crate and putting it in it's own crate. If we do that we could have a 1.0.0 version with the current 0.31.0 rusqlite and release a new 2.0.0 version with 0.36.0 rusqlite, while still back-porting bug / features for the 1.x. Or open to other ideas along these lines.

So, moving the SQLite store into an individual crate would generally be a good idea, IMO. I however don't think that it would solve the issue, at least if you don't want to go down the road of introducing features to enable individual rusqlite versions. As mentioned above, a lot of projects in the space by now depend on the exact rusqlite version, and I think it would be important to check in with most of them to coordinate such breakage. Apart from that, yes, it would of course also require a major version bump for all of the involved projects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants