registry: add aqua backend for elixir-ls#9557
Conversation
| backends = ["aqua:elixir-lsp/elixir-ls", "asdf:mise-plugins/mise-elixir-ls"] | ||
| description = "A frontend-independent IDE 'smartness' server for Elixir. Implements the 'Language Server Protocol' standard and provides debugger support via the 'Debug Adapter Protocol'" | ||
| test = { cmd = "which elixir-ls", expected = "elixir-ls" } |
There was a problem hiding this comment.
Consider adding depends = ["elixir"] to the registry entry. elixir-ls is a wrapper script that requires a working Elixir/Erlang installation to function. Declaring this dependency ensures that mise will verify or install Elixir when a user installs elixir-ls, providing a more reliable out-of-the-box experience.
| backends = ["aqua:elixir-lsp/elixir-ls", "asdf:mise-plugins/mise-elixir-ls"] | |
| description = "A frontend-independent IDE 'smartness' server for Elixir. Implements the 'Language Server Protocol' standard and provides debugger support via the 'Debug Adapter Protocol'" | |
| test = { cmd = "which elixir-ls", expected = "elixir-ls" } | |
| backends = ["aqua:elixir-lsp/elixir-ls", "asdf:mise-plugins/mise-elixir-ls"] | |
| depends = ["elixir"] | |
| description = "A frontend-independent IDE 'smartness' server for Elixir. Implements the 'Language Server Protocol' standard and provides debugger support via the 'Debug Adapter Protocol'" | |
| test = { cmd = "which elixir-ls", expected = "elixir-ls" } |
Greptile SummaryThis PR modifies the existing Confidence Score: 5/5Safe to merge — minimal, well-formed registry update with no logic changes. Single-file change to an existing registry entry. Follows established patterns (aqua-first backend, No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[mise install elixir-ls] --> B{aqua:elixir-lsp/elixir-ls available?}
B -- Yes --> C[Install via aqua backend\nSLSA verification + per-version logic]
B -- No / not in bundled registry --> D[Fallback: asdf:mise-plugins/mise-elixir-ls]
C --> E[Test: which elixir-ls → contains 'elixir-ls']
D --> E
Reviews (2): Last reviewed commit: "Merge branch 'main' into elixir-ls-aqua" | Re-trigger Greptile |
| @@ -1,2 +1,3 @@ | |||
| backends = ["asdf:mise-plugins/mise-elixir-ls"] | |||
| backends = ["aqua:elixir-lsp/elixir-ls", "asdf:mise-plugins/mise-elixir-ls"] | |||
There was a problem hiding this comment.
Aqua package not in bundled registry yet
elixir-lsp/elixir-ls was added to aquaproj/aqua-registry in v4.504.0 (released 2026-05-02), but the aqua registry currently bundled in mise is v4.501.0 (crates/aqua-registry/aqua-registry/metadata.json). The aqua:elixir-lsp/elixir-ls backend will silently fall back to asdf:mise-plugins/mise-elixir-ls until the bundled registry is updated. No action is strictly required since the fallback works, but the aqua-registry bundle should be bumped alongside this PR (or at latest in the same release) for the primary backend to function.
## Summary - write registry test-tool Docker output to a writable temp summary file, then append it to the real GitHub step summary - fail the job when `mise test-tool` exits nonzero without reporting `Failed Tools` - apply the same guard to the retry path ## Why PR #9557 showed `mise test-tool elixir-ls` crashing while appending `/tmp/github_summary`, but the workflow still passed because the Docker command was followed by `|| true` and no failed-tool marker was emitted. ## Validation - `actionlint .github/workflows/registry.yml` - commit hook lint suite, including actionlint and cargo check <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Workflow logic now fails CI when `mise test-tool` crashes before emitting a `Failed Tools` marker, and the e2e image/package registry updates can change which tools install/test successfully across platforms. > > **Overview** > **Registry CI is made strict about `mise test-tool` failures.** The workflow now writes step summaries to a runner-temp mounted directory inside the e2e container, appends that output back into `$GITHUB_STEP_SUMMARY`, and fails the job if `mise test-tool` exits non-zero without reporting `Failed Tools` (applied to both initial run and retry). > > **Tool registry and e2e environment are refreshed.** The embedded `aqua-registry` tag is bumped, the e2e Docker image gains additional system deps (notably a headless JDK and various libs), and multiple registry entries are updated/added: new tools (e.g. `markdown-oxide`, `openapi-generator`, `bagel`, `elixir-ls`, `git-sync`, `scopeguard`, `flint`, `decaf`, `umoci`, `phrase-cli`, `dexter`, `turso-cli`), repo/alias adjustments (e.g. `dagu`, `astra-cli`, `vale`), plus fixes/overrides to asset/version handling and several tool tests are corrected or temporarily disabled where CI/version output is unreliable. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 1de6c2c. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
### 🚀 Features - **(conda)** graduate conda backend out of experimental by @jdx in [#9544](#9544) - **(deps)** Add dart and flutter providers by @tjarvstrand in [#9505](#9505) - **(registry)** add neo4j by @mnm364 in [#9525](#9525) - **(registry)** add rustfs by @mnm364 in [#9530](#9530) - **(task)** support exclusion patterns in task sources by @jlarmstrongiv in [#9496](#9496) - **(vfox)** add stat function to lua file module by @esteve in [#9497](#9497) ### 🐛 Bug Fixes - **(backend)** flag regex prerelease versions by @jdx in [#9500](#9500) - **(backend)** mark -nightly/-canary/-experimental as prereleases by @jdx in [#9523](#9523) - **(backend)** suppress no-versions warning for unresolved-latest backends by @jdx in [#9548](#9548) - **(backend)** include dotnet prereleases from package flags by @jdx in [#9551](#9551) - **(backend)** scope PEP 440 prerelease detection to Python backends by @jdx in [#9558](#9558) - **(cargo)** Apply install_env during cargo install by @c22 in [#9502](#9502) - **(copr)** drop epel-9 chroots since rust >= 1.91 is unavailable by @jdx in [#9484](#9484) - **(github)** skip attestations on non-default api_url by @jdx in [#9486](#9486) - **(github)** retry ip allow list errors without auth by @risu729 in [#9506](#9506) - **(http)** update versions host tracking endpoint by @jdx in [#9527](#9527) - **(install)** don't warn for configured tools when version is passed via CLI by @jdx in [#9522](#9522) - **(install)** refresh latest before installing missing tools by @jdx in [#9545](#9545) - **(install)** don't cache nonexistent install paths by @jdx in [#9553](#9553) - **(lockfile)** don't propagate ad-hoc CLI overrides into the project lockfile by @jdx in [#9562](#9562) - **(plugin)** detect plugin types after cloning by @risu729 in [#9540](#9540) - **(release)** pass --no-git-checks to aube publish by @jdx in [#9483](#9483) - **(task)** convert PATH to MSYS Unix form when spawning POSIX shells on Windows by @JamBalaya56562 in [#9547](#9547) ### 📚 Documentation - **(contributing)** require popularity check for registry PRs by @jdx in [7bbeebe](7bbeebe) - **(watch)** update pitchfork domain to en.dev by @risu729 in [#9536](#9536) - document ghtkn GitHub token setup by @jdx in [#9546](#9546) - clarify registry backend acceptance policy by @jdx in [#9543](#9543) - Change exec command to use bash for variable echo by @kuboon in [#9567](#9567) ### 🧪 Testing - **(e2e)** run test-tool targets in parallel by @jdx in [#9564](#9564) - **(e2e)** run tests in parallel by @jdx in [#9563](#9563) - **(e2e)** bind-mount /tmp on disk and surface failed tests in CI summary by @jdx in [#9570](#9570) - **(tasks)** migrate test_task_help atask to usage field by @jdx in [#9549](#9549) ### 📦️ Dependency Updates - update fedora:45 docker digest to 8b838b3 by @renovate[bot] in [#9507](#9507) - update ghcr.io/jdx/mise:deb docker digest to f02194c by @renovate[bot] in [#9509](#9509) - update taiki-e/install-action digest to 7769b73 by @renovate[bot] in [#9512](#9512) - update ghcr.io/jdx/mise:alpine docker digest to 581f8a8 by @renovate[bot] in [#9508](#9508) - update rust crate ctor to v0.10.1 by @renovate[bot] in [#9515](#9515) - update ghcr.io/jdx/mise:rpm docker digest to a5c9655 by @renovate[bot] in [#9510](#9510) - update rust docker digest to a9cfb75 by @renovate[bot] in [#9511](#9511) - update rust crate age to v0.11.3 by @renovate[bot] in [#9514](#9514) - update rust crate jiff to v0.2.24 by @renovate[bot] in [#9516](#9516) - update dependency vitepress-plugin-tabs to ^0.9.0 by @renovate[bot] in [#9518](#9518) - update autofix-ci/action action to v1.3.4 by @renovate[bot] in [#9513](#9513) - update rust crate usage-lib to v3.2.1 by @renovate[bot] in [#9517](#9517) - update apple-actions/import-codesign-certs action to v7 by @renovate[bot] in [#9519](#9519) - update taiki-e/install-action digest to 51cd0b8 by @renovate[bot] in [#9531](#9531) - exclude taiki-e/install-action from renovate by @jdx in [#9532](#9532) - update rust crate blake3 to v1.8.5 by @renovate[bot] in [#9533](#9533) ### 📦 Registry - enable shellcheck on windows by @zeitlinger in [#9487](#9487) - add google-java-format by @zeitlinger in [#9488](#9488) - add expert ([aqua:expert-lsp/expert](https://github.com/expert-lsp/expert)) by @AlternateRT in [#9498](#9498) - update entry for checkmake by @eread in [#9504](#9504) - add systemctl-tui ([aqua:rgwood/systemctl-tui](https://github.com/rgwood/systemctl-tui)) by @2xdevv in [#9521](#9521) - add codon by @3w36zj6 in [#9538](#9538) - add tool yr (backend:github:VirusTotal/yara-x) by @adam-moss in [#9542](#9542) - add tool betterleaks (backend:aqua/betterleaks/betterleaks) by @adam-moss in [#9541](#9541) - add `git-filter-repo` by @garysassano in [#9550](#9550) - add umoci ([aqua:opencontainers/umoci](https://github.com/opencontainers/umoci)) by @2xdevv in [#9555](#9555) - add aqua backend for elixir-ls by @AlternateRT in [#9557](#9557) - deny inline backend options by @risu729 in [#9565](#9565) ### Chore - **(ci)** fail registry tests without summary by @jdx in [#9559](#9559) - **(ci)** use !cancelled() instead of always() for test-ci aggregator by @jdx in [#9569](#9569) - **(ci)** use namespace runners for ci jobs by @jdx in [#9561](#9561) - **(config)** deprecate shorthands_file setting by @risu729 in [#9534](#9534) - **(docs)** remove shrill.en.dev analytics script by @jdx in [#9539](#9539) - **(release)** replace bc with awk in release-plz star formatting by @jdx in [d7f177f](d7f177f) - bump hk to 1.44.3 by @jdx in [#9493](#9493) - invert CLAUDE.md/AGENTS.md so AGENTS.md is canonical by @jdx in [#9560](#9560) - set dev profile debug to 1 by @jdx in [#9572](#9572) ### New Contributors - @kuboon made their first contribution in [#9567](#9567) - @AlternateRT made their first contribution in [#9557](#9557) - @2xdevv made their first contribution in [#9555](#9555) - @adam-moss made their first contribution in [#9541](#9541) - @jlarmstrongiv made their first contribution in [#9496](#9496) - @tjarvstrand made their first contribution in [#9505](#9505)
Adds
aqua:elixir-lsp/elixir-lsas the primary backend, keepingasdf:mise-plugins/mise-elixir-lsas the fallback