Skip to content

feat(deps): add aube provider#9452

Merged
jdx merged 1 commit intomainfrom
claude/suspicious-torvalds-120528
Apr 28, 2026
Merged

feat(deps): add aube provider#9452
jdx merged 1 commit intomainfrom
claude/suspicious-torvalds-120528

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 28, 2026

Summary

  • Adds a built-in aube deps provider — auto-detects projects via aube-lock.yaml, runs aube install for freshness, and outputs to node_modules/.
  • Wires mise deps add aube:<pkg> (with -D for dev) and mise deps remove aube:<pkg> so aube can manage individual packages alongside the existing npm/yarn/pnpm/bun ecosystems.
  • Documents aube in docs/dev-tools/deps.md (provider table, ecosystem list, configuration example) and adds e2e coverage in e2e/cli/test_deps.

Why

aube is a fast Rust-written Node.js package manager (https://github.com/endevco/aube) already in mise's registry. With this PR, an aube-backed project gets the same first-class mise deps experience as bun/pnpm: lockfile-aware freshness checks, optional auto = true, and add/remove via the aube: prefix.

Implementation notes

  • New provider lives at src/deps/providers/aube.rs, modeled after the bun provider. Detection is keyed on aube-lock.yaml (aube's native lockfile) — projects that use aube against an existing pnpm-lock.yaml/bun.lock/etc. continue to be detected by those providers.
  • aube is registered in BUILTIN_PROVIDERS, in the build_provider dispatch in engine.rs, and in detect_applicable_providers.
  • Dev-dependency flag uses aube's documented -D short form.

Test plan

  • mise run lint passes
  • cargo build succeeds
  • mise run test:e2e test_deps — new aube assertions (--list shows aube + aube-lock.yaml, --dry-run mentions aube) all pass alongside existing provider coverage

🤖 Generated with Claude Code


Note

Low Risk
Low risk additive change that registers a new deps provider and updates detection/listing logic; impact is limited to projects that opt into [deps.aube] and have aube-lock.yaml present.

Overview
Adds first-class support for the aube Node.js package manager in mise deps, including lockfile-based applicability (aube-lock.yaml), default install command (aube install), and package management via mise deps add/remove aube:<pkg> (with -D for dev deps).

Wires the provider into built-in provider registration, discovery, and provider construction, updates docs to list/configure aube, and extends the test_deps e2e coverage to assert --list and --dry-run behavior.

Reviewed by Cursor Bugbot for commit 5da02da. Bugbot is set up for automated code reviews on this repo. Configure here.

Adds built-in support for aube (https://github.com/endevco/aube), a fast
Node.js package manager. The provider detects projects via aube-lock.yaml,
runs aube install for freshness, and powers mise deps add/remove with the
aube:<pkg> ecosystem prefix (-D for dev deps).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 28, 2026

Greptile Summary

This PR adds a first-class aube deps provider to mise, modeled directly after the existing bun provider. The implementation is clean and complete: a new AubeDepsProvider in src/deps/providers/aube.rs handles detection (keyed on aube-lock.yaml), install/add/remove commands, and is wired into BUILTIN_PROVIDERS, the engine dispatch, and auto-detection — all consistent with the existing provider pattern. Documentation and e2e coverage are included.

Confidence Score: 5/5

This PR is safe to merge — it's a self-contained additive change with no regression risk to existing providers.

The implementation faithfully mirrors the bun provider pattern with no novel logic, all registration points are covered (BUILTIN_PROVIDERS, engine dispatch, auto-detection, re-export), the e2e test correctly resets state between provider sections, and no security or correctness issues were found.

No files require special attention.

Important Files Changed

Filename Overview
src/deps/providers/aube.rs New aube provider modeled faithfully after bun.rs; detection keyed on aube-lock.yaml, install/add/remove commands are correct.
src/deps/engine.rs Correctly wires AubeDepsProvider into the build_provider dispatch alongside the existing providers.
src/deps/mod.rs Registers aube in detect_applicable_providers in the correct position (after bun, before go).
src/deps/rule.rs Adds "aube" to BUILTIN_PROVIDERS constant with the correct Node.js grouping comment.
src/deps/providers/mod.rs Adds the aube module and re-exports AubeDepsProvider correctly.
e2e/cli/test_deps New aube e2e assertions mirror the bun pattern; mise.toml is correctly reset for each subsequent provider test.
docs/dev-tools/deps.md Adds aube to the provider table and ecosystem list; source files and install command are accurate.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Project root] --> B{aube-lock.yaml exists?}
    B -- No --> C[Provider not applicable]
    B -- Yes --> D[AubeDepsProvider active]
    D --> E{Freshness check}
    E -- aube-lock.yaml / package.json changed --> F[Stale → run install_command]
    E -- Up to date --> G[Fresh → skip]
    F --> H[aube install]

    I[mise deps add aube:pkg] --> J[add_command]
    J --> K{dev flag?}
    K -- Yes --> L[aube add -D pkg]
    K -- No --> M[aube add pkg]

    N[mise deps remove aube:pkg] --> O[remove_command]
    O --> P[aube remove pkg]
Loading

Reviews (1): Last reviewed commit: "feat(deps): add aube provider" | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds support for the 'aube' package manager as a dependency provider in the project. The changes include implementing the AubeDepsProvider, updating the engine and module registrations, and adding relevant documentation and end-to-end tests. I have reviewed the implementation and suggest a minor simplification to the description logic in the provider using unwrap_or instead of unwrap_or_else.

Comment on lines +48 to +53
description: self
.base
.config
.description
.clone()
.unwrap_or_else(|| "aube install".to_string()),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The description logic can be simplified using unwrap_or instead of unwrap_or_else since the default value is a constant string.

Suggested change
description: self
.base
.config
.description
.clone()
.unwrap_or_else(|| "aube install".to_string()),
.description
.clone()
.unwrap_or("aube install".to_string()),

@jdx jdx enabled auto-merge (squash) April 28, 2026 16:18
@jdx jdx merged commit ebf4598 into main Apr 28, 2026
39 checks passed
@jdx jdx deleted the claude/suspicious-torvalds-120528 branch April 28, 2026 16:26
@github-actions
Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.25 x -- echo 18.4 ± 0.5 17.2 22.1 1.00
mise x -- echo 19.1 ± 0.6 17.7 23.3 1.04 ± 0.04

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.25 env 18.4 ± 0.5 17.1 22.0 1.00
mise env 19.1 ± 0.4 18.1 21.1 1.04 ± 0.04

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.25 hook-env 19.1 ± 0.5 18.1 25.2 1.00
mise hook-env 19.3 ± 0.4 18.0 21.2 1.01 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.25 ls 20.2 ± 0.6 19.2 25.9 1.00
mise ls 20.7 ± 0.4 19.8 22.7 1.02 ± 0.03

xtasks/test/perf

Command mise-2026.4.25 mise Variance
install (cached) 121ms 125ms -3%
ls (cached) 70ms 71ms -1%
bin-paths (cached) 70ms 71ms -1%
task-ls (cached) 743ms 721ms +3%

mise-en-dev added a commit that referenced this pull request Apr 29, 2026
### 🚀 Features

- **(deps)** add aube provider by @jdx in
[#9452](#9452)
- **(ls-remote)** add strict metadata mode by @jdx in
[#9448](#9448)

### 🐛 Bug Fixes

- **(env)** parse concatenated short form `-Eval` correctly by @bts in
[#9456](#9456)
- **(http)** improve HTML detection by using Content-Type header by
@phateffect in [#9407](#9407)
- **(task)** install monorepo subdir tools before running deps by @jdx
in [#9454](#9454)

### 📦️ Dependency Updates

- update astral-tokio-tar advisory by @jdx in
[#9449](#9449)
- respect -q flag for provider command stream by @JamBalaya56562 in
[#9457](#9457)

### New Contributors

- @JamBalaya56562 made their first contribution in
[#9457](#9457)
- @bts made their first contribution in
[#9456](#9456)
- @phateffect made their first contribution in
[#9407](#9407)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
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