Skip to content

libstore: add SQLite::Settings struct for explicit configuration#15050

Merged
Ericson2314 merged 1 commit intoNixOS:masterfrom
amaanq:sqlite-settings-struct
Jan 22, 2026
Merged

libstore: add SQLite::Settings struct for explicit configuration#15050
Ericson2314 merged 1 commit intoNixOS:masterfrom
amaanq:sqlite-settings-struct

Conversation

@amaanq
Copy link
Member

@amaanq amaanq commented Jan 22, 2026

Motivation

This PR progresses #5638

The SQLite constructor currently reads settings.useSQLiteWAL directly from the global settings object. We can improve this by adding a SQLite::Settings struct that callers must provide, and this makes the data flow explicit. All call sites now explicitly pass settings.useSQLiteWAL.

Context

This is extracted from the larger WIP commit that eliminates global Settings in libstore. The SQLite changes are self-contained.

The struct bundles mode (the existing open mode parameter) with useWAL, keeping related configuration together rather than adding a second parameter.


Add 👍 to pull requests you find important.

The Nix maintainer team uses a GitHub project board to schedule and track reviews.

@github-actions github-actions bot added store Issues and pull requests concerning the Nix store fetching Networking with the outside (non-Nix) world, input locking labels Jan 22, 2026
@amaanq amaanq force-pushed the sqlite-settings-struct branch from a898d96 to 4240342 Compare January 22, 2026 16:46
@Ericson2314
Copy link
Member

Approving this because while my coworker wrote this based on my own refactor, we specifically authorized this change in the meeting yesterday.

@Ericson2314 Ericson2314 enabled auto-merge January 22, 2026 16:47
Progress on NixOS#5638

Replace the SQLite constructor's mode parameter with a Settings struct
that includes both the open mode and useWAL flag. This makes the
dependency on useSQLiteWAL explicit at call sites rather than having
it read from the global settings inside the constructor.

All call sites now explicitly pass settings.useSQLiteWAL, preparing
for downstream work where stores can pass their own settings instead
of relying on the global.
auto-merge was automatically disabled January 22, 2026 17:06

Head branch was pushed to by a user without write access

@amaanq amaanq force-pushed the sqlite-settings-struct branch from 4240342 to 751a0f4 Compare January 22, 2026 17:06
@Ericson2314 Ericson2314 added this pull request to the merge queue Jan 22, 2026
Merged via the queue into NixOS:master with commit 6276642 Jan 22, 2026
14 checks passed
@amaanq amaanq deleted the sqlite-settings-struct branch January 22, 2026 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fetching Networking with the outside (non-Nix) world, input locking store Issues and pull requests concerning the Nix store

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants