Mark the store with inbuxa's own store version #246

Merged
jcoffey-dev merged 1 commits from feat/store-version-mark into main 2026-10-30 03:51:18 +00:00
Owner

Gives the store its own version mark, separate from the 0.16 schema version, which doesn't change. A store without the mark (an older release, or one coming from Stalwart) gets version 1 on start. A store marked newer than the running release is refused before anything writes to it, with a message pointing to the newer release or the pre-upgrade backup.

This is the first of the 27.1 store-independence items. Version 1 is today's layout, and the bump to 2 comes with the first real layout change. The same commit goes to release/2026 in a separate PR, so 2026.x refuses a store a later release has changed.

New test store_version passes on RocksDB, SQLite and PostgreSQL. renamed_identifiers still passes.

Gives the store its own version mark, separate from the 0.16 schema version, which doesn't change. A store without the mark (an older release, or one coming from Stalwart) gets version 1 on start. A store marked newer than the running release is refused before anything writes to it, with a message pointing to the newer release or the pre-upgrade backup. This is the first of the 27.1 store-independence items. Version 1 is today's layout, and the bump to 2 comes with the first real layout change. The same commit goes to release/2026 in a separate PR, so 2026.x refuses a store a later release has changed. New test `store_version` passes on RocksDB, SQLite and PostgreSQL. `renamed_identifiers` still passes.
jcoffey-dev added 1 commit 2026-10-30 03:42:18 +00:00
Mark the store with inbuxa's own store version
ci / fork-checks (pull_request) Skipped
ci / build (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 8m46s
f7ec11c107
The store now carries an inbuxa store version (1), kept in the fork's
subspace beside the 0.16 schema version, which stays as it is. A store
without the mark, from an older release or from Stalwart, gets it on
start. A store marked newer than the running release is refused before
anything writes to it, with a message pointing at the newer release or
the pre-upgrade backup.

Layout 1 is what 2026.x and 27.1 both write today, so the same check goes
to release/2026: a 2026.x release then refuses a store a later 27.x has
changed instead of opening it.
jcoffey-dev merged commit b48f80212e into main 2026-10-30 03:51:18 +00:00
jcoffey-dev deleted branch feat/store-version-mark 2026-10-30 03:51:18 +00:00
Sign in to join this conversation.