From 62c88d4895d9ad8ff36cd585afaff397f1ef4c81 Mon Sep 17 00:00:00 2001 From: Matt Sijbers Date: Sat, 9 May 2026 22:32:01 +0100 Subject: [PATCH] fix(deploy): publish manifest.json on Pack-only deploys Stage 5 of Deploy-Brass.ps1 was gated only on \$shouldRunLauncher, so a "-Stage Pack" run regenerated the manifest locally + mirrored pack/overrides/ to the share, but never copied the new manifest.json itself. Result: tweak jars/configs landed on the share, but clients fetching the (still-old) manifest never knew about the new SHA-1s and skipped the re-sync. Caught when fixing the brassandsigil_tweaks jar: the public manifest stayed at 0.9.2 even though local was 0.9.3. Split into two stages -- launcher exe stays gated on \$shouldRunLauncher, manifest.json now publishes whenever \$shouldRunPack (so any Pack, All, or Launcher deploy includes it). --- scripts/Deploy-Brass.ps1 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scripts/Deploy-Brass.ps1 b/scripts/Deploy-Brass.ps1 index b3508ea..640b9b8 100644 --- a/scripts/Deploy-Brass.ps1 +++ b/scripts/Deploy-Brass.ps1 @@ -198,11 +198,20 @@ if ($shouldRunPack -and (Test-Path $overridesLocal)) { } } -# ─── Stage 5: deploy launcher exe + manifest to share ────────────────────── +# ─── Stage 5: publish launcher exe (only when Stage includes Launcher) ───── if ($shouldRunLauncher) { - Step "Copy launcher.exe + manifest to $DeployShare" { + Step "Copy launcher.exe -> $DeployShare" { Copy-Item $launcherExe (Join-Path $DeployShare $LauncherDeployedAs) -Force - Copy-Item $manifestPath (Join-Path $DeployShare 'manifest.json') -Force + } +} + +# ─── Stage 6: publish manifest (any time pack content changed) ───────────── +# Manifest is a pack artifact, not a launcher artifact -- a Pack-only deploy +# (e.g. tweak jar or pack version bump) still needs the new manifest to land +# on the share so clients see the updated SHA-1 list and pack version. +if ($shouldRunPack) { + Step "Copy manifest.json -> $DeployShare" { + Copy-Item $manifestPath (Join-Path $DeployShare 'manifest.json') -Force } }