feat(release): big launcher download links in the README and on every release page, through magicbean.dev's permanent links #148
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!148
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Longshot: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 download the wrong file: the README names a launcher file that doesn't exist (
…-windows-x64.exe), and Longshot's release pages list only the builder files, which players should never download. This puts big launcher download links on top of the README and of every release page, through permanent links that always point at the newest launcher.What changed
https://longshot.magicbean.dev/download/launcher/<os>(the best channel there is: stable, else rc, else nightly), each channel's links below it, and "Download the launcher, not the builder". The Windows step names the real files (…-windows-x64-setup.exe, and the portable zip); Latest development build links the nightly launcher; Download added to the top links; longshot.magicbean.dev/download added to "only download Longshot from".scripts/release.pypublishputs a header above git-cliff's notes (page_header,release_page). A launcher release starts with big links to its own three files. A Longshot release starts with "🎮 To play, get the Longshot Launcher": big links to the newest launcher of the same channel (rc →/download/launcher/rc, nightly → nightly, stable → stable), then "Don't download the files below". The format is the one hand-written on v1.0.0-rc.1 and 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: the headers; a new Download links section with the permanent links) andRELEASING.md(what CI writes, and checking the link after a release).scripts/release.py,tests/test_release.py,docs/releases.mdandRELEASING.mdstay byte-identical with LongshotLauncher's (its PR: MagicBeanDev/LongshotLauncher#15).The permanent links are served by longshot.magicbean.dev: the Longshot website (website/ in MagicBeanDev/Longshot)#7.
Flags and settings
None.
Measurements
No speed or picture change: the measurement is the game-free checks, main and this PR interleaved, two runs each.
main:
39647e1a(2026-11-13)this PR: download-links @
921b6d55Hardware: CachyOS (Linux 7.3), 24 threads
Scene: none (no game)
Method:
LONGSHOT_VULKAN_HEADERS=/usr/include python -I -B tests/run_all.py, run main, PR, main, PR;python -I tests/test_release.pyalone on eachHow to reproduce: the commands above in a checkout of each commit
39647e1a921b6d55Testing
Tested: the game-free checks above; the headers rendered by git.magicbean.dev's own Markdown renderer (
POST /api/v1/markdown, screenshots below); the README section rendered the same way; every magicbean.dev link the README and the headers use, against the Site PR underwrangler 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 links on the live longshot.magicbean.dev, which aren't deployed yet.Needs other testers: None
Screenshots
The README's Install and play (rendered by git.magicbean.dev):
Latest development build:
A Longshot release page as
release.pywrites it (v3.0.0-rc.1, sample notes):A launcher release page (a nightly, sample notes):
Risk and rollback
The longshot.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://longshot.magicbean.dev/download, then this. Until then the README's buttons and the next release pages would 404. A release's page is written once, at publish: a page written with a broken link stays so, but the links are permanent, so they work once the site is up. If longshot.magicbean.dev is down, the README still links the releases page. Reverting the commit restores the old README and plain notes.Reviewer notes
Start with
page_headerinscripts/release.pyand its tests. The launcher's own release links point at the release's files on git.magicbean.dev directly (that version, forever); only Longshot's pages and the READMEs use the moving magicbean.dev links. Left out on purpose: the builders' "get the launcher" links in code (builder/py/longshot_builder/__init__.py,Updater.cs,setup.c) still point at the launcher's releases page; they could move to magicbean.dev/download in a follow-up.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 launcher download links in the README and on every release page, through magicbean.dev's permanent linksto feat(release): big launcher download links in the README and on every release page, through magicbean.dev's permanent links