Skip to content

registry: add aqua backend for elixir-ls#9557

Merged
jdx merged 2 commits intojdx:mainfrom
AlternateRT:elixir-ls-aqua
May 3, 2026
Merged

registry: add aqua backend for elixir-ls#9557
jdx merged 2 commits intojdx:mainfrom
AlternateRT:elixir-ls-aqua

Conversation

@AlternateRT
Copy link
Copy Markdown
Contributor

Adds aqua:elixir-lsp/elixir-ls as the primary backend, keeping asdf:mise-plugins/mise-elixir-ls as the fallback

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 updates the elixir-ls registry entry by adding the aqua backend and a test command. The feedback suggests adding elixir as a dependency to ensure the language server functions properly upon installation.

Comment thread registry/elixir-ls.toml
Comment on lines +1 to +3
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" }
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

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.

Suggested change
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-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 3, 2026

Greptile Summary

This PR modifies the existing elixir-ls registry entry to add aqua:elixir-lsp/elixir-ls as the primary backend while retaining asdf:mise-plugins/mise-elixir-ls as a fallback. It also introduces a test entry using the which elixir-ls pattern, consistent with other language-server entries in the registry (e.g., golangci-lint-langserver, xcbeautify).

Confidence Score: 5/5

Safe 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, which smoke test consistent with golangci-lint-langserver and xcbeautify). No P0/P1 findings.

No files require special attention.

Important Files Changed

Filename Overview
registry/elixir-ls.toml Adds aqua:elixir-lsp/elixir-ls as primary backend with asdf: fallback and a which elixir-ls smoke test; follows established registry patterns.

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
Loading

Reviews (2): Last reviewed commit: "Merge branch 'main' into elixir-ls-aqua" | Re-trigger Greptile

Comment thread registry/elixir-ls.toml
@@ -1,2 +1,3 @@
backends = ["asdf:mise-plugins/mise-elixir-ls"]
backends = ["aqua:elixir-lsp/elixir-ls", "asdf:mise-plugins/mise-elixir-ls"]
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.

P1 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.

@jdx jdx enabled auto-merge (squash) May 3, 2026 09:52
@jdx jdx disabled auto-merge May 3, 2026 09:52
jdx added a commit that referenced this pull request May 3, 2026
## 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 -->
@jdx jdx merged commit e872f0e into jdx:main May 3, 2026
35 checks passed
@AlternateRT AlternateRT deleted the elixir-ls-aqua branch May 3, 2026 13:31
mise-en-dev added a commit that referenced this pull request May 3, 2026
### 🚀 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)
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