CHANGELOG + REPORT: paperless-ngx 18, tandoor 17, adventurelog v0.13.0
gates / gates (push) Successful in 2s
gates / gates (push) Successful in 2s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -1,3 +1,24 @@
|
||||
## paperless-ngx → PostgreSQL 18, tandoor → 17, adventurelog → v0.13.0 (2026-09-27, `09` §3 decisions 41, 42)
|
||||
|
||||
Each move ALONE in its commit, written by `upgrade-test.py --write-ladder` from a bench verdict (throwaway LXC 9401,
|
||||
harness v4, 10-minute memory watch) AND a box verdict (scratch box 9202 through the product's guarded Update, controller
|
||||
0.275.0-rc1/0.275.0). Evidence: `felhom.eu/documentation/audits/version-travel-2026-09-26/B/`, `…/C/`.
|
||||
|
||||
- **paperless-ngx: PostgreSQL 16 → 18** (its upstream compose ships 18 at `/var/lib/postgresql`; decision 42). Bench:
|
||||
converted in 35.4 s, check equal over 72 tables, seed read back, anon peak 40.0 %. Box: converted in 64.6 s through the
|
||||
Update, seed read back. Mount → `/var/lib/postgresql`. New box fixture: Django's own `createsuperuser` in
|
||||
`paperless-webserver` (`upgrade_fixtures_box.py`).
|
||||
- **tandoor: PostgreSQL 16 → 17** (its upstream ships 16; 17 is the newest major its Django 5.2 documents; no mount
|
||||
change). Bench: converted in 23.6 s over 100 tables; the app's own memory peaked at 78.7 % (the app, not the engine —
|
||||
under the 80 % mark). Box: converted in 52.3 s. The superseded 16 step keeps its definition in `steps/`.
|
||||
- **adventurelog: v0.12.1 → v0.13.0 (R-655, decision 41 — the world-data download stays).** Same commit: the frontend
|
||||
healthcheck override is dropped (v0.13.0 brings its own; no single node path works on both versions), and a world-data
|
||||
file that does not parse to its end is renamed aside before start so `download-countries` fetches it again (with an
|
||||
import pending, the image's own start crash-looped 10× on `IncompleteJSONError`; with the step: set aside, downloaded,
|
||||
healthy). The update re-uses the file v0.12.1 left ("Latest data already imported"). Box: done in 204 s under the
|
||||
product's default 5-min wait (under the drill's 90 s wait it was UNDONE — correctly).
|
||||
- `immich` and the other PostGIS apps: not in this session.
|
||||
|
||||
## docmost converts PostgreSQL 16 → 18 (2026-09-25, `09` §3 decisions 35, 37, 39)
|
||||
|
||||
The first PostgreSQL major the catalog moves — ALONE in its commit, through `upgrade-test.py --write-ladder`, which
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
# REPORT — 2026-09-25 evening: docmost's PostgreSQL 16 → 18, the harness converts, the gate lets one app through
|
||||
# REPORT — 2026-09-27: paperless-ngx → PostgreSQL 18, tandoor → 17, adventurelog → v0.13.0
|
||||
|
||||
- **Harness v4** (`6a4a5f0`, `7036119` dump fix): a PostgreSQL major is converted on the bench the box's way; `render`
|
||||
and `--write-ladder` move a PostgreSQL 18 data mount to `/var/lib/postgresql`; `--write-ladder` writes
|
||||
`engine_conversion` only when BOTH venues converted it. `test_pg_conversion.py` (10 checks).
|
||||
- **`check-engine-major.py`**: a PostgreSQL major passes only with its proven, two-venue, marked ladder entry, alone in
|
||||
its commit; the postgis family is judged now. Decoys: 1 genuine, 5 refused (no mark, one venue, the mark in a comment,
|
||||
bundled, postgis) — red-proofed (`felhom.eu/documentation/audits/night-2026-09-26/C/C2-*`).
|
||||
- **docmost moved** (`afd3a60`): `postgres:16-alpine` → `postgres:18-alpine`, mount moved, `engine_conversion` written by
|
||||
the harness. Bench (throwaway LXC 9401, destroyed): converted in 11.0 s, check equal over 48 tables, seed read back, 0
|
||||
kills; negative control C3 → `failed`. Box: 9202 through the product (see the controller REPORT). **docmost's own
|
||||
limit 384M → 512M** (`09` §3 decision 39): the watch measured 91 % at 384M and 80.4 % at 512M — Node sizes its heap
|
||||
from the limit (R-693). The Hungarian prerequisite line changed with it; `copy_freeze` updated on purpose (the gate
|
||||
caught the first push).
|
||||
- **nextcloud** `after_load: php occ files:scan --all` (`9cc829c`, the Part E helper): a file written after the last
|
||||
backup is invisible after a load until the rescan (measured).
|
||||
- **Not moved:** adventurelog v0.13.0 (R-655) — its `SKIP_WORLD_DATA=1` switch and the cached dataset file are now
|
||||
measured; the move needs a choice between the two options written in the row.
|
||||
Brief: version-travel (Parts B and C). Architecture read: `09-update-architecture.md` §3 decisions 35–42, §6.4 parts 4, 5, 10.
|
||||
|
||||
| app | move | bench (LXC 9401) | box 9202 (guarded Update) | commit |
|
||||
|---|---|---|---|---|
|
||||
| paperless-ngx | postgres 16 → 18 (+ mount) | converted 35.4 s, 72 tables equal, seed ✓, anon peak 40.0 % | converted, done 64.6 s, seed ✓ | `46affe0` |
|
||||
| tandoor | postgres 16 → 17 | converted 23.6 s, 100 tables equal, seed ✓, anon peak 78.7 % (app) | converted, done 52.3 s, seed ✓ | `53b84ca` |
|
||||
| adventurelog | v0.12.1 → v0.13.0 (+ health + world-data fixes) | healthy 217 s, file reused, seed ✓, anon peak 73.0 % | done 204 s (5-min wait), file reused, seed ✓ | `06ea7da` |
|
||||
|
||||
Engine gate on the push range printed `ALLOWED` for both PostgreSQL moves. Catalog gates: all OK. Not moved:
|
||||
calcom, claper (no headless seed route checked this session), immich and the PostGIS family (out of scope).
|
||||
Observation: under the drill's 90 s health wait adventurelog v0.13.0 is undone (its backend needs ~3 min at first
|
||||
start); the product default is 5 min.
|
||||
|
||||
Reference in New Issue
Block a user