From 7ab4cf6203e63680e27027afc077cbc9c593abb9 Mon Sep 17 00:00:00 2001 From: Matt Hill <9935159+MattDHill@users.noreply.github.com> Date: Mon, 24 Aug 2026 10:18:00 -0600 Subject: [PATCH] fix: floor the version graph at 33.0.5:0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit canMigrateFrom was >=32.0.11:0 && <=34.0.4:5, which says an install on Nextcloud 32 can migrate into a package bundling Nextcloud 34. It cannot: Nextcloud upgrades one major at a time, and guardUpstreamUpgrade refuses the jump during init. The floor is the lowest declared version whose up is IMPOSSIBLE, so replacing the 32.0.11:0 anchor with one at 33.0.5:0 — the oldest published 33 revision — moves it. Executing the graph gives >=33.0.5:0 && <=34.0.4:5, and every 33 revision below 33.0.8:2, including the 33.0.8:0 a 0.3.5.x carry-over lands on, still takes the range vertex that runs clearTask and migrateFrom035x. With the registry publishing canMigrateFrom as sourceVersion (Start9Labs/start-technologies#3807, deployed), a 32.0.11:0 install is now offered a 33 release instead of this one. guardUpstreamUpgrade reads its data-version floor from priorVersions, which now starts at 33; for a Nextcloud 32 install that lookup finds nothing and the guard only throws, which is all an install outside the graph can reach. Co-Authored-By: Claude Opus 5.5 --- startos/versions/index.ts | 4 ++-- startos/versions/v32.0.11.0.ts | 10 ---------- startos/versions/v33.0.5.0.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 12 deletions(-) delete mode 100644 startos/versions/v32.0.11.0.ts create mode 100644 startos/versions/v33.0.5.0.ts diff --git a/startos/versions/index.ts b/startos/versions/index.ts index 11bf435..8dcc149 100644 --- a/startos/versions/index.ts +++ b/startos/versions/index.ts @@ -1,9 +1,9 @@ import { VersionGraph } from '@start9labs/start-sdk' import { current } from './current' -import { v_32_0_11_0 } from './v32.0.11.0' +import { v_33_0_5_0 } from './v33.0.5.0' import { v_33_0_8_2 } from './v33.0.8_2' -export const priorVersions = [v_32_0_11_0, v_33_0_8_2] +export const priorVersions = [v_33_0_5_0, v_33_0_8_2] export const versionGraph = VersionGraph.of({ current, diff --git a/startos/versions/v32.0.11.0.ts b/startos/versions/v32.0.11.0.ts deleted file mode 100644 index b7c0867..0000000 --- a/startos/versions/v32.0.11.0.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { VersionInfo, IMPOSSIBLE } from '@start9labs/start-sdk' - -export const v_32_0_11_0 = VersionInfo.of({ - version: '32.0.11:0', - releaseNotes: '', - migrations: { - up: IMPOSSIBLE, - down: IMPOSSIBLE, - }, -}) diff --git a/startos/versions/v33.0.5.0.ts b/startos/versions/v33.0.5.0.ts new file mode 100644 index 0000000..d4f418d --- /dev/null +++ b/startos/versions/v33.0.5.0.ts @@ -0,0 +1,11 @@ +import { VersionInfo, IMPOSSIBLE } from '@start9labs/start-sdk' + +// The graph's floor: Nextcloud upgrades one major at a time, so 32 must take a 33 release first. +export const v_33_0_5_0 = VersionInfo.of({ + version: '33.0.5:0', + releaseNotes: '', + migrations: { + up: IMPOSSIBLE, + down: IMPOSSIBLE, + }, +})