feat(nightly): enable Velopack deltas on win/mac nightlies - #125
Closed
mhglover wants to merge 1 commit into
Closed
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Testers on the Nightly channel currently re-download a full ~1.5 GB nupkg every night to update, even for a one-line change, because the publish job deletes + recreates the rolling `nightly` release each run — wiping the prior full that vpk needs as a delta base. Add a build-job step (win + mac) that runs before `vpk pack`: - `vpk download github --channel <rid>-nightly -o release/velopack` pulls the current rolling feed (last night's full) so vpk emits a *-delta.nupkg. Build finishes before publish's delete+recreate, so the prior full is still downloadable at pack time. First run / empty feed degrades to a full pack. - Prune to keep ONLY the single newest prior full as the base. vpk pack has no prune, and --keepMaxReleases is s3/az/local-only (not pack, not upload github), so without this the rolling release would accumulate full nupkgs forever. After pack the release holds the two most recent fulls + the latest delta — bounded and manifest-consistent. Keeps the intentional single-rolling-release design from #80 (the JS SDK AutoSource reads only non-prerelease releases); deltas live inside it rather than switching to per-version `vpk upload github`. Publish job unchanged — its velopack/** glob already sweeps the new delta. Result: win/mac Nightly update drops ~1.5 GB -> ~10-50 MB most nights; laggards fall back to full via the client's MaximumDeltasBeforeFallback. Retention and the three per-platform downloads (portable zip + installer + nupkg) are deliberately unchanged. Linux stays on its home-grown updater (Velopack SDK's linux .node needs glibc 2.39; CI runs ubuntu-22.04 = 2.35) — a separate follow-up. Verification is CI-only and needs two consecutive nightly runs: run A packs a full (no base); run B should publish both *-full.nupkg and *-delta.nupkg for win + mac, and an installed tester should pull the delta. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Matthew Harris Glover <matthew@harrisglover.com>
mhglover
force-pushed
the
feat/nightly-velopack-deltas
branch
from
July 22, 2026 21:47
86a0aaf to
ed3244b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Enables Velopack delta updates on the win/mac Nightly channel, so testers download ~10–50 MB instead of a full ~1.5 GB nupkg every night. CI-only change to
.github/workflows/nightly.yml. Part of the nightly-slimming effort (got-feedBack/feedBack#122), targeting recurring update bandwidth.Problem: the publish job deletes + recreates the rolling
nightlyrelease each run, wiping the prior full nupkg thatvpkneeds as a delta base — so Velopack can never emit deltas.Change (win + mac): a build-job step before each
vpk pack:vpk download github --channel <rid>-nightly -o release/velopackpulls the current rolling feed (last night's full) sovpk packdiffs against it and emits a*-delta.nupkg.buildfinishes beforepublishrecreates the release, so the prior full is still downloadable at pack time. First run / empty feed degrades to a full-only pack.vpk packhas no prune, and--keepMaxReleasesiss3/az/local-only (notpack, notupload github), so without this the rolling release would accumulate full nupkgs forever. After pack the release holds exactly the two most recent fulls + the latest delta — bounded and manifest-consistent.permissions: contents: readadded to the build job for the feed read. Publish job otherwise unchanged — itsvelopack/**glob already sweeps the new delta.Design: keeps the intentional single rolling-release from #80 (the JS SDK's GitHub AutoSource reads only non-prerelease releases); deltas live inside it rather than switching to per-version
vpk upload github. Retention and the three per-platform downloads (portable zip + installer + nupkg) are deliberately unchanged. Linux stays on its home-grown updater — the Velopack SDK's Linux.noderequiresGLIBC_2.39(verified on pinned0.0.1589and latest1.2.110), which would regress Ubuntu 22.04 / Debian 12 / older SteamOS; separate/shelved.Result: win/mac Nightly update ~1.5 GB → ~10–50 MB most nights; laggards fall back to full via the client's
MaximumDeltasBeforeFallback.feedpak surface
Checklist
CHANGELOG.md[Unreleased]updated — N/A: feedBack-desktop has noCHANGELOG.md.nightly.yml), no unit-test harness. Validated by two consecutive nightly runs (full base → full+delta); prune logic self-checked locally.git commit -s)Verification (CI-only — why this is a draft)
Needs two consecutive nightly runs:
*-full.nupkgand*-delta.nupkgfor win + mac.The one genuine unknown is whether the hand-rolled
gh releasefeed round-trips cleanly throughvpk download— only a live run confirms it. Holding as draft until validated.🤖 Generated with Claude Code