fix(forge): pr status doesn't tell a work-in-progress PR to rebase #132
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
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!132
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Longshot:fix/status-wip-mergeable"
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
forge.py pr statustold every work-in-progress PR "Mergeable: no (rebase onto main)", because Forgejo answersmergeable: falsefor any WIP PR, whatever its base. That sent people and agents rebasing PRs that were already on main's head (#121 was one).What changed
mergeable_note()inscripts/forge.py, used bycmd_pr_status(). A ready PR keeps "yes" or "no (rebase onto main)". A WIP PR now gets "not while it is work in progress (Forgejo merges no WIP PR)", plus whether its merge base is main's head (fromGET /branches/main): "no rebase needed", "main has moved past its base: rebase if it conflicts", or, when either can't be read, "whether it needs a rebase shows once it is ready".tests/test_forge_pr.py's stand-in Forgejo answers/branches/main; a newtest_status_mergeable_of_a_wip_prcovers the four cases.Flags and settings
None.
Measurements
main:
341d63a4(2026-11-13)this PR: fix/status-wip-mergeable @
9d0d744fHardware: Linux (CachyOS), Python 3; no GPU involved
Scene: none: a command-line tool, nothing in the game
Method:
tests/test_forge_pr.pyoffline;pr statusagainst the live forge on #107 (WIP) and #108 (ready);python -I -B tests/run_all.pyHow to reproduce:
python -I scripts/forge.py pr status 107341d63a49d0d744fpr status 107(WIP, main past its base)pr status 108(ready, mergeable)tests/test_forge_pr.pyTesting
Tested:
tests/test_forge_pr.pyon Linux: 25 of 25 pass.pr statuson the live forge: #107 (WIP) and #108 (ready), as in the table.python -I -B tests/run_all.pyon Linux: 460 passed, 7 failed, 69 skipped. The 7 fail onmainon this PC too (its environment):test_bake_portability,test_builder_log_read_only,test_program_cache_cleanup,test_control,test_longshot_ctl,test_program_cache_one_variant,test_vram_budget_row.Not tested:
Needs other testers:
None
Screenshots
Nothing on screen.
Risk and rollback
Only the Mergeable line of
pr statuschanges, and it costs one more API call for a WIP PR. Reverting the commit restores it.Issues
See #121
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.tests/that reads changed source updated in this PR, not weakened.🤖 Generated with Claude Code