Freeze Stalwart 0.16.27 as an import format, with a fixture and a check #250

Merged
jcoffey-dev merged 1 commits from test/import-0.16.27 into main 2026-10-30 04:53:27 +00:00
Owner

Freezes Stalwart 0.16.27 as the one Stalwart format inbuxa keeps reading, by export and import. docs/spec/import-0.16.md covers what carries over, what changes on first start, and what an operator has to change.

The fixture is a real 0.16.27 export, 84K, made by tools/import-check/make-fixture.sh from the pinned image with no internet. check.sh <image> imports it, compares what inbuxa serves against what 0.16.27 served (less inbuxa's own role and permissions), then checks delivery through the imported filter, search after the reindex, and re-saving a pre-rename filter. It passes on 27.1-rc.4. It's meant to run on every RC, and CI doesn't run it.

One open question is in the spec: an imported store keeps 0.16's web interface application, so inbuxa would serve upstream's UI at /admin.

Freezes Stalwart 0.16.27 as the one Stalwart format inbuxa keeps reading, by export and import. `docs/spec/import-0.16.md` covers what carries over, what changes on first start, and what an operator has to change. The fixture is a real 0.16.27 export, 84K, made by `tools/import-check/make-fixture.sh` from the pinned image with no internet. `check.sh <image>` imports it, compares what inbuxa serves against what 0.16.27 served (less inbuxa's own role and permissions), then checks delivery through the imported filter, search after the reindex, and re-saving a pre-rename filter. It passes on 27.1-rc.4. It's meant to run on every RC, and CI doesn't run it. One open question is in the spec: an imported store keeps 0.16's web interface application, so inbuxa would serve upstream's UI at `/admin`.
jcoffey-dev added 1 commit 2026-10-30 04:42:39 +00:00
Freeze Stalwart 0.16.27 as an import format, with a fixture and a check
ci / fork-checks (pull_request) Skipped
ci / build (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 10m26s
c0c00630df
From 27.1 the store layout is inbuxa's own, and Stalwart is a migration
source. The one Stalwart format inbuxa keeps reading is 0.16.27's, by
export and import. docs/spec/import-0.16.md says what carries over, what
changes on first start, and what the operator has to change.

tests/resources/import-0.16.27 is a real 0.16.27 export (84K): accounts,
a group, a custom role, a tenant, mail with threads and an attachment,
sharing, calendars, contacts, Sieve and a vacation response, plus a
snapshot of what 0.16.27 served. tools/import-check/check.sh imports it
into an image, compares what that serves against the snapshot, less the
known differences (inbuxa's own role and permissions), then checks
delivery through the imported filter, search after the reindex, and
re-saving a pre-rename filter. It passes on 27.1-rc.4.
make-fixture.sh rebuilds the fixture from the pinned 0.16.27 image, with
no internet, so no upstream download ends up in it.

SPEC.md and migration.md no longer promise an unchanged store format.
jcoffey-dev merged commit 1f07065d7d into main 2026-10-30 04:53:27 +00:00
jcoffey-dev deleted branch test/import-0.16.27 2026-10-30 04:53:27 +00:00
Sign in to join this conversation.