fix(website): the settings page takes the menu's text row, so the site builds again #533
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/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/macos
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!533
Loading…
Reference in a new issue
No description provided.
Delete branch "jarynclouatre/Longshot:fix/website-text-row"
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
The website stopped building on main.
npm run buildexits 1 withREADME/menu graphics coverage mismatch at Custom output size, andnode --test tests/*.test.tsinwebsite/gives 64 of 72. The hourly website job (.forgejo/workflows/website.yml) runs the build andnpm run checkbefore it deploys, so the site no longer updates. It stopped before #51: since #136 (the Mono choice) one website test has failed, andnpm run checkruns the website tests beforewrangler deployin that job.readGraphicsSettings(website/src/repo-docs/graphics-settings.ts) takes every Graphics row that is not a heading only when its value starts with&opts.. The Custom output size row from #51 is a text field: its value isnullptrand the field lives infield_rows[](gpu/vk/vk_menu.cpp), so the reader threw at it.What changed
website/src/repo-docs/graphics-settings.ts):readMenuRowsreads the names in the menu'sfield_rows[]and marks those valueless rows as fields. A field row is listed like the others, with README's choices and default in order. Its restart comes from its help's "Applies after a restart": the menu keeps the restart on the row the field sets (Output resolution), not on the field's own row. Any other valueless row that is not a heading still stops the build.website/tests/graphics-settings.test.ts): a new case reads a menu table with a text row named infield_rows[](listed, restart from its help) and a valueless row that is not one (still refused), and checks that the real Custom output size takes README's choices and default. Two existing checks that the throw hid were out of date: the list of restart rows lacked Skip title screen (#399) and now Custom output size, and the Audio output restart drift case still replaced README's line from before Mono (#136), so it no longer changed anything and itsassert.throwsfailed. That last one is the check that already failed before #51.Flags and settings
None.
Measurements
main:
543846eb(2026-11-14)this PR: fix/website-text-row @
6102ddc3Hardware: none used (a Linux x86-64 PC, Node 24.22, Python 3.14, gcc 15.2)
Scene: none, the game was not run
Method: in
website/afternpm ci:node --test tests/*.test.ts,npm run build,node scripts/check-site.ts; thenpython3 -I -B tests/run_all.py, two runs each, interleaved (main, PR, main, PR). The new website case also ran against main'sgraphics-settings.ts.How to reproduce: the commands above in a checkout of each commit
543846eb6102ddc3npm run buildcoverage mismatch at Custom output sizenode scripts/check-site.tstests/run_all.py(run 1, run 2)test_bake_portability.py,test_walk_key.pytest_bake_portability.pyfails here for a missing Python module (zstandard).test_walk_key.py's fixture doesn't link on main (undefined reference to hos_oot_autoload_input).Testing
Tested: the website's tests, build and site check, and the game-free suite, on a Linux PC, as in Measurements.
Not tested: the deploy itself (it needs the Cloudflare token). The built settings page was not looked at in a browser.
Needs other testers: None.
Screenshots
Nothing on screen.
Risk and rollback
A new text field row in
field_rows[]is published from README's line like any other setting; one README does not list still stops the build. Reverting the commit brings the build failure back. #236 (README split) rewords comments and error texts in the same file; whichever lands second needs a small rebase.Issues
None filed. Found running the website's tests on main.
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: fix(website): the settings page takes the menu's text row, so the site builds againto fix(website): the settings page takes the menu's text row, so the site builds againView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.