diff --git a/docs/working/plans/2026-07-04-grav-2.0.4-upgrade.md b/docs/working/plans/2026-07-04-grav-2.0.4-upgrade.md index 91aa199..7b90aec 100644 --- a/docs/working/plans/2026-07-04-grav-2.0.4-upgrade.md +++ b/docs/working/plans/2026-07-04-grav-2.0.4-upgrade.md @@ -190,7 +190,7 @@ Expected: "Cache cleared" output. docker exec intotheeast_grav sh -c 'cd /var/www/html && for p in admin2 api flex-objects login form; do printf "%s: " "$p"; grep -m1 "^version:" user/plugins/$p/blueprints.yaml; done' ``` -Expected (at least): `admin2: 2.0.9`, `api: 1.0.6`, `flex-objects: 1.4.3`, `login: 3.8.11`, `form: 9.1.8` — equal or higher. +Expected (at least): `admin2: version: 2.0.9`, `api: version: 1.0.6`, `flex-objects: version: 1.4.3`, `login: version: 3.8.11`, `form: version: 9.1.8` — equal or higher. - [ ] **Step 9: Run the automated smoke suite** @@ -515,6 +515,8 @@ git commit -m "docs: record Grav 2.0.4 upgrade; GPM-managed plugins; prod runboo If any phase fails and cannot be fixed forward: 1. `git revert` the relevant commits on `grav-2.0.4-upgrade` (root repo) and the `user` repo `system.yaml` commit. 2. Local: `make build && make start && make install-plugins`. -3. Test server: revert is delivered via `make content-push` + `make remote-fetch-content-test`; if core was already self-upgraded, reinstall the rc.10 core via the fresh-install path or `bin/gpm self-upgrade` cannot downgrade — treat a completed core upgrade as forward-only and fix forward instead. +3. Test server: config, content, and plugin reverts are delivered via `make content-push` + `make remote-fetch-content-test`. **The core is the exception — once `bin/gpm self-upgrade` has completed it cannot downgrade, so treat a completed core upgrade as forward-only and fix forward; there is no revert for it.** -Content, config, and accounts are in git, so no data restore is required. +> ⚠️ Do **not** run the fresh-install path (`scripts/server-install.sh`) against a live server as a rollback. It does `rm -rf user; git clone`, which destroys the server-only, gitignored `user/config/plugins/git-sync.yaml` (the encrypted git-sync token a clone never restores). The fresh-install path is for empty/new servers only. + +Content, config, and accounts are in git, so no data restore is required — but note the core caveat above: "rollback = git" covers config/content/plugins, **not** a completed server core self-upgrade.