RFC:Add minimum-release-age for Vite+ version selection
@naokihaba is already working on this.
Since Sep 14, 2026.
Assessment
This issue has not been assessed yet.
Description
Context
Setting version to latest lets you pick up new Vite+ releases without manually bumping versions. It's also what setup-vp falls back to when it can't resolve a version from the project.
Current version resolution process
The downside is that CI can pick up releases immediately after publication. To mitigate supply chain risks, it'd be useful to have a waiting period before adopting brand-new versions. Pinning versions works, of course, but a delay lets people keep auto-updating while allowing time for problems or compromised releases to be discovered. This doesn't guarantee security. mise-action already supports something similar with its minimum_release_age option.
This applies only to the Vite+ CLI itself, not project dependencies.
Proposal
Add an optional minimum-release-age input.
- uses: voidzero-dev/setup-vp@v1
with:
version: latest
minimum-release-age: 3
The input would take a non-negative integer representing days (24-hour periods). Setting it to 3 means a release must be at least 72 hours old.
Expected behavior:
- When resolving
latest(or falling back to it), pick the highest stable version that meets the age requirement. - Leave pinned versions and versions resolved from lockfiles unchanged.
- Omitting the input or setting it to
0keeps the current behavior. - Reject invalid values, such as negative numbers or non-integers, with a clear error.
- When an age requirement is enabled, fail with a clear error if no release qualifies or publication metadata cannot be retrieved, rather than silently bypassing the requirement.
- Log the chosen version along with its publication timestamp.
One tradeoff is that CI may select an older version than a local environment using the current latest. Explicitly setting version: latest also takes precedence over project version detection. Users who need matching versions should pin Vite+ in their project and let setup-vp resolve that version.
I think scoping this to latest makes sense for now. Ranges and prerelease tags can be considered separately. Ideally, the selection logic would be shared across the GitHub, GitLab, and Azure entry points.
This might be more defensive than necessary for setup-vp, so I'd appreciate your candid thoughts on whether it belongs here.
- Dominant language
- TypeScript
- Stars
- 110
- Forks
- 22
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 31
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/setup-vp
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
voidzero-dev/setup-vp#164 · 1 comment ·
-
voidzero-dev/setup-vp#161 · 1 assignee ·
-
voidzero-dev/setup-vp#81 · 5 comments · 3 reactions · 1 assignee ·
-
enhancement
voidzero-dev/setup-vp#73 · 1 reaction · 1 assignee ·
-
voidzero-dev/setup-vp#32 · 1 assignee ·
All issues in voidzero-dev/setup-vp
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
fil-donadoni/tolaria#4409 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
corsairdev/corsair#1764 ·