feat(forge): a Testing section in the PR template, and the whole checklist in every PR #72
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
needs measurements
question
testing wanted
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!72
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Longshot:pr-testing-section"
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
A PR's "Not tested" line mixed up what was run, what wasn't and what someone else has to run, so testers couldn't see what was asked of them, and some PRs dropped the checklist altogether. This gives the template one Testing section in three parts, keeps the whole checklist in every PR, and has the check and
pr readyenforce both.What changed
.forgejo/pull_request_template.md's "Not tested" becomes Testing, in three labelled parts: Tested (what was run and checked, where and how, including what was checked but not measured), Not tested (what nobody has run yet, and why) and Needs other testers (one line each, with what to check, the result expected and its test request, or "request to open"; "None" when there is none). The checklist has a comment saying to keep it whole, and a new For everyone box: "Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests)".scripts/check_pr_description.pyrequires Testing and its three parts, filled in with no placeholder left (testing_parts,testing_problems); each Needs other testers line needs a test request (aT-XXXXid or a link) or "request to open". It fails a ready PR with no## Checklist, a missing or unticked For everyone box, or a deleted If applicable list. Warnings: Not tested or Needs other testers naming something the Measurements' Hardware line or table measured (measured), and a request still to open (requests_to_open).scripts/forge.py:pr readyrefuses while a test request is still "request to open";pr statusprints a Testing line (the parts, and how many testers' lines have a request or are still to open). In a second commit,pr create,forkandpr list --minetake the login from the server (me(),GET /user): the one saved at sign-in had gone stale after the account's rename, sopr createlooked for the fork under the old name.docs/workflow.md's test step,docs/forge.md'spr ready.tests/test_check_pr_description.py(Testing and Checklist cases),tests/test_forge_pr.py(pr readywaiting for the requests,pr status's Testing line, the server's login),tests/pr_description/good.mdwith a Testing section.Flags and settings
None
Measurements
main:
d725b363(2026-11-13)this PR: pr-testing-section @
2eff8fb1Hardware: 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.pyd725b3632eff8fb1The 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(WIP, from the template with the commits filled in, from HumanBean's fork after the rename), 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: Actions are off and no runner serves the repository yet.Needs other testers: None: nothing here depends on the hardware or the OS.
Screenshots
Nothing on screen.
Risk and rollback
Open PRs written against the previous template (with "Not tested") fail the check once they are marked ready, until their description gets the Testing section; WIP ones only get the notice. Reverting the commits brings back the previous template and check.
Reviewer notes
Start with
testing_problemsand the checklist part ofreview()inscripts/check_pr_description.py, thencomplete_or_refuseinscripts/forge.py. "request to open" passes the check itself, with a warning, andpr readyrefuses it, so a WIP PR can name a request it hasn't opened yet. The second commit (me()) is a small separate fix that opening this PR needed.Issues
See #48
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
Assisted-by:/Co-Authored-By:trailers. n/adocs/tested-configurations.mdfor each measured run. n/aMKWVK_API_VERSIONbumped (gpu/vk/vk_api.h'sMkwVkHostorMkwVkRendererchanged). n/amainand passing here.tests/that reads changed source updated in this PR, not weakened. n/aFilled in the description: the Testing section and the checklist rules, the second commit's fix for the stale login after the rename, and the test runs on main @
d725b363and this PR @2eff8fb1, two interleaved runs each (491 passed and the same 2 known failures on both; the description tests go from 14 to 18 and from 18 to 19).WIP: feat(forge): a Testing section in the PR template, and the whole checklist in every PRto feat(forge): a Testing section in the PR template, and the whole checklist in every PR