Skip to content

Treat pre-releases as final releases in feature gates - #4296

Merged
un-def merged 1 commit into
masterfrom
pr_parse_version_prereleases
Sep 16, 2026
Merged

un-def merged 1 commit into
masterfrom
pr_parse_version_prereleases

Conversation

@un-def

@un-def un-def commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

_parse_version returned None for any pre-release or dev build, which _check_min_version interprets as "latest", opening every feature gate. Since we publish rc builds (e.g. 0.21.4rc1), a shim or runner on an rc was assumed to support features it does not have. For example, a shim on 0.20.25rc1 passed the (0, 21, 3) gate for restart-safe RUNNING tasks, letting the server restart a shim with running jobs on it.

Ignore the pre-release, dev, post-release, and local segments instead, so 0.20.1rc1 is treated as 0.20.1. An rc is cut from the release branch, so it normally carries the features of the version it leads to. Bare run numbers of staging builds (e.g. 1234) still resolve to "latest".

`_parse_version` returned `None` for any pre-release or dev build, which
`_check_min_version` interprets as "latest", opening every feature gate.
Since we publish rc builds (e.g. `0.21.4rc1`), a shim or runner on an rc
was assumed to support features it does not have. For example, a shim on
`0.20.25rc1` passed the `(0, 21, 3)` gate for restart-safe RUNNING tasks,
letting the server restart a shim with running jobs on it.

Ignore the pre-release, dev, post-release, and local segments instead, so
`0.20.1rc1` is treated as `0.20.1`. An rc is cut from the release branch,
so it normally carries the features of the version it leads to. Bare run
numbers of staging builds (e.g. `1234`) still resolve to "latest".
@un-def
un-def merged commit 1462fa1 into master Sep 16, 2026
26 checks passed
@un-def
un-def deleted the pr_parse_version_prereleases branch September 16, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant