Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously,
elm-tooling
only looked at the current operating system, not the architecture. Unsupported operating systems resulted in an early error. Regardless of architecture, x86_64 binaries were downloaded, which most of the time do not work when you try to execute them. Now, every tool provides different sets of supported os+arch combinations. Support is checked at install time – unsupported tools are logged, but not errors. This allows installing for exampleelm
andelm-json
on ARM 64, but skipelm-format
(which has no ARM 64 binary). It also keeps backwards compatibility: Whereelm-tooling install
succeeded before, it should succeed now as well. Closes Wrong binary downloaded for aarch64 #93For
getExecutable
, it now throws an error on unsupported platforms. In practice, this should result in a better error before: You get an explicit “platform not supported” message, instead of a more subtle failure when trying to execute a binary that does not work on your platform.Adds ARM binaries for Elm (via https://github.com/lydell/compiler/releases/tag/0.19.1 and https://github.com/dmy/elm-raspberry-pi/releases/tag/20200611), elm-json and elm-test-rs.
Duplicates the darwin x86_64 binary for darwin ARM when there is no macOS ARM binary, allowing use with Rosetta.
This is also a first step towards #22