This commit is contained in:
Mateusz Gruszczyński committed 2026-10-31 14:36:07 +01:00
1 parent fc81ecafd6
commit dc57aa7089
89 files changed
+5290 -1551

No files matched your search

+29 -16
View File
@@ -1,20 +1,33 @@
RustBox 0.1.2 - release validation
RustBox 0.2.0 - final source validation
Completed in this environment:
- release metadata: Cargo.toml and the RustBox package entry in Cargo.lock = 0.1.2
- TOML parse: Cargo.toml, config.example.toml, config.dev.toml and packaging/rustbox.toml
- shell syntax: dev.sh and scripts/*.sh pass bash -n
- query catalog parity: SQLite/MySQL/PostgreSQL expose the same 27 modules / 197 public SQL constants, including 153 Q_* executable query constants
- logical schema parity: MySQL and PostgreSQL define the same 28 account/global tables
- static SQL dialect scan: no PostgreSQL-only constructs found in the MySQL catalog/baseline and no MySQL-only constructs found in the PostgreSQL catalog/baseline
- MySQL index audit: 49 indexes/constraints checked; no unprefixed TEXT/BLOB key remains and the largest utf8mb4 key estimate is 2568 bytes (<3072); pgp_keys.email is VARCHAR(320)
- MySQL upsert audit: no REPLACE INTO remains in the MySQL catalog; folder/message refresh uses non-destructive ON DUPLICATE KEY UPDATE
- SQLite baseline execution: schema executes successfully under Python sqlite3 with foreign keys enabled
- cluster storage review: SQL mailbox cache is shared; draft attachments are filesystem-backed; built-in Tantivy and OpenPGP are disabled by cluster-mode validation
- no application tests were added for the 0.1.2 audit
- offline release validator: scripts/validate-release-static.py (139/139 checks passed)
- all maintained TOML examples parse successfully
- Docker Compose topology/config references are validated by the offline release validator
- JSON files parse successfully
- browser JavaScript assembled in src/web/js/manifest.txt order passes node --check
- shell scripts pass bash -n
- Python helper scripts compile successfully
- Rust source delimiter sanity check passes after removing partial-patch leftovers
- git diff --check passes on the final source tree
- no Cargo.lock, *.orig, *.rej, temporary FIX/APPLY scripts, or patch leftovers are shipped
- regression source checks cover every Clippy failure reported during the 0.2.0 release attempt
Not executable in this environment:
- cargo fmt/test/clippy/build: Rust/Cargo toolchain is not installed
- live MySQL/PostgreSQL execution: database servers/clients are not installed
0.2.0 fixes included:
- cluster_mode controls the implicit data_dir default; PostgreSQL/MySQL remain valid with local data_dir backends in single-node deployments
- storage/search configuration comes only from [storage] and [search]
- removed pre-0.2 top-level storage/search switches and the tantivy backend alias
- removed runtime legacy attachment read-through; attachment access uses logical BlobStorage keys
- fixed search_outbox tenant/import table parity
- fixed nested SQLite transactions in message move paths
- fixed the Clippy -D warnings failures reported for examples, config, storage, search, routes, realtime and formatting
- scripts/build-release.sh removes stale Cargo.lock, runs the static gate, generates a fresh lockfile for locked Cargo commands, and cleans it on exit
Before publishing a production binary, run scripts/build-release.sh on a Rust 1.88+ build host and perform a live schema/query smoke test against the exact MySQL/PostgreSQL versions used in production.
Not executed in this packaging environment:
- cargo fmt/test/clippy/build with Rust 1.88, because Rust/Cargo is not installed here and outbound DNS is unavailable
- live PostgreSQL/MySQL/S3/NFS/OpenSearch integration tests
The final release gate on a Rust host is:
bash scripts/build-release.sh
This file intentionally does not claim blocked runtime/integration checks as passed.