Explain the rusqlite version constraint in both manifests
The reasoning lived only in commit 9caecf6, so a manifest reader saw a bare
version and no sign that it is a tree-wide constraint rather than an arbitrary
choice. libsqlite3-sys carries `links = "sqlite3"`, so two rusqlite majors in
one graph is a resolver error and every consumer moves in the same pass.
Comments only. No version requirement changed and Cargo.lock is untouched.
GoingsOn problem 3664871f asked for this plus comments on chacha20poly1305 and
sha2, on the reading that both are pinned a major behind. They are not: both
are `0.11` and 0.11.0 is the latest published major of each, unchanged since
the extraction from the MNW tree. The finding predates that extraction. Its
rusqlite half was stale too, naming a 0.39 hold and commit 1365b8f1, neither
of which exists here.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
2 files changed,
+15 insertions,
-0 deletions
| 78 |
78 |
|
|
| 79 |
79 |
|
# SyncStore engine (feature = "store"). Owns the app's SQLite connection. Bundled
|
| 80 |
80 |
|
# so no system libsqlite is needed; `functions` to register the `hash_row_id` UDF.
|
|
81 |
+ |
#
|
|
82 |
+ |
# The version here is a tree-wide choice, not this crate's. libsqlite3-sys carries
|
|
83 |
+ |
# `links = "sqlite3"`, so two rusqlite majors in one dependency graph is a resolver
|
|
84 |
+ |
# error rather than a warning: this crate cannot move until every consuming app can
|
|
85 |
+ |
# move in the same pass. `rusqlite::Connection` is in this crate's public API as
|
|
86 |
+ |
# well, which makes each bump breaking for consumers. The move to 0.40 (commit
|
|
87 |
+ |
# 9caecf6, 2026-08-07) needed no code change and was gated only on GoingsOn and
|
|
88 |
+ |
# Balanced Breakfast leaving sqlx-sqlite. Keep this version equal to
|
|
89 |
+ |
# synckit-config's.
|
| 81 |
90 |
|
rusqlite = { version = "0.40", features = ["bundled", "functions"], optional = true }
|
| 82 |
91 |
|
# The local config store (posture types + KV store). The config sync adapter
|
| 83 |
92 |
|
# (src/store/config.rs) turns a ConfigSpec into a SyncTable. Path dep: sibling in
|
| 6 |
6 |
|
description = "Local key/value app settings with sync postures. The store half of SyncKit's config sync, usable with no network."
|
| 7 |
7 |
|
|
| 8 |
8 |
|
[dependencies]
|
|
9 |
+ |
# Bundled so no system libsqlite is needed. The version is a tree-wide choice, not
|
|
10 |
+ |
# this crate's: libsqlite3-sys carries `links = "sqlite3"`, so two rusqlite majors
|
|
11 |
+ |
# in one dependency graph is a resolver error rather than a warning, and every
|
|
12 |
+ |
# consumer has to move in the same pass. `rusqlite::Connection` is in this crate's
|
|
13 |
+ |
# public API too, so a bump is breaking. Moved to 0.40 in commit 9caecf6
|
|
14 |
+ |
# (2026-08-07) with no code change. Keep this version equal to synckit-client's.
|
| 9 |
15 |
|
rusqlite = { version = "0.40", features = ["bundled"] }
|
| 10 |
16 |
|
thiserror = "2"
|
| 11 |
17 |
|
|