WIP: fix(version): preserve source identity for long release labels #829
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
beanstalk: approved @ 1697603
beanstalk: approved @ 2c5a62e
beanstalk: approved @ 4fd82b7
beanstalk: approved @ 64d6d09
beanstalk: approved @ 6f91fae
beanstalk: approved @ 70a78f9
beanstalk: approved @ 8015c9a
beanstalk: approved @ 8d361dc
beanstalk: approved @ 9d8356e
beanstalk: approved @ abf2227
beanstalk: approved @ d82f202
beanstalk: approved @ e5f1e40
beanstalk: approved @ ee8ab5f
ci: approved
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
regression
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
ci: approved
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!829
Loading…
Reference in a new issue
No description provided.
Delete branch "NitnekLeBorgne/Longshot-contributions:fix/version-source-suffix-20261115"
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?
Type: fix · Risk: low · Tested on: Linux, authored Python fixtures; GPU irrelevant · Needs: full required suite; Windows manual Python replay
WIP; private prepared commit
c597ff8de0a6bf13d0077e3c601dd4a0679bc520, based ona00c485c71f50d3e698985d91a3f72edfb1ea020. Observed mainaa95d35f3d021b27328b6d68109666a46c340aeeis not the base: matching relevant source blobs/modes does not constitute a rebase or refreshed-main qualification. Private only.Why
Long release labels can erase source identity, making different builds display the same version. The retained tracker search covered 193 open issues; no matching issue or closing claim.
How to reproduce
Seen on: Linux, authored source roots; GPU irrelevant.
Settings and switches: existing
LONGSHOT_VERSION, 80-character safe label.Steps: Replay the extended
nx2/test_version.pyagainst the pinned base and candidate.Expected: Both roots retain complete source suffixes within 80 characters.
Actual: The base truncates away the suffix.
What changed
Reserve the complete source suffix before shortening the sanitized release prefix. Short-label output, fingerprints and release selection are unchanged.
nx2/version.py,describe(): two production lines budget the prefix.nx2/test_version.py: authored assertion regressions for roots, boundaries, sanitization and safe C defines; not a unittest method count.Measurements
Verdict: Retained source-only regression proof passes on the candidate, not a performance benchmark or new execution.
Hardware: Author's Linux, Python standard library; GPU/driver irrelevant; CPU/RAM not recorded.
Scene: Authored roots and long labels, no game data.
Method: Original RED/GREEN and baseline/final script receipts; no timing or median.
How to reproduce:
python -I -B nx2/test_version.py, using the unchanged extended script on each source export.a00c485c71c597ff8de0Controlled fingerprints remain
b017c984/a05725bf. Original final output:Evidence:
roles/version-provenance-author/output/original RED, BASELINE, FINAL and witness receipts; tests were not rerun for this description.Flags and settings
Existing input only; no new switch or default change.
LONGSHOT_VERSIONTesting
Tested: Retained author Linux RED/GREEN, baseline/final scripts, two source witnesses; independently reviewed, not replayed here. Boundaries, sanitization, LF/CRLF, content identity and C defines are covered.
Not tested: Full required suite, newer-main context, Windows, built game or visual display. No GPU/game qualification claimed or required for this Python helper.
Must be tested:
python -I -B tests/run_all.py, expecting required checks to pass or failures/skips compared and named against main before merge.python -I -B nx2/test_version.pyfrom a UTF-8 path, expecting complete suffixes and safe defines.Risks
What could break: Very long labels show a shorter prefix; sanitization and the 80-character bound remain.
Turning it off: Revert the commit.
Compatibility: No save/options/cache/vk ABI changes. Only long-label text changes; no layout edit. Handwritten GPL-3.0-or-later code, no external or game-derived material.
Checklist
Everyone
type(scope): description) of the status line's type.main.python -I -B tests/run_all.pypasses (any failure that also fails onmainis named).third_party/untouched (a new folder with aPROVENANCE.mdinstead).When it applies
Assisted-by:/Co-Authored-By:trailers.mainand passing here.c597ff8de0ce4ec10146Rebased onto
main@bbe6fdf: no conflicts. No tests were run here; the test boxes stay yours.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.