feat(release): big download links in the README and on every release page, through magicbean.dev's permanent links #15
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/ui
area/updates
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!15
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/LongshotLauncher:download-links"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Players should find one big "Download" for the launcher, the newest on their channel, instead of a list of files on the releases page; and a release page should start with its own download buttons. This adds both, through permanent links on longshot.magicbean.dev.
What changed
https://longshot.magicbean.dev/download/launcher/<os>(the best channel there is: stable, else rc, else nightly); each channel's links below; the file list as a list, not a table; and "the builder files on Longshot's releases are for the launcher, not for you".scripts/release.pypublishputs a header above git-cliff's notes (page_header,release_page). A launcher release starts with "⬇️ Download Longshot Launcher": big links to its own setup.exe and AppImage, the portable zip below, and a one-line how-to. A Longshot release starts with "🎮 To play, get the Longshot Launcher", linking the newest launcher of the same channel, and "Don't download the files below". The format is the one hand-written on v1.0.0-rc.1 and Longshot v3.0.0-rc.1.tests/test_release.py,ReleasePage: each header on each channel, for both products, andpublishwriting it.docs/releases.md(Release notes, and a new Download links section) andRELEASING.md.scripts/release.py,tests/test_release.py,docs/releases.mdandRELEASING.mdare byte-identical with Longshot's (its PR: MagicBeanDev/Longshot#148).The permanent links are served by longshot.magicbean.dev: the Longshot website (website/ in MagicBeanDev/Longshot)#7.
Flags and settings
None.
Measurements
No change to the launcher's code: the measurement is the checks, main and this PR interleaved.
main:
b6579c30(2026-11-13)this PR: download-links @
5c2b840cHardware: CachyOS (Linux 7.3), 24 threads, .NET SDK
Scene: none (no game)
Method:
python -I tests/test_release.pyandpython -I tests/test_launcher_core.py, run main, PR, main, PRHow to reproduce: the commands above in a checkout of each commit
b6579c305c2b840cTesting
Tested: the checks above; the README section and both headers rendered by git.magicbean.dev's Markdown renderer (screenshots below); every magicbean.dev link used, against the Site PR under
wrangler devwith the real release list (/download/launcher/{windows,windows-portable,linux}and/rc/*go to v1.0.0-rc.1's files,/nightly/*to the newest nightly's,/stable/*answers 404 "No stable launcher yet" with a button to the rc).Not tested: a real release run of
publish(the fake Forgejo in the release tests covers it; the next nightly will be the first page made this way); the live longshot.magicbean.dev links, not deployed yet.Needs other testers: None
Screenshots
The README's Download (rendered by git.magicbean.dev):
A launcher release page as
release.pywrites it (a nightly, sample notes):A Longshot release page (v3.0.0-rc.1, sample notes):
Risk and rollback
The README's magicbean.dev links don't work until the Site PR is merged (a merge to the Site's main deploys it). Merge the Longshot website (website/ in MagicBeanDev/Longshot)#7 first, check
https://magicbean.dev/download, then this. The launcher's own release pages link their files on git.magicbean.dev directly, so they work either way. Reverting the commit restores the old README and plain notes.Reviewer notes
Start with
page_headerinscripts/release.py. Merge together with the Longshot PR so the shared files stay identical.This repository has no
tests/run_all.py: the checklist's run_all box stands fortests/test_release.pyandtests/test_launcher_core.py, as in CI.Issues
None.
Checklist
For everyone
type(scope): description).main.python -I -B tests/run_all.pyrun and passing (any failure that also fails onmainis named above).third_party/untouched (a new folder with aPROVENANCE.mdinstead).If applicable
mainand passing here.tests/that reads changed source updated in this PR, not weakened.WIP: feat(release): big download links in the README and on every release page, through magicbean.dev's permanent linksto feat(release): big download links in the README and on every release page, through magicbean.dev's permanent links