Skip to content

fix(backend): change dependency checks to warnings instead of errors#6363

Merged
jdx merged 2 commits intomainfrom
fix/windows-dependency-check-warnings
Sep 21, 2025
Merged

fix(backend): change dependency checks to warnings instead of errors#6363
jdx merged 2 commits intomainfrom
fix/windows-dependency-check-warnings

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Sep 21, 2025

Summary

This PR fixes Windows CI failures where dependency checks were failing due to platform-specific command resolution issues (e.g., npm.cmd vs npm).

Problem

The backends were preemptively checking for dependencies using which, which on Windows was failing to find commands that have platform-specific extensions (like npm.cmd). This was causing mise i to fail on Windows CI even when the dependencies were actually available.

Solution

Instead of preemptively failing when dependencies are not found, the backends now show warning messages but continue execution. This allows:

  • The actual commands to fail with their native error messages if dependencies are truly missing
  • Avoids false positives from path resolution issues on Windows
  • Better user experience with warnings instead of hard failures

Changes

  • Renamed ensure_dependency to warn_if_dependency_missing in Backend trait
  • Updated all backends (npm, cargo, go, gem, pipx, spm, dotnet) to use warnings instead of errors for missing deps
  • Updated e2e test to expect warnings instead of errors

Fixes

CI failure on Windows: https://github.com/jdx/mise/actions/runs/17896504421

🤖 Generated with Claude Code

This fixes Windows CI failures where dependency checks were failing due to
platform-specific command resolution issues (e.g., npm.cmd vs npm).

Instead of preemptively failing when dependencies are not found, the backends
now show warning messages but continue execution. This allows the actual
commands to fail with their native error messages if dependencies are truly
missing, while avoiding false positives from path resolution issues.

Changes:
- Renamed ensure_dependency to warn_if_dependency_missing in Backend trait
- Updated all backends to use warnings instead of errors for missing deps
- Updated e2e test to expect warnings instead of errors

Fixes CI failure on Windows: https://github.com/jdx/mise/actions/runs/17896504421

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 21, 2025 20:38
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes Windows CI failures by changing dependency checks from errors to warnings across all package manager backends. The issue was that Windows was failing to find commands with platform-specific extensions (like npm.cmd) using which, causing false positive failures.

Key changes:

  • Renamed ensure_dependency to warn_if_dependency_missing across all backends
  • Changed return type from Result<()> to unit type, removing error propagation
  • Updated error messages to use warnings instead of hard failures

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/backend/mod.rs Updated trait method from error-returning to warning-only
src/backend/npm.rs Changed npm dependency checks to warnings
src/backend/cargo.rs Changed cargo dependency checks to warnings
src/backend/go.rs Changed go dependency checks to warnings
src/backend/gem.rs Changed gem dependency checks to warnings
src/backend/pipx.rs Changed pipx dependency checks to warnings
src/backend/spm.rs Changed swift dependency checks to warnings
src/backend/dotnet.rs Changed dotnet dependency checks to warnings
e2e/backend/test_backend_missing_deps Updated test to expect warnings instead of errors

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@jdx jdx enabled auto-merge (squash) September 21, 2025 20:38
@jdx jdx disabled auto-merge September 21, 2025 20:49
@github-actions
Copy link

github-actions bot commented Sep 21, 2025

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.14 x -- echo 20.2 ± 0.4 19.4 23.1 1.00
mise x -- echo 20.6 ± 0.4 19.5 22.7 1.02 ± 0.03

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.14 env 20.0 ± 0.6 19.1 25.0 1.00
mise env 20.2 ± 0.4 19.0 22.1 1.01 ± 0.04

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.14 hook-env 19.6 ± 0.3 18.7 21.3 1.00
mise hook-env 19.7 ± 1.0 18.3 35.3 1.00 ± 0.05

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.14 ls 17.7 ± 0.9 16.9 33.2 1.00
mise ls 18.2 ± 0.6 16.8 21.0 1.03 ± 0.06

xtasks/test/perf

Command mise-2025.9.14 mise Variance
install (cached) 175ms ✅ 106ms +65%
ls (cached) 65ms 64ms +1%
bin-paths (cached) 71ms 71ms +0%
task-ls (cached) 485ms 478ms +1%

✅ Performance improvement: install cached is 65%

Use windows_executable_extensions setting to check for all configured
Windows executable extensions (exe, bat, cmd, com, ps1, vbs) when
looking for dependencies on Windows.

This ensures that commands like npm.cmd, npm.bat, etc. are properly
detected and don't trigger false warnings about missing dependencies.
@jdx jdx merged commit 3ca397f into main Sep 21, 2025
18 checks passed
@jdx jdx deleted the fix/windows-dependency-check-warnings branch September 21, 2025 21:08
@jdx jdx mentioned this pull request Sep 21, 2025
jdx added a commit that referenced this pull request Sep 21, 2025
### 📦 Registry

- add missing cargo backends by @jayvdb in
[#6307](#6307)

### 🚀 Features

- add env propagation by @Its-Just-Nans in
[#6342](#6342)

### 🐛 Bug Fixes

- **(aqua)** improve GitHub token handling for sigstore verification by
@jdx in [#6351](#6351)
- **(backend)** change dependency checks to warnings instead of errors
by @jdx in [#6363](#6363)
- **(npm)** improve error message when npm/bun is not installed by @jdx
in [#6359](#6359)
- **(vfox)** enable TLS support for reqwest to fix CI tests by @jdx in
[#6356](#6356)

### 🚜 Refactor

- **(registry)** convert to nested TOML sections format by @jdx in
[#6361](#6361)

### 🧪 Testing

- **(e2e)** resolve mise via PATH in backend missing deps test by @jdx
in [#6362](#6362)
- **(vfox)** replace flaky external HTTP tests with local mock server by
@jdx in [#6354](#6354)

### 📦️ Dependency Updates

- pin dependencies by @renovate[bot] in
[#6243](#6243)

### Chore

- **(install.sh)** add `MISE_INSTALL_MUSL` to force installing musl
variants on Linux by @malept in
[#6355](#6355)

Co-authored-by: mise-en-dev <release@mise.jdx.dev>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Sep 24, 2025
## [2025.9.16](https://github.com/jdx/mise/compare/v2025.9.15..v2025.9.16) - 2025-09-22

### 📦 Registry

- use npm backend for zbctl by @risu729 in [#6379](jdx/mise#6379)

### 🐛 Bug Fixes

- **(aqua)** remove blake3 support from aqua checksum algorithms by @risu729 in [#6370](jdx/mise#6370)
- **(aqua)** remove cosign and slsa-verifier dependencies by @risu729 in [#6371](jdx/mise#6371)
- **(aqua)** remove cosign.experimental by @risu729 in [#6376](jdx/mise#6376)

### 📚 Documentation

- minisign doesn't require cli by @risu729 in [#6369](jdx/mise#6369)

### Chore

- ignore renovate new bot name by @risu729 in [#6364](jdx/mise#6364)

## [2025.9.15](https://github.com/jdx/mise/compare/v2025.9.14..v2025.9.15) - 2025-09-21

### 📦 Registry

- add missing cargo backends by @jayvdb in [#6307](jdx/mise#6307)

### 🚀 Features

- add env propagation by @Its-Just-Nans in [#6342](jdx/mise#6342)

### 🐛 Bug Fixes

- **(aqua)** improve GitHub token handling for sigstore verification by @jdx in [#6351](jdx/mise#6351)
- **(backend)** change dependency checks to warnings instead of errors by @jdx in [#6363](jdx/mise#6363)
- **(npm)** improve error message when npm/bun is not installed by @jdx in [#6359](jdx/mise#6359)
- **(vfox)** enable TLS support for reqwest to fix CI tests by @jdx in [#6356](jdx/mise#6356)

### 🚜 Refactor

- **(registry)** convert to nested TOML sections format by @jdx in [#6361](jdx/mise#6361)

### 🧪 Testing

- **(e2e)** resolve mise via PATH in backend missing deps test by @jdx in [#6362](jdx/mise#6362)
- **(vfox)** replace flaky external HTTP tests with local mock server by @jdx in [#6354](jdx/mise#6354)

### 📦️ Dependency Updates

- pin dependencies by @renovate[bot] in [#6243](jdx/mise#6243)

### Chore

- **(install.sh)** add `MISE_INSTALL_MUSL` to force installing musl variants on Linux by @malept in [#6355](jdx/mise#6355)

## [2025.9.14](https://github.com/jdx/mise/compare/v2025.9.13..v2025.9.14) - 2025-09-20

### 🐛 Bug Fixes

- fix an issue where Swift could not be installed on arm64 Ubuntu by @lish82 in [#6348](jdx/mise#6348)

### Chore

- use cross to build on linux by @jdx in [#6346](jdx/mise#6346)

### New Contributors

- @lish82 made their first contribution in [#6348](jdx/mise#6348)

## [2025.9.13](https://github.com/jdx/mise/compare/v2025.9.12..v2025.9.13) - 2025-09-19

### 📦 Registry

- remove deprecated virtualos by @jdx in [166379f](jdx/mise@166379f)
- add trufflehog ([aqua:trufflesecurity/trufflehog](https://github.com/trufflesecurity/trufflehog)) by @risu729 in [#6316](jdx/mise#6316)

### 🚀 Features

- **(aqua)** integrate native sigstore-verification for security verification by @jdx in [#6332](jdx/mise#6332)
- **(docs)** improve search result readability with lighter teal background by @jdx in [#6328](jdx/mise#6328)
- **(ui)** update logo as favicon and fix hover transitions by @jdx in [#6325](jdx/mise#6325)
- **(vfox)** add file.read lua function by @malept in [#6333](jdx/mise#6333)
- add documentation for "Environment in tasks" #5134 #5638 by @Its-Just-Nans in [#6329](jdx/mise#6329)

### 🐛 Bug Fixes

- **(github)** correctly paginate releases/tags for private repos by @malept in [#6318](jdx/mise#6318)
- **(hk)** exclude aqua-registry from prettier linting by @jdx in [#6327](jdx/mise#6327)
- **(ui)** improve GitHub star badge layout and alignment by @jdx in [#6326](jdx/mise#6326)

### 📚 Documentation

- change 'hello.py' to 'main.py' in python.md by @my1e5 in [#6319](jdx/mise#6319)
- customize VitePress theme with unique branding by @jdx in [#6324](jdx/mise#6324)

### 📦️ Dependency Updates

- update taiki-e/install-action digest to 0aa4f22 by @renovate[bot] in [#6334](jdx/mise#6334)
- update rust crate comfy-table to v7.2.1 by @renovate[bot] in [#6335](jdx/mise#6335)
- update rust crate console to v0.16.1 by @renovate[bot] in [#6336](jdx/mise#6336)
- update rust crate indexmap to v2.11.4 by @renovate[bot] in [#6337](jdx/mise#6337)

### Chore

- fixing typos by @Its-Just-Nans in [#6331](jdx/mise#6331)

### New Contributors

- @Its-Just-Nans made their first contribution in [#6331](jdx/mise#6331)
- @my1e5 made their first contribution in [#6319](jdx/mise#6319)
riastradh pushed a commit to riastradh/pkgsrc-test20250901 that referenced this pull request Feb 8, 2026
## [2025.9.16](https://github.com/jdx/mise/compare/v2025.9.15..v2025.9.16) - 2025-09-22

### 📦 Registry

- use npm backend for zbctl by @risu729 in [#6379](jdx/mise#6379)

### 🐛 Bug Fixes

- **(aqua)** remove blake3 support from aqua checksum algorithms by @risu729 in [#6370](jdx/mise#6370)
- **(aqua)** remove cosign and slsa-verifier dependencies by @risu729 in [#6371](jdx/mise#6371)
- **(aqua)** remove cosign.experimental by @risu729 in [#6376](jdx/mise#6376)

### 📚 Documentation

- minisign doesn't require cli by @risu729 in [#6369](jdx/mise#6369)

### Chore

- ignore renovate new bot name by @risu729 in [#6364](jdx/mise#6364)

## [2025.9.15](https://github.com/jdx/mise/compare/v2025.9.14..v2025.9.15) - 2025-09-21

### 📦 Registry

- add missing cargo backends by @jayvdb in [#6307](jdx/mise#6307)

### 🚀 Features

- add env propagation by @Its-Just-Nans in [#6342](jdx/mise#6342)

### 🐛 Bug Fixes

- **(aqua)** improve GitHub token handling for sigstore verification by @jdx in [#6351](jdx/mise#6351)
- **(backend)** change dependency checks to warnings instead of errors by @jdx in [#6363](jdx/mise#6363)
- **(npm)** improve error message when npm/bun is not installed by @jdx in [#6359](jdx/mise#6359)
- **(vfox)** enable TLS support for reqwest to fix CI tests by @jdx in [#6356](jdx/mise#6356)

### 🚜 Refactor

- **(registry)** convert to nested TOML sections format by @jdx in [#6361](jdx/mise#6361)

### 🧪 Testing

- **(e2e)** resolve mise via PATH in backend missing deps test by @jdx in [#6362](jdx/mise#6362)
- **(vfox)** replace flaky external HTTP tests with local mock server by @jdx in [#6354](jdx/mise#6354)

### 📦️ Dependency Updates

- pin dependencies by @renovate[bot] in [#6243](jdx/mise#6243)

### Chore

- **(install.sh)** add `MISE_INSTALL_MUSL` to force installing musl variants on Linux by @malept in [#6355](jdx/mise#6355)

## [2025.9.14](https://github.com/jdx/mise/compare/v2025.9.13..v2025.9.14) - 2025-09-20

### 🐛 Bug Fixes

- fix an issue where Swift could not be installed on arm64 Ubuntu by @lish82 in [#6348](jdx/mise#6348)

### Chore

- use cross to build on linux by @jdx in [#6346](jdx/mise#6346)

### New Contributors

- @lish82 made their first contribution in [#6348](jdx/mise#6348)

## [2025.9.13](https://github.com/jdx/mise/compare/v2025.9.12..v2025.9.13) - 2025-09-19

### 📦 Registry

- remove deprecated virtualos by @jdx in [166379f](jdx/mise@166379f)
- add trufflehog ([aqua:trufflesecurity/trufflehog](https://github.com/trufflesecurity/trufflehog)) by @risu729 in [#6316](jdx/mise#6316)

### 🚀 Features

- **(aqua)** integrate native sigstore-verification for security verification by @jdx in [#6332](jdx/mise#6332)
- **(docs)** improve search result readability with lighter teal background by @jdx in [#6328](jdx/mise#6328)
- **(ui)** update logo as favicon and fix hover transitions by @jdx in [#6325](jdx/mise#6325)
- **(vfox)** add file.read lua function by @malept in [#6333](jdx/mise#6333)
- add documentation for "Environment in tasks" #5134 #5638 by @Its-Just-Nans in [#6329](jdx/mise#6329)

### 🐛 Bug Fixes

- **(github)** correctly paginate releases/tags for private repos by @malept in [#6318](jdx/mise#6318)
- **(hk)** exclude aqua-registry from prettier linting by @jdx in [#6327](jdx/mise#6327)
- **(ui)** improve GitHub star badge layout and alignment by @jdx in [#6326](jdx/mise#6326)

### 📚 Documentation

- change 'hello.py' to 'main.py' in python.md by @my1e5 in [#6319](jdx/mise#6319)
- customize VitePress theme with unique branding by @jdx in [#6324](jdx/mise#6324)

### 📦️ Dependency Updates

- update taiki-e/install-action digest to 0aa4f22 by @renovate[bot] in [#6334](jdx/mise#6334)
- update rust crate comfy-table to v7.2.1 by @renovate[bot] in [#6335](jdx/mise#6335)
- update rust crate console to v0.16.1 by @renovate[bot] in [#6336](jdx/mise#6336)
- update rust crate indexmap to v2.11.4 by @renovate[bot] in [#6337](jdx/mise#6337)

### Chore

- fixing typos by @Its-Just-Nans in [#6331](jdx/mise#6331)

### New Contributors

- @Its-Just-Nans made their first contribution in [#6331](jdx/mise#6331)
- @my1e5 made their first contribution in [#6319](jdx/mise#6319)
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.

2 participants