Skip to content

Backport 0.7: Widen rusqlite compatibility, use manual downloads - #1225

Open
tnull wants to merge 3 commits into
lightningdevkit:release/0.7from
tnull:2026-11-backport-widen-rusqlite-0.7
Open

tnull wants to merge 3 commits into
lightningdevkit:release/0.7from
tnull:2026-11-backport-widen-rusqlite-0.7

Conversation

@tnull

@tnull tnull commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

Backport branch of #1187 and #1173.

tnull added 3 commits November 9, 2026 12:47
Fresh builds fail because automatic test binary downloads require
yanked zip releases. The no_download configuration still leaves these
requirements in Cargo's dependency graph.

Use the existing verified download script for local test binaries,
including the VSS jobs, which share the Rust workflow's binary caches.
Document the required environment so fresh builds and local tests work
with the current harness releases.

Upstream fix: https://git.rust-bitcoin.org/rust-bitcoin/corepc/pulls/720

Co-Authored-By: HAL 9000
(cherry picked from commit a0b9593)
Requiring rusqlite 0.31 prevents applications from combining LDK Node
with dependencies that need newer SQLite bindings, even when the
persistence APIs remain compatible.

Allow releases from 0.31 through 0.39 while preserving Rust 1.85
support and existing persistence behavior. Exclude 0.40 because its
first two releases require a newer compiler.

Co-Authored-By: HAL 9000
(cherry picked from commit 0969b15)
Root builds remain on rusqlite 0.31 because historical Node releases
are required by upgrade tests. This can conceal incompatibilities
with newer releases allowed by the library.

Test downstream persistence with exact minimum and maximum versions
on Rust 1.85. Keep the fixture independent of the root test graph so
both endpoints are actually exercised.

Co-Authored-By: HAL 9000
(cherry picked from commit 0d96cbe)
@ldk-reviews-bot

ldk-reviews-bot commented Nov 9, 2026 •

Copy link
Copy Markdown

I've assigned @tankyleo as a reviewer!
I'll wait for their review and will help manage the review process.
Once they submit their review, I'll check if a second reviewer would be helpful.

Comment on lines +130 to +134
cargo test
- name: Test with UniFFI support on Rust ${{ matrix.toolchain }}
if: "matrix.platform != 'windows-latest' && matrix.build-uniffi"
run: |
RUSTFLAGS="--cfg no_download" cargo test --features uniffi
cargo test --features uniffi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We can fix CI by clearing the flags here like this:

diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 04ad5f8e..1ae4ad6d 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -127,8 +127,8 @@ jobs:
       - name: Test on Rust ${{ matrix.toolchain }}
         if: "matrix.platform != 'windows-latest'"
         run: |
-          cargo test
+          RUSTFLAGS="" cargo test
       - name: Test with UniFFI support on Rust ${{ matrix.toolchain }}
         if: "matrix.platform != 'windows-latest' && matrix.build-uniffi"
         run: |
-          cargo test --features uniffi
+          RUSTFLAGS="" cargo test --features uniffi

Comment on lines +8 to +11
The root crate's development dependencies on LDK Node 0.6.2 and 0.7.0 require
rusqlite 0.31 unconditionally. They constrain root builds even when individual
tests are filtered out, but do not participate in downstream resolution. Keep
this fixture separate so CI actually tests both ends of the supported range.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One nit here:

diff --git a/tests/rusqlite-compat/README.md b/tests/rusqlite-compat/README.md
index c27412e6..3b07c71e 100644
--- a/tests/rusqlite-compat/README.md
+++ b/tests/rusqlite-compat/README.md
@@ -5,9 +5,9 @@ rusqlite release while using LDK Node's default features. The test writes throug
 LDK Node, reopens the store, and reads the database with the application's rusqlite.
 Neither rusqlite nor libsqlite3-sys is patched.

-The root crate's development dependencies on LDK Node 0.6.2 and 0.7.0 require
-rusqlite 0.31 unconditionally. They constrain root builds even when individual
-tests are filtered out, but do not participate in downstream resolution. Keep
+The root crate's development dependency on LDK Node 0.6.2 requires
+rusqlite 0.31 unconditionally. It constrains root builds even when individual
+tests are filtered out, but does not participate in downstream resolution. Keep
 this fixture separate so CI actually tests both ends of the supported range.

 From the repository root, run:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants