Skip to content

Upgrade rusqlite to v0.32.1 across workspace#82

Merged
leynos merged 2 commits intomainfrom
upgrade-rusqlite-v0-32-3r2wuh
Apr 4, 2026
Merged

Upgrade rusqlite to v0.32.1 across workspace#82
leynos merged 2 commits intomainfrom
upgrade-rusqlite-v0-32-3r2wuh

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Apr 3, 2026

Summary

  • Upgrades rusqlite to 0.32.1 across all crates that depend on SQLite (workspace-wide).
  • Aligns with bundled libsqlite3-sys and fixes included in the 0.32.x series.

Changes

  • root/Cargo.toml: rusqlite = { version = "0.32.1", features = ["bundled"] }
  • wildside-cli/Cargo.toml: rusqlite = { workspace = true }
  • wildside-core/Cargo.toml: rusqlite = { workspace = true, optional = true }
  • wildside-data/Cargo.toml: rusqlite = { workspace = true }
  • wildside-scorer/Cargo.toml: rusqlite = { workspace = true }
  • Cargo.lock: libsqlite3-sys bumped to 0.30.1; rusqlite bumped to 0.32.1; lockfile updated accordingly

Testing

  • Build the workspace: cargo build
  • Run tests: cargo test
  • Smoke test CLI and any SQLite-dependent features to ensure basic functionality remains intact

Notes

  • No code changes required; this is purely a dependency upgrade.
  • If any runtime issues arise, consider re-running CI with updated libsqlite3-sys or reporting to the maintainers.

📎 Task: https://www.devboxer.com/task/98edc9b9-236b-4270-9e90-cff6f9e1df18

Updated rusqlite from 0.31.0 to 0.32.1 and libsqlite3-sys from 0.28.0 to 0.30.1 across the workspace Cargo.toml files and Cargo.lock to keep dependencies up to date.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 99cb13c0-76e8-4c35-83ca-9ebfd251b419

📥 Commits

Reviewing files that changed from the base of the PR and between ee8e1a6 and b26708d.

📒 Files selected for processing (5)
  • Cargo.toml
  • wildside-cli/Cargo.toml
  • wildside-core/Cargo.toml
  • wildside-data/Cargo.toml
  • wildside-scorer/Cargo.toml

Summary

This pull request upgrades rusqlite from 0.31.0 to 0.32.1 across the workspace and centralises dependency management by moving the rusqlite dependency to workspace level in the root Cargo.toml.

Changes

Workspace-level dependency addition:

  • Added rusqlite = { version = "0.32.1", features = ["bundled"] } to [workspace.dependencies] in the root Cargo.toml

Per-crate dependency consolidation:

  • wildside-cli/Cargo.toml: Replaced explicit rusqlite = { version = "0.31.0", features = ["bundled"] } with rusqlite = { workspace = true }
  • wildside-core/Cargo.toml: Replaced explicit rusqlite = { version = "0.31.0", features = ["bundled"], optional = true } with rusqlite = { workspace = true, optional = true }
  • wildside-data/Cargo.toml: Replaced explicit rusqlite = { version = "0.31.0", features = ["bundled"] } with rusqlite = { workspace = true }
  • wildside-scorer/Cargo.toml: Replaced explicit rusqlite = { version = "0.31.0", features = ["bundled"] } with rusqlite = { workspace = true }

Rationale

The bundled feature enables libsqlite3-sys to compile SQLite from source, ensuring consistent SQLite versions across all workspace crates. This dependency centralisation provides a single source of truth for version and feature configuration, simplifying maintenance and ensuring consistency.

Design Context

The use of rusqlite with the bundled feature is documented in the architectural design documents (docs/wildside-engine-design/02-data-foundation.md and docs/wikidata-etl-pipeline-technical-design.md), which establish SQLite as the foundation for the offline POI store and Wikidata ETL pipeline.

Testing

No source code changes are required. Testing should verify:

  • Workspace builds successfully: cargo build
  • Tests pass: cargo test
  • CLI and SQLite-dependent features function correctly

Walkthrough

Move rusqlite version/feature management to the workspace: add rusqlite = { version = "0.32.1", features = ["bundled"] } under [workspace.dependencies] and update member manifests to reference the workspace-managed rusqlite (workspace = true), preserving optional/dev markings.

Changes

Cohort / File(s) Summary
Workspace dependency
Cargo.toml
Added [workspace.dependencies] entry for rusqlite = { version = "0.32.1", features = ["bundled"] }.
Workspace members
wildside-cli/Cargo.toml, wildside-core/Cargo.toml, wildside-data/Cargo.toml, wildside-scorer/Cargo.toml
Switched local rusqlite declarations to workspace = true (kept dev/optional flags as before). Ensure no per-crate features/versions remain conflicting.

Poem

🔧 Workspace tunes its dependency song,
Rusqlite now managed, steady and strong,
Members point upward, no versions to bind,
Bundled bytes gathered, neatly aligned,
A tidy upgrade, dependencies refined.

🚥 Pre-merge checks | ✅ 6 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Developer Documentation ⚠️ Warning PR centralises rusqlite dependency management via workspace-level configuration without updating documentation to explain the workspace dependency pattern or conventions. Create a DEVELOPMENT.md or BUILD.md guide documenting workspace dependency management strategy and how developers should add or update shared dependencies.
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: upgrading rusqlite from 0.31.0 to 0.32.1 across the workspace and centralising dependency management through workspace configuration.
Description check ✅ Passed The description is directly related to the changeset, providing clear details about the rusqlite upgrade, affected crates, changes to Cargo.toml files, and testing instructions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Testing ✅ Passed Dependency version upgrade with no source code modifications. Existing tests automatically exercise the new dependency version.
User-Facing Documentation ✅ Passed Pull request introduces only dependency management refactoring at workspace level with no user-facing functionality, behaviour, or API changes; documentation updates not required.
Module-Level Documentation ✅ Passed The pull request exclusively modifies Cargo.toml dependency declarations to centralise rusqlite version management. No Rust source code modules (.rs files) are added or modified, so module-level documentation requirements are not applicable.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade-rusqlite-v0-32-3r2wuh

Comment @coderabbitai help to get the list of available commands and usage tips.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Apr 3, 2026

Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Workspace-wide upgrade of the rusqlite dependency to v0.32.1 (with bundled SQLite) and corresponding lockfile updates, without any application code changes.

File-Level Changes

Change Details Files
Align all workspace crates on rusqlite 0.32.1 with bundled SQLite for consistent behavior.
  • Update rusqlite version from 0.31.0 to 0.32.1 in CLI crate dependency configuration while retaining bundled feature.
  • Update rusqlite version from 0.31.0 to 0.32.1 in core crate dependency configuration, keeping it optional and bundled.
  • Update rusqlite version from 0.31.0 to 0.32.1 in data crate dependency configuration with bundled feature for consistent behavior across CI and dev machines.
  • Update rusqlite version from 0.31.0 to 0.32.1 in scorer crate dependency configuration while retaining bundled feature.
wildside-cli/Cargo.toml
wildside-core/Cargo.toml
wildside-data/Cargo.toml
wildside-scorer/Cargo.toml
Refresh Cargo.lock to match upgraded rusqlite and libsqlite3-sys versions.
  • Bump libsqlite3-sys to 0.30.1 as required by rusqlite 0.32.1.
  • Update all lockfile entries for rusqlite to 0.32.1 and regenerate dependency graph accordingly.
Cargo.lock

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

codescene-delta-analysis[bot]

This comment was marked as outdated.

@leynos leynos marked this pull request as ready for review April 4, 2026 16:01
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="wildside-cli/Cargo.toml" line_range="36" />
<code_context>
 rstest-bdd-macros = { workspace = true }
 tempfile = "3.23.0"
-rusqlite = { version = "0.31.0", features = ["bundled"] }
+rusqlite = { version = "0.32.1", features = ["bundled"] }

 [features]
</code_context>
<issue_to_address>
**suggestion:** Consider centralizing the rusqlite version in the workspace to avoid duplication across crates.

rusqlite is now duplicated with the same version in several manifests (cli, core, data, scorer). To avoid future version skew, consider moving it into `[workspace.dependencies]` in the root `Cargo.toml` and referencing it in each crate with `rusqlite = { workspace = true, features = [

Suggested implementation:

```
rusqlite = { workspace = true, features = ["bundled"] }

```

To fully implement the suggestion across the workspace you will also need to:

1. In the root `Cargo.toml`, add `rusqlite` to `[workspace.dependencies]`, for example:
   ```toml
   [workspace.dependencies]
   rusqlite = { version = "0.32.1" }
   ```
2. In each crate that currently specifies a direct `rusqlite` dependency (`core`, `data`, `scorer`, and any others), replace the versioned dependency with the workspace reference, preserving crate-specific features, e.g.:
   ```toml
   # Before
   rusqlite = { version = "0.32.1", features = ["bundled"] }

   # After
   rusqlite = { workspace = true, features = ["bundled"] }
   ```
This will centralize the `rusqlite` version and prevent future version skew between crates.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread wildside-cli/Cargo.toml Outdated
…explicit versions

Replaced explicit rusqlite version declarations with workspace replacements
in all Cargo.toml files. Added rusqlite with bundled feature to root Cargo.toml.
This change centralizes rusqlite dependency management and ensures consistent
versioning across workspace crates.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@leynos leynos changed the title Upgrade rusqlite to v0.32+ across workspace Upgrade rusqlite to v0.32.1 across workspace Apr 4, 2026
@leynos leynos merged commit 2db6cbf into main Apr 4, 2026
12 checks passed
@leynos leynos deleted the upgrade-rusqlite-v0-32-3r2wuh branch April 4, 2026 16:23
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.

1 participant