feat(build): Translate shows its progress as each of the lift's steps ends #359
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!359
Loading…
Reference in a new issue
No description provided.
Delete branch "madebyjordan/Longshot:feat/lift-progress"
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
During a first build the progress bar sat at the start of Translate for its whole 3-4 minutes and then jumped to the end, so the build looked stuck. Now it moves as each of the lift's steps ends.
What changed
lift_progress()innx2/make_game.pyis the lift'son_line. It says@@progressas each lift step ends, from the linesPhaseClockalready reads: a step'slift: <step> in <s>sline, or the discovery's.lift_weights()weights each step by what it took in this PC's last whole lift (thephasesinbuild_times.json). Without a record, or one missing a step, it usesLIFT_STEPS: the seven steps' seconds on a Ryzen 5 5600 under Windows (discovery 47, coverage 25, emit and write 100, big chunks split 18, patches 10, output size 38, runtime tables 12).main()passeslift_progress(work)to the lift'srun().tests/test_build_times.pychecks that each step moves the bar to its end, that other lines and repeats say nothing, and both weightings: the last lift's, and a record missing a step.tests/test_lift_cleanup_error.py's stand-ins forrun()take theon_line.Flags and settings
None.
Measurements
A change to what the build prints; the game doesn't run it. So it's measured by its game-free checks, and by the progress it gives for a real lift.
main:
cf605c85(2026-11-14)this PR: feat/lift-progress @
6b2c63aaHardware: Ryzen 5 5600, 16 GB, Windows 11
Method:
make_game.pyruns it) was fed throughlift_progresswithLIFT_STEPS's weights. The table gives the fraction it reports at each step's end, and when that step ended.python -I -B tests/run_all.py --jobs 4on main and on this PR merged with the other four build PRs of this batch.cf605c856b2c63aacf605c856b2c63aatests/run_all.py --jobs 4Testing
Tested:
tests/test_build_times.pyandtests/test_lift_cleanup_error.py.LIFT_STEPSmatches against the ones the lift prints on current main:coverageand the runtime tables innx2/lift.py;emit and write,big chunks split,patchesandoutput size and page-mark groupsinnx2/chunks.py; and the discovery line.Not tested:
@@progresslines it already shows for other steps.Needs other testers: None.
Screenshots
No screenshot: the bar is the launchers' existing one, which already shows
@@progressfor the other steps. What changes is the values it gets during Translate, in the table under Measurements, from a real lift.Risk and rollback
If the lift's step names change, the bar falls back to holding still during Translate, as on main; nothing fails. Reverting the commit removes the progress.
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.WIP: feat(build): Translate shows its progress as each of the lift's steps endsto feat(build): Translate shows its progress as each of the lift's steps endsView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.