fix(menu): the version shows as players know it: v3.0.0-rc.1, Nightly 46 · 434712bb #170

Merged
HumanBean merged 1 commit from HumanBean/Longshot:fix/version-text into main 2026-11-13 09:14:00 +00:00
Owner

Why

The start-up screen and the F1 menu show Longshot's versions wrong: a release candidate as "v3.0.0 dev" (version_text took -rc.1 for git describe's commits since the tag) and a nightly as its raw name "nightly-46-434712bb (source …)", which looks like an unofficial build.

What changed

  • gpu/vk/vk_progress.h version_text: a release as its tag (v3.0.0, v3.0.0-rc.1); a nightly as the launcher names it, "Nightly 46 · 434712bb"; a build between tags (v3.0.0-rc.1-5-gabc1234-dirty) as its tag and "dev"; anything else as it is. The source fingerprint is dropped.
  • gpu/vk/vk_menu.cpp: the F1 banner shows "Longshot " + version_text, as the start-up screen does; it no longer needs to cut the fingerprint to fit. The log's first line, the bug report and the pipeline share keep the whole name (LONGSHOT_VERSION), so reports still name the exact build.
  • tests/test_startup_progress.py: each form above; tests/test_menu_size.py: the banner uses version_text.

Flags and settings

None

Measurements

main: b78b5df4 (2026-11-13)
this PR: fix/version-text @ 5e7bba6c

build's name main @ b78b5df4 this PR @ 5e7bba6c
v3.0.0-rc.1 (source …) start-up "v3.0.0 dev", F1 "Longshot v3.0.0-rc.1 (source …)" "v3.0.0-rc.1" on both
nightly-46-434712bb (source …) "nightly-46-434712bb", F1 with the source "Nightly 46 · 434712bb" on both
v3.0.0-rc.1-5-gabc1234-dirty "v3.0.0 dev" "v3.0.0-rc.1 dev"
v3.0.0 "v3.0.0" "v3.0.0"

tests/run_all.py: 500 passed, 2 failed (test_bake_portability, test_builder_log_read_only, which also fail on main).

Testing

Tested: tests/test_startup_progress.py (version_text, compiled), tests/test_menu_size.py, tests/test_pipeline_share.py, tests/run_all.py.

Not tested: in the game (the menu's font already draws "·", vk_menu.cpp's teleport line uses it).

Needs other testers: None

Screenshots

Not taken: text only, the rows above say what shows.

Risk and rollback

Display only; the log and reports keep the whole name. Reverting the commit is enough.

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
## Why The start-up screen and the F1 menu show Longshot's versions wrong: a release candidate as "v3.0.0 dev" (`version_text` took `-rc.1` for git describe's commits since the tag) and a nightly as its raw name "nightly-46-434712bb (source …)", which looks like an unofficial build. ## What changed - `gpu/vk/vk_progress.h` `version_text`: a release as its tag (`v3.0.0`, `v3.0.0-rc.1`); a nightly as the launcher names it, "Nightly 46 · 434712bb"; a build between tags (`v3.0.0-rc.1-5-gabc1234-dirty`) as its tag and "dev"; anything else as it is. The source fingerprint is dropped. - `gpu/vk/vk_menu.cpp`: the F1 banner shows "Longshot " + `version_text`, as the start-up screen does; it no longer needs to cut the fingerprint to fit. The log's first line, the bug report and the pipeline share keep the whole name (`LONGSHOT_VERSION`), so reports still name the exact build. - `tests/test_startup_progress.py`: each form above; `tests/test_menu_size.py`: the banner uses `version_text`. ## Flags and settings None ## Measurements main: b78b5df4 (2026-11-13) this PR: fix/version-text @ 5e7bba6c | build's name | main @ b78b5df4 | this PR @ 5e7bba6c | |---|---|---| | `v3.0.0-rc.1 (source …)` | start-up "v3.0.0 dev", F1 "Longshot v3.0.0-rc.1 (source …)" | "v3.0.0-rc.1" on both | | `nightly-46-434712bb (source …)` | "nightly-46-434712bb", F1 with the source | "Nightly 46 · 434712bb" on both | | `v3.0.0-rc.1-5-gabc1234-dirty` | "v3.0.0 dev" | "v3.0.0-rc.1 dev" | | `v3.0.0` | "v3.0.0" | "v3.0.0" | `tests/run_all.py`: 500 passed, 2 failed (test_bake_portability, test_builder_log_read_only, which also fail on main). ## Testing **Tested:** `tests/test_startup_progress.py` (version_text, compiled), `tests/test_menu_size.py`, `tests/test_pipeline_share.py`, `tests/run_all.py`. **Not tested:** in the game (the menu's font already draws "·", vk_menu.cpp's teleport line uses it). **Needs other testers:** None ## Screenshots Not taken: text only, the rows above say what shows. ## Risk and rollback Display only; the log and reports keep the whole name. Reverting the commit is enough. ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
fix(menu): the version shows as players know it: v3.0.0-rc.1, Nightly 46 · 434712bb
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 3s
CI / Conventional Commit title (pull_request) Successful in 3s
CI / Workflow lint (actionlint) (pull_request) Successful in 4s
Third-party parts / As their notes say (pull_request) Successful in 5s
5e7bba6c3e
HumanBean deleted branch fix/version-text 2026-11-13 09:14:00 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!170
No description provided.