Skip to content

Document mise, add tooling-agnostic mix desktop.check_toolchain (#67)#71

Open
dominicletz wants to merge 4 commits intomainfrom
cursor/desktop-issue-67-design-119a
Open

Document mise, add tooling-agnostic mix desktop.check_toolchain (#67)#71
dominicletz wants to merge 4 commits intomainfrom
cursor/desktop-issue-67-design-119a

Conversation

@dominicletz
Copy link
Copy Markdown
Collaborator

@dominicletz dominicletz commented May 2, 2026

Summary

Addresses issue #67 by decoupling contributor docs from asdf-only wording and adding a tooling-agnostic check that compares the running Erlang/OTP major and Elixir version to .tool-versions.

Approach (business case)

Developers use mise, asdf, distro packages, or CI images. Hard-coding asdf paths in docs or scripts breaks those setups. The fix defines .tool-versions as the project contract (same file format mise and asdf understand), documents both managers for Linux, and adds mix desktop.check_toolchain which reads .tool-versions and compares to System.otp_release/0 and System.version/0no shelling out to mise/asdf, so CI and minimal images stay valid.

Changes

  • Desktop.ToolVersions — parse erlang / elixir lines (supports trailing tokens such as system).
  • Desktop.Toolchainverify/2 and verify_file/2 with injectable OTP/Elixir for tests.
  • mix desktop.check_toolchain — Mix task at project root; exits non-zero with actionable errors on mismatch.
  • Docs — Linux guide: mise + asdf examples, guidance for shell wrappers (mise exec -- / asdf exec), README pointer + changelog entry.

Demo screenshots

CLI verification (mix desktop.check_toolchain with the toolchain matching .tool-versions):

Terminal: mix desktop.check_toolchain reports Toolchain matches .tool-versions

Linux getting started guide — Version managers (optional) section (mise / asdf examples and the verification command):

getting_started.md: Version managers optional section and mix desktop.check_toolchain

Tests

test/desktop/tool_versions_test.exs and test/desktop/toolchain_test.exs cover parsing and verification (including erlang … system style lines).

Validated with mise exec -- xvfb-run -a mix test test/desktop/.

Note: Mix.Tasks.Desktop.InstallTest still fails without mix archive.install hex phx_new (pre-existing environment constraint per AGENTS.md).

Closes #67.

Thanks for using cursor-automation.com

Open in Web Open in Cursor 

cursoragent and others added 3 commits May 2, 2026 00:23
Introduce Desktop.ToolVersions and Desktop.Toolchain to compare the
running OTP major and Elixir semver against project .tool-versions
without shelling out to mise/asdf. Mix task fails fast with actionable
messages when mismatched.

Adds ExUnit coverage for parsing edge cases and verification behavior.

Refs #67

Co-authored-by: Dominic Letz <dominicletz@users.noreply.github.com>
Linux getting started treats mise and asdf equally for .tool-versions,
explains manager-agnostic shell wrappers, and documents mix
desktop.check_toolchain. README notes contributor toolchain pinning.

Refs #67

Co-authored-by: Dominic Letz <dominicletz@users.noreply.github.com>
Co-authored-by: Dominic Letz <dominicletz@users.noreply.github.com>
@gemini-code-assist
Copy link
Copy Markdown

Important

Installation incomplete: to start using Gemini Code Assist, please ask the organization owner(s) to visit the Gemini Code Assist Admin Console and sign the Terms of Services.

@dominicletz dominicletz added the cursor-waiting Cursor issue-workflow (cursor-automation.com) label May 2, 2026
@cursor-automation cursor-automation Bot added cursor-waiting-for-ci Cursor issue-workflow (cursor-automation.com) and removed cursor-waiting Cursor issue-workflow (cursor-automation.com) labels May 2, 2026
MainWindow was passed as an atom but the API expects String.t(), which
made Dialyzer infer igniter/1 had no successful return and flagged the
rest of the module as dead code. Use "MainWindow" consistently.

Fixes CI Compile & Lint (dialyzer).

Co-authored-by: Dominic Letz <dominicletz@users.noreply.github.com>
@cursor-automation cursor-automation Bot added cursor-demo Cursor issue-workflow (cursor-automation.com) cursor-waiting-for-human Cursor issue-workflow (cursor-automation.com) and removed cursor-waiting-for-ci Cursor issue-workflow (cursor-automation.com) cursor-demo Cursor issue-workflow (cursor-automation.com) labels May 2, 2026
@dominicletz
Copy link
Copy Markdown
Collaborator Author

Demo screenshots are embedded in the PR description (terminal run of mix desktop.check_toolchain + Linux Version managers doc section).

Thanks for using cursor-automation.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cursor-waiting-for-human Cursor issue-workflow (cursor-automation.com)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document "mise" usage, decouple from asdf

2 participants