fix(ubi): show relevent error messages for v-prefixed tags#6183
fix(ubi): show relevent error messages for v-prefixed tags#6183
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR refactors error handling for UBI backend installation to provide more relevant error messages when dealing with v-prefixed tags. The change extracts common v-prefix handling logic into a reusable helper function and applies it consistently across backends.
- Extracts
try_with_v_prefixfunction from GitHub backend to shared static helpers - Replaces custom retry logic in UBI backend with the standardized helper function
- Ensures consistent error handling when attempting both v-prefixed and non-prefixed version tags
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/backend/ubi.rs | Simplifies installation logic by using shared v-prefix helper function |
| src/backend/static_helpers.rs | Adds extracted try_with_v_prefix helper function for consistent tag resolution |
| src/backend/github.rs | Removes duplicate try_with_v_prefix method and uses shared helper function |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| Err(errors | ||
| .pop() | ||
| .unwrap_or_else(|| eyre::eyre!("No matching release found for {version}"))) |
There was a problem hiding this comment.
The error message should use 'version' directly instead of string interpolation syntax since this is in a closure context where version is captured.
| Err(errors | |
| .pop() | |
| .unwrap_or_else(|| eyre::eyre!("No matching release found for {version}"))) | |
| .unwrap_or_else(|| eyre::eyre!(format!("No matching release found for {}", version)))) |
|
|
|
bugbot run |
| } | ||
| } | ||
| }) | ||
| .await?; |
There was a problem hiding this comment.
Bug: UBI Backend Ignores Custom Version Prefix
The UBI backend's install_version_ function now ignores custom version_prefix options, always defaulting to 'v' when retrying. The version retry logic, previously designed to attempt prefixed versions on any installation error (like rate limits or 404s), now only retries specifically on HTTP 404 errors, reducing resilience.
There was a problem hiding this comment.
I think this was as is, tag_regex seems not to be used to pick the version up.
### 🚀 Features - allow set/unset backend aliases by [@roele](https://github.com/roele) in [#6172](#6172) ### 🐛 Bug Fixes - **(aqua)** respect order of asset_strs by [@risu729](https://github.com/risu729) in [#6143](#6143) - **(java)** treat freebsd as linux (assuming linux compatability) by [@roele](https://github.com/roele) in [#6161](#6161) - **(nushell/windows)** Fix $env.PATH getting converted to a string by [@zackyancey](https://github.com/zackyancey) in [#6157](#6157) - **(sync)** create uv_versions_path dir if it doesn't exist by [@risu729](https://github.com/risu729) in [#6142](#6142) - **(ubi)** show relevent error messages for v-prefixed tags by [@risu729](https://github.com/risu729) in [#6183](#6183) - remove nodejs/golang alias migrate code by [@risu729](https://github.com/risu729) in [#6141](#6141) ### 📚 Documentation - **(task)** remove word "additional" to avoid confusions by [@risu729](https://github.com/risu729) in [#6159](#6159) ### Chore - update Cargo.lock by [@risu729](https://github.com/risu729) in [#6184](#6184) ### New Contributors - @zackyancey made their first contribution in [#6157](#6157)
## [2025.9.5](https://github.com/jdx/mise/compare/v2025.9.4..v2025.9.5) - 2025-09-06 ### 🚀 Features - **(task)** add timeout support for task execution by @jdx in [#6216](jdx/mise#6216) - **(task)** sub-tasks in run lists by @jdx in [#6212](jdx/mise#6212) ### Chore - fix npm publish action by @jdx in [14f4b09](jdx/mise@14f4b09) - fix cloudflare release action by @jdx in [00afa25](jdx/mise@00afa25) - fix git-cliff for release notes by @jdx in [15a9aed](jdx/mise@15a9aed) ## [2025.9.4](https://github.com/jdx/mise/compare/v2025.9.3..v2025.9.4) - 2025-09-06 ### Chore - fix git-cliff on release by @jdx in [3c388f2](jdx/mise@3c388f2) ## [2025.9.3](https://github.com/jdx/mise/compare/v2025.9.2..v2025.9.3) - 2025-09-06 ### 🚀 Features - **(backend)** improve http error when platform url missing; list available platforms by @jdx in [#6200](jdx/mise#6200) - **(cli)** support scoped packages for all backend types by @earlgray283 in [#6213](jdx/mise#6213) - **(http)** add URL replacement feature for HTTP requests by @ThomasSteinbach in [#6207](jdx/mise#6207) ### 🐛 Bug Fixes - **(backend)** preserve arch underscores in platform keys by @jdx in [#6202](jdx/mise#6202) - **(task)** resolve hanging issue with multiple depends_post by @jdx in [#6206](jdx/mise#6206) - couldn't download node binary in Alpine, even if it exists in the mirror url by @Hazer in [#5972](jdx/mise#5972) - **breaking** use config_root for env._.path by @jdx in [#6204](jdx/mise#6204) - bugfix for paths that include spaces by @karim-elkholy in [#6210](jdx/mise#6210) ### 📚 Documentation - improve release notes generation by @jdx in [#6197](jdx/mise#6197) - fix release changelog contributor reporting by @jdx in [#6201](jdx/mise#6201) ### Chore - use fine-grained gh token by @jdx in [#6208](jdx/mise#6208) - use settings.local.json for claude config by @jdx in [fd0fba9](jdx/mise@fd0fba9) ### New Contributors - @ThomasSteinbach made their first contribution in [#6207](jdx/mise#6207) - @earlgray283 made their first contribution in [#6213](jdx/mise#6213) - @karim-elkholy made their first contribution in [#6210](jdx/mise#6210) - @Hazer made their first contribution in [#5972](jdx/mise#5972) ## [2025.9.2](https://github.com/jdx/mise/compare/v2025.9.1..v2025.9.2) - 2025-09-05 ### 🐛 Bug Fixes - **(ci)** set required environment variables for npm publishing by @jdx in [#6189](jdx/mise#6189) - **(release)** clean up extra newlines in release notes formatting by @jdx in [#6190](jdx/mise#6190) - **(release)** add proper newline after New Contributors section in cliff template by @jdx in [#6194](jdx/mise#6194) - **(release)** fix changelog formatting to remove extra blank lines by @jdx in [#6195](jdx/mise#6195) - **(release)** restore proper newline after New Contributors section by @jdx in [#6196](jdx/mise#6196) ### 🚜 Refactor - **(ci)** split release workflow into separate specialized workflows by @jdx in [#6193](jdx/mise#6193) ### Chore - **(release)** require GitHub Actions environment for release-plz script by @jdx in [#6191](jdx/mise#6191) ## [2025.9.1](https://github.com/jdx/mise/compare/v2025.9.0..v2025.9.1) - 2025-09-05 ### 🐛 Bug Fixes - python nested venv path order by @elvismacak in [#6124](jdx/mise#6124) - resolve immutable release workflow and VERSION file timing issues by @jdx in [#6187](jdx/mise#6187) ### New Contributors - @elvismacak made their first contribution in [#6124](jdx/mise#6124) ## [2025.9.0](https://github.com/jdx/mise/compare/v2025.8.21..v2025.9.0) - 2025-09-05 ### 🚀 Features - allow set/unset backend aliases by @roele in [#6172](jdx/mise#6172) ### 🐛 Bug Fixes - **(aqua)** respect order of asset_strs by @risu729 in [#6143](jdx/mise#6143) - **(java)** treat freebsd as linux (assuming linux compatability) by @roele in [#6161](jdx/mise#6161) - **(nushell/windows)** Fix $env.PATH getting converted to a string by @zackyancey in [#6157](jdx/mise#6157) - **(sync)** create uv_versions_path dir if it doesn't exist by @risu729 in [#6142](jdx/mise#6142) - **(ubi)** show relevent error messages for v-prefixed tags by @risu729 in [#6183](jdx/mise#6183) - remove nodejs/golang alias migrate code by @risu729 in [#6141](jdx/mise#6141) - mise activate not working on powershell v5 by @L0RD-ZER0 in [#6168](jdx/mise#6168) ### 📚 Documentation - **(task)** remove word "additional" to avoid confusions by @risu729 in [#6159](jdx/mise#6159) ### Chore - update Cargo.lock by @risu729 in [#6184](jdx/mise#6184) ### New Contributors - @zackyancey made their first contribution in [#6157](jdx/mise#6157)
Moved
try_with_v_prefixfromgithub.rstostatic_helper.rsand used it fromubibackend too.