install.sh: rc-scheme releases (vX.Y.Z-rc.N) rejected by pin validator; unpinned resolution sorts rc.1 as 0.1.0 #15
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Observed during the v4.1.12-rc.1 install (2026-09-08): install.sh cannot install rc-scheme releases.
Pinned form: the pin validator accepts only
^vX.Y.Z(-rcN)?$— no dot-suffix on the rc segment — sov4.1.12-rc.1is rejected.Unpinned form: the "latest" resolution splits the tag on
-via awk$NF, sodito-v4.1.12-rc.1sorts as version0.1.0and an unpinned install would silently pick v4.1.11.dito's own
self-update(realsemver::Version::parse, no pre-release exclusion) worked and is the sanctioned path for rc installs.Ask: semver-aware resolution in the unpinned path + the pinned-form validator accepting
-rc.N.Fixed on main (
75762ec, merged from fix/15-16-rc-installs): resolve_latest_tag ranks (major, minor, patch, is-stable, rc-number) with zero-padded numeric compare — rc.11 > rc.9 > rc.1, stable beats its own rcs, a newer-patch rc outranks an older stable (the exact silent-pick bug). 30 parsing assertions + 3 E2E runs against a stubbed forge prove the downloader requests releases/download/dito-v4.1.12-rc.11/... exactly; stable-only sets resolve byte-identically. NOTE: unpinned now installs the newest rc when it outranks every stable (semver-correct); if unpinned should hard-prefer stables, the is-stable key moves ahead of patch — one line, flagged for the Operator.