Skip to content

Conversation

@jylenhof
Copy link

@jylenhof jylenhof commented Nov 9, 2025

Please check if the PR fulfills these requirements

See how to contribute

  • The PR has no duplicates (please search among the Pull Requests
    before creating one)
  • The PR follows
    our contributing guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • UPGRADING.md has been updated with a migration guide (for breaking changes)
  • configuration.schema.json updated if new parameters are added.

What kind of change does this PR introduce?

  • Add mise installation method alternative

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change, and is titled accordingly?

Other information

@CLAassistant
Copy link

CLAassistant commented Nov 9, 2025

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@per1234 per1234 added type: enhancement Proposed improvement topic: documentation Related to documentation for the project labels Nov 9, 2025
Copy link
Contributor

@per1234 per1234 left a comment

Choose a reason for hiding this comment

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

My primary concern regarding the addition of new installation methods is that they not be dependent on 3rd parties.

I see the mise registry entry here:

https://github.com/jdx/mise/blob/743cd693d1faed5e3202e6c3d9c69fc1a31a56ea/registry.toml#L185-L189

[tools.arduino]
aliases = ["arduino-cli"]
backends = ["aqua:arduino/arduino-cli", "asdf:egnor/asdf-arduino-cli"]
description = "Arduino command line tool"
test = ["arduino-cli version", "arduino-cli  Version: {{version}}"]

this tells us that the primary source for Arduino CLI will be the aqua registry, with the alternative egnor/asdf-arduino-cli asdf plugin only being used if the user explicitly configures mise to not use the aqua backend.

The aqua registry entry:

  - type: github_release
    repo_owner: arduino
    repo_name: arduino-cli
    description: Arduino command line tool
    version_constraint: "false"
    version_overrides:
      - version_constraint: semver("<= 0.2.1-alpha.preview")
        no_asset: true
      - version_constraint: Version == "0.4.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20190805-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.5.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20190905-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.6.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20191024-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.7.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20191220-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.7.1")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20191231-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.7.2"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200109-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.8.0")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200214-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.9.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200226-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.10.0")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200416-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.11.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200625-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.12.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200824-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.12.1"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200826-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.13.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20200914-checksums.txt"
          algorithm: sha256
      - version_constraint: Version == "0.14.0"
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-20201210-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.24.0")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        rosetta2: true
        windows_arm_emulation: true
        overrides:
          - goos: linux
            replacements:
              arm64: ARM64
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.28.0")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        windows_arm_emulation: true
        overrides:
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          arm64: ARM64
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.31.0")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        windows_arm_emulation: true
        overrides:
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          arm64: ARM64
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-checksums.txt"
          algorithm: sha256
      - version_constraint: semver("<= 0.34.2")
        asset: arduino-cli_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        windows_arm_emulation: true
        overrides:
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          arm64: ARM64
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{.Version}}-checksums.txt"
          algorithm: sha256
      - version_constraint: "true"
        asset: arduino-cli_{{trimV .Version}}_{{.OS}}_{{.Arch}}.{{.Format}}
        format: tar.gz
        windows_arm_emulation: true
        overrides:
          - goos: windows
            format: zip
        replacements:
          amd64: 64bit
          arm64: ARM64
          darwin: macOS
          linux: Linux
          windows: Windows
        checksum:
          type: github_release
          asset: "{{trimV .Version}}-checksums.txt"
          algorithm: sha256

So it is obtaining Arduino CLI directly from this repository, rather than via a 3rd party source. A need for maintenance of the registry entry would only occur if the format of our release assets changes. Hopefully this should finally have stabilized fairly well. We might see the addition of a Windows ARM build in the future, but the existing registry entry will cover that.

per1234
per1234 previously requested changes Nov 9, 2025
jylenhof and others added 2 commits November 10, 2025 01:22
Co-authored-by: Per Tillisch <[email protected]>
Co-authored-by: Per Tillisch <[email protected]>
@per1234 per1234 dismissed their stale review November 10, 2025 16:52

Requested changes have been made. Thanks!

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

Labels

topic: documentation Related to documentation for the project type: enhancement Proposed improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants