feat(forge): Flags and settings is a note, never a gate; If applicable keeps only the boxes that apply; the PR template linked up front #76
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/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!76
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Longshot:pr-flags-note"
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 Flags and settings section is a note for reviewers and testers about what a PR adds and what its author recommends, not a reason to hold a PR back; the check failed PRs on it. And the PR template, which every PR uses, was linked only deep inside CONTRIBUTING's steps. And a PR's If applicable list was kept whole, full of unticked or "n/a" boxes that don't apply, which hid the ones that do. This follows up #72, which merged before these changes.
What changed
scripts/check_pr_description.pynever fails on Flags and settings. Everything it says about it is a warning (flags_notes,review()): a missing, empty or still-template section, a row missing a cell, anRX_*/HOS_*/LONGSHOT_*name the diff adds that the note doesn't list, avk_menu.cppchange while it says None. Flags leftREQUIRED. The same goes forpr readyand the workflow, which run the same check;pr statusprints them asnote:lines.docs/forge.md'spr readysays Flags only warns.suggested_boxes,HINTS:gpu/vk/vk_api.h, a shader, a new switch, host code, a source file tests read, the docs). For everyone stays whole.pr createkeeps only the suggested boxes (none: the heading and a comment pointing at the template,keep_applicable);pr statusshows "If applicable: N kept, N ticked" and the hints. The template keeps the full list as the menu, with the comment "Keep only the boxes that apply to this PR, and tick them; delete the rest. Keep the whole For everyone list."; the workflow's checkout addstests/for the hint. CONTRIBUTING, AGENTS.md anddocs/forge.mdsay so.tests/test_check_pr_description.py(If applicable trimmed, unticked, n/a and the hints; Flags as warnings, never failures; the new columns),tests/test_forge_pr.py(pr readygoes ahead with a Flags warning,pr statusshows it as a note;pr createkeeps the suggested boxes),tests/pr_description/good.mdwith the new table and only the boxes that apply to it.Flags and settings
None
Measurements
main:
77f605a2(2026-11-13)this PR: pr-flags-note @
3232d7f4Hardware: Ryzen desktop, CachyOS (Linux 7.3), Python 3.13
Scene: no game run: the game-free checks only
Method:
LONGSHOT_VULKAN_HEADERS=/usr/include python -I -B tests/run_all.py, the whole run, two interleaved runs each (main, this PR, main, this PR); the two description tests by themselves on each sideHow to reproduce:
jj new main@forgeor this branch, then the command above;python -I -B tests/test_check_pr_description.py;python -I -B tests/test_forge_pr.py77f605a23232d7f4The two failures are the known ones here, on main as well (
test_bake_portability: no zstandard;test_builder_log_read_only: no libtk).Testing
Tested: on the Linux PC above: the whole game-free suite, twice on each side, and the two description tests; on git.magicbean.dev, this PR itself: opened with
forge.py pr create, filled in withpr update, thenpr readyandpr status.Not tested: Windows: no Windows PC here; the change is text handling in standard-library Python, with no path or OS code touched. The
PR descriptionworkflow on a runner (#13 moved the workflows, but none has run this one yet).Needs other testers: None: nothing here depends on the hardware or the OS.
Screenshots
Nothing on screen.
Risk and rollback
A PR that adds a switch without noting it now goes ready with a warning instead of being refused, so reviewers rely on the note and the warning. A box kept but unticked now fails where it used to pass, so a PR copied from the old template must delete the boxes that don't apply. Reverting the commits brings back the Flags gate, the old columns and the whole If applicable list.
Reviewer notes
Start with the Flags and checklist parts of
review()andsuggested_boxesinscripts/check_pr_description.py. Descriptions written with the old Flags columns still pass; their rows are read by the header they have.Issues
See #72
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
tests/that reads changed source updated in this PR, not weakened.Filled in the description. The Flags and settings section is now a note with a recommendation, never a gate (the check, pr ready and the workflow only warn; pr status shows notes), the table is leaner with a Recommendation column, and CONTRIBUTING and AGENTS.md link the PR template up front. Tests on main @
ef8b784fand this PR @ f5b8a316, two interleaved runs each: 491 passed and the same 2 known failures on both. This follows up #72, which merged before these changes.WIP: feat(forge): Flags and settings is a note with a recommendation, never a gate; the PR template linked up frontto feat(forge): Flags and settings is a note with a recommendation, never a gate; the PR template linked up frontf5b8a3167fto3232d7f494Pushed
3232d7f4, rebased onto main @77f605a2(#13): If applicable now keeps only the boxes that apply, each ticked. The check fails a box kept but unticked, warns on n/a (delete it instead) and hints at a box the diff suggests but that isn't there (vk_api.h, a shader, a new switch, host code, a source file tests read, the docs); For everyone stays whole. pr create keeps only the suggested boxes, and pr status shows 'N kept, N ticked' with the hints. The description follows the new rule (two boxes kept), with the tests measured again: main @77f605a2and this PR @3232d7f4, two interleaved runs each, 490 passed and the same 2 known failures on both.feat(forge): Flags and settings is a note with a recommendation, never a gate; the PR template linked up frontto feat(forge): Flags and settings is a note, never a gate; If applicable keeps only the boxes that apply; the PR template linked up front