Skip to content

Conversation

@paradox460
Copy link
Contributor

@paradox460 paradox460 commented Jun 23, 2025

This PR attempts to enable installation of precompiled erlang binaries on Ubuntu systems, supplementing the current fast installs for MacOS and Windows (#2721).

Details

Erlang builds are made available, precompiled, for a variety of Ubuntu systems via bob.

These are generally available at https://builds.hex.pm/builds/otp/${ARCH}/${OS_VER}/${REF}.tar.gz

ARCH and OS_VER are typically a bit different than the other constants Mise uses in the erlang.rs core plugin.

The REF appears to be the same as the ones used for the other functions in the file, so it does not need to be changed.

From bob's documentation, the two arches available for precompiled builds are:

  • amd64
  • arm64

Additionally, the OS version encodes what build of Ubuntu is used as well:

  • ubuntu-20.04
  • ubuntu-22.04
  • ubuntu-24.04

The architecture names are a fairly simple mapping, more or less just different names for concepts that already exist in the mise source code. However OS_VER is more complicated.

On Github Actions, this is exposed as the envar ImageOS. Determining the runtime from that would technically satisfy my ask, as this is primarily about CI.

In this PR, I check the value of the ImageOS var, and if its absent use the os_release crate, which is already loaded for use elsewhere, to fetch the version. Since, as mentioned earlier, bob only has builds for a few ubuntu versions, I check against those, and if either ImageOS or the os_release data don't match, return early so that we can still build manually

@paradox460
Copy link
Contributor Author

I'm not actually sure if this does anything or works. My experience with rust is minimal, and so I just tried to follow conventions I saw in the file at hand.

@paradox460 paradox460 requested a review from roele June 24, 2025 16:17
@roele
Copy link
Contributor

roele commented Jun 24, 2025

It's a good start and the first part seems to work fine as per my quick test. What is missing is the proper handling of the archive.

Mise expects the binaries in the <tool>/<version>/bin folder so they get properly exposed to the PATH. The extracted archive contains a folder structure as follows.

OTP-<version>
  Install
  erts-16.0.1/
  lib/
  misc/
  releases/
  usr/

An installation via kerl looks like the following.

Install
activate
activate.csh
activate.fish
bin/
erts-16.0.1/
lib/
misc/
releases/
usr/

So what needs to be done is, extracting the tar in the download_path and moving the files to the install_path. After that the Install script needs to be executed (i assume with -minimal?) to create the bin/ directory with the necessary files.

Copy link
Contributor

@roele roele left a comment

Choose a reason for hiding this comment

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

With the suggested changes and some additional imports use std::fs; and use crate::cmd::CmdLineRunner; the installation works on an Ubuntu.

@roele
Copy link
Contributor

roele commented Jun 24, 2025

To pass the semantic-pr-lint job the PR title needs to follow semantic commits e.g. fix(erlang): use precompiled binaries for linux ubuntu

@paradox460 paradox460 changed the title Faster Erlang installs for Linux and Github Actions Ubuntu Runners fix(erlang): use precompiled binaries for linux ubuntu Jun 24, 2025
Copy link
Contributor

@roele roele left a comment

Choose a reason for hiding this comment

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

There are some warnings for OS specific builds about dead code, will have a look at those later. Besides that looks okay to me now.

paradox460 and others added 9 commits June 24, 2025 22:55
Use the os_release crate, which is already loaded in (and used in Swift)
to determine what OS we're on.

BOB only supports ubuntu 20.04, 22.04, and 24.04, so we return an
Ok(None) if we're not on one of these versions. The Ubuntu check is
relatively modular, so should Bob add more support later, or other
mirrors pop up (fedora, etc), we can add those easily
@roele
Copy link
Contributor

roele commented Jun 25, 2025

Awesome! Ran this on a docker container quickly and this seems to work now.

Thank you for your contribution @paradox460

@jdx jdx merged commit 3d518e7 into jdx:main Jun 25, 2025
17 checks passed
jdx pushed a commit that referenced this pull request Jun 26, 2025
### 🚀 Features

- **(java)** add support for tar.xz in Java core plugin to support
RedHat JDKs by [@roele](https://github.com/roele) in
[#5354](#5354)
- **(registry)** add osv-scanner by [@scop](https://github.com/scop) in
[#5413](#5413)
- **(registry)** add scorecard by [@scop](https://github.com/scop) in
[#5410](#5410)
- **(registry)** add docker cli by
[@acesyde](https://github.com/acesyde) in
[#5344](#5344)
- **(registry)** add claude code by
[@lelouvincx](https://github.com/lelouvincx) in
[#5420](#5420)
- **(registry)** add aws `cfn-lint` by
[@garysassano](https://github.com/garysassano) in
[#5434](#5434)
- added graphite by [@jdx](https://github.com/jdx) in
[#5429](#5429)

### 🐛 Bug Fixes

- **(erlang)** use precompiled binaries for linux ubuntu by
[@paradox460](https://github.com/paradox460) in
[#5402](#5402)
- **(ubi)** checksum generation might fail if extract_all option is used
by [@roele](https://github.com/roele) in
[#5394](#5394)
- `self-update` on MITM firewall by
[@joehorsnell](https://github.com/joehorsnell) in
[#5387](#5387)
- lint warning by [@jdx](https://github.com/jdx) in
[#5425](#5425)
- only warn on toolset resolve errors by [@jdx](https://github.com/jdx)
in [#5435](#5435)

### 🚜 Refactor

- **(registry)** use pipx for semgrep by
[@scop](https://github.com/scop) in
[#5423](#5423)
- **(registry)** add backends and tests by
[@risu729](https://github.com/risu729) in
[#5388](#5388)

### Ci

- unpin hyperfine by [@risu729](https://github.com/risu729) in
[#5411](#5411)

### New Contributors

- @paradox460 made their first contribution in
[#5402](#5402)
- @lelouvincx made their first contribution in
[#5420](#5420)
jdx pushed a commit that referenced this pull request Jun 26, 2025
My previous PR (#5402) works well on a
local Ubuntu runner, but when it comes to the actual github runners, it
doesn't work, because Github defines the `ImageOS` as `ubuntu24`, not
`ubuntu-24.04`

There are two approaches to solving this issue:

1. Remap `ubuntu24` style strings to `ubuntu-24.04`. That is what I'm
doing now
2. Ignore the `ImageOS` envar entirely, and just rely on data from
`os_releases`
andreabedini pushed a commit to andreabedini/mise that referenced this pull request Jul 1, 2025
This PR attempts to enable installation of precompiled erlang binaries
on Ubuntu systems, supplementing the current fast installs for MacOS and
Windows (#2721).

# Details

Erlang builds are made available, precompiled, for a variety of Ubuntu
systems via [bob](https://github.com/hexpm/bob).

These are generally available at
`https://builds.hex.pm/builds/otp/${ARCH}/${OS_VER}/${REF}.tar.gz`

`ARCH` and `OS_VER` are typically a bit different than the other
constants Mise uses in the erlang.rs core plugin.

The `REF` appears to be the same as the ones used for the other
functions in the file, so it does not need to be changed.

From bob's documentation, the two arches available for precompiled
builds are:

- `amd64`
- `arm64`

Additionally, the OS version encodes what build of Ubuntu is used as
well:

- `ubuntu-20.04`
- `ubuntu-22.04`
- `ubuntu-24.04`

The architecture names are a fairly simple mapping, more or less just
different names for concepts that already exist in the mise source code.
However OS_VER is more complicated.

On Github Actions, this is exposed as the envar `ImageOS`. Determining
the runtime from that would technically satisfy my ask, as this is
primarily about CI.

In this PR, I check the value of the `ImageOS` var, and if its absent
use the `os_release` crate, which is already loaded for use elsewhere,
to fetch the version. Since, as mentioned earlier, bob only has builds
for a few ubuntu versions, I check against those, and if either ImageOS
or the os_release data don't match, return early so that we can still
build manually

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
andreabedini pushed a commit to andreabedini/mise that referenced this pull request Jul 1, 2025
### 🚀 Features

- **(java)** add support for tar.xz in Java core plugin to support
RedHat JDKs by [@roele](https://github.com/roele) in
[jdx#5354](jdx#5354)
- **(registry)** add osv-scanner by [@scop](https://github.com/scop) in
[jdx#5413](jdx#5413)
- **(registry)** add scorecard by [@scop](https://github.com/scop) in
[jdx#5410](jdx#5410)
- **(registry)** add docker cli by
[@acesyde](https://github.com/acesyde) in
[jdx#5344](jdx#5344)
- **(registry)** add claude code by
[@lelouvincx](https://github.com/lelouvincx) in
[jdx#5420](jdx#5420)
- **(registry)** add aws `cfn-lint` by
[@garysassano](https://github.com/garysassano) in
[jdx#5434](jdx#5434)
- added graphite by [@jdx](https://github.com/jdx) in
[jdx#5429](jdx#5429)

### 🐛 Bug Fixes

- **(erlang)** use precompiled binaries for linux ubuntu by
[@paradox460](https://github.com/paradox460) in
[jdx#5402](jdx#5402)
- **(ubi)** checksum generation might fail if extract_all option is used
by [@roele](https://github.com/roele) in
[jdx#5394](jdx#5394)
- `self-update` on MITM firewall by
[@joehorsnell](https://github.com/joehorsnell) in
[jdx#5387](jdx#5387)
- lint warning by [@jdx](https://github.com/jdx) in
[jdx#5425](jdx#5425)
- only warn on toolset resolve errors by [@jdx](https://github.com/jdx)
in [jdx#5435](jdx#5435)

### 🚜 Refactor

- **(registry)** use pipx for semgrep by
[@scop](https://github.com/scop) in
[jdx#5423](jdx#5423)
- **(registry)** add backends and tests by
[@risu729](https://github.com/risu729) in
[jdx#5388](jdx#5388)

### Ci

- unpin hyperfine by [@risu729](https://github.com/risu729) in
[jdx#5411](jdx#5411)

### New Contributors

- @paradox460 made their first contribution in
[jdx#5402](jdx#5402)
- @lelouvincx made their first contribution in
[jdx#5420](jdx#5420)
andreabedini pushed a commit to andreabedini/mise that referenced this pull request Jul 1, 2025
My previous PR (jdx#5402) works well on a
local Ubuntu runner, but when it comes to the actual github runners, it
doesn't work, because Github defines the `ImageOS` as `ubuntu24`, not
`ubuntu-24.04`

There are two approaches to solving this issue:

1. Remap `ubuntu24` style strings to `ubuntu-24.04`. That is what I'm
doing now
2. Ignore the `ImageOS` envar entirely, and just rely on data from
`os_releases`
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jul 17, 2025
## [2025.7.11](https://github.com/jdx/mise/compare/v2025.7.10..v2025.7.11) - 2025-07-16

### 🚀 Features

- support extracting 7z archives for static backends by [@yjoer](https://github.com/yjoer) in [#5632](jdx/mise#5632)

### 🐛 Bug Fixes

- **(aqua)** improve warnings for packages without repo_owner and repo_name by [@risu729](https://github.com/risu729) in [#5644](jdx/mise#5644)
- **(generate)** fix task docs inject by [@risu729](https://github.com/risu729) in [#5651](jdx/mise#5651)
- **(static)** support `strip_components` for zip files by [@risu729](https://github.com/risu729) in [#5631](jdx/mise#5631)
- private forges by [@hamnis](https://github.com/hamnis) in [#5650](jdx/mise#5650)

### 🚜 Refactor

- **(aqua)** move no_aset and error_message checks into validate by [@risu729](https://github.com/risu729) in [#5649](jdx/mise#5649)

### 📚 Documentation

- **(vfox)** replace deprecated asdf and vfox settings with disable_backends by [@risu729](https://github.com/risu729) in [#5652](jdx/mise#5652)
- tweak static backend docs by [@jdx](https://github.com/jdx) in [#5627](jdx/mise#5627)

### 🧪 Testing

- **(e2e)** move test_github_auto_detect to correct directory by [@risu729](https://github.com/risu729) in [#5640](jdx/mise#5640)

### New Contributors

- @hamnis made their first contribution in [#5650](jdx/mise#5650)

## [2025.7.10](https://github.com/jdx/mise/compare/v2025.7.9..v2025.7.10) - 2025-07-14

### 🐛 Bug Fixes

- **(backend)** avoid double untar by [@jdx](https://github.com/jdx) in [#5626](jdx/mise#5626)
- **(github)** handle missing "v" prefix by [@jdx](https://github.com/jdx) in [#5625](jdx/mise#5625)

### 📚 Documentation

- add asset autodetection documentation to GitHub/GitLab backends by [@jdx](https://github.com/jdx) in [#5623](jdx/mise#5623)

## [2025.7.9](https://github.com/jdx/mise/compare/v2025.7.8..v2025.7.9) - 2025-07-14

### 🚀 Features

- **(shim)** prevent mise-specific flags from interfering with shim execution by [@jdx](https://github.com/jdx) in [#5616](jdx/mise#5616)
- github asset auto-detection by [@jdx](https://github.com/jdx) in [#5622](jdx/mise#5622)

### 🐛 Bug Fixes

- resolve GitHub alias tool name parsing and add platform-specific asset support by [@jdx](https://github.com/jdx) in [#5621](jdx/mise#5621)

## [2025.7.8](https://github.com/jdx/mise/compare/v2025.7.7..v2025.7.8) - 2025-07-13

### 🚀 Features

- custom backends through plugins by [@jdx](https://github.com/jdx) in [#5579](jdx/mise#5579)
- nested tool options by [@jdx](https://github.com/jdx) in [#5614](jdx/mise#5614)

### 🐛 Bug Fixes

- accept platform_ or platforms_ in http/github backends by [@jdx](https://github.com/jdx) in [#5608](jdx/mise#5608)

### 📚 Documentation

- correct toml syntax by [@jdx](https://github.com/jdx) in [#5609](jdx/mise#5609)
- removed some markdownlint rules by [@jdx](https://github.com/jdx) in [#5615](jdx/mise#5615)

## [2025.7.7](https://github.com/jdx/mise/compare/v2025.7.4..v2025.7.7) - 2025-07-13

### 🚀 Features

- add static backends (Github, GitLab, and HTTP) by [@jdx](https://github.com/jdx) in [#5602](jdx/mise#5602)
- blake3 support by [@jdx](https://github.com/jdx) in [#5605](jdx/mise#5605)

### 🐛 Bug Fixes

- **(e2e)** simplify test path handling logic by [@jdx](https://github.com/jdx) in [#5600](jdx/mise#5600)
- skip gh release edit on dry run in release workflow by [@jdx](https://github.com/jdx) in [#5603](jdx/mise#5603)

### 📚 Documentation

- **(cursor)** fix conventional commits rule formatting by [@jdx](https://github.com/jdx) in [#5597](jdx/mise#5597)
- **(cursor)** add testing rule for mise codebase by [@jdx](https://github.com/jdx) in [#5598](jdx/mise#5598)

### 🧪 Testing

- disable cmake test for now by [@jdx](https://github.com/jdx) in [d521c31](jdx/mise@d521c31)

### 📦️ Dependency Updates

- pin dependencies by [@renovate[bot]](https://github.com/renovate[bot]) in [#5511](jdx/mise#5511)

### Chore

- **(release)** mark a release as draft until assets are added by [@risu729](https://github.com/risu729) in [#5584](jdx/mise#5584)
- added reverts to git-cliff by [@jdx](https://github.com/jdx) in [#5577](jdx/mise#5577)
- reduce binary size for linux by [@jdx](https://github.com/jdx) in [#5587](jdx/mise#5587)
- `cargo check` fixes by [@jdx](https://github.com/jdx) in [#5589](jdx/mise#5589)
- Merge vfox.rs into jdx/mise monorepo by [@jdx](https://github.com/jdx) in [#5590](jdx/mise#5590)
- Add cursor rule for conventional commits by [@jdx](https://github.com/jdx) in [#5592](jdx/mise#5592)
- Create GitHub action for vfox.rs tests by [@jdx](https://github.com/jdx) in [#5593](jdx/mise#5593)
- tweak paths for test-vfox workflow by [@jdx](https://github.com/jdx) in [0189372](jdx/mise@0189372)
- set workspace resolver by [@jdx](https://github.com/jdx) in [#5606](jdx/mise#5606)
- add workspace resolver = 3 by [@jdx](https://github.com/jdx) in [304547a](jdx/mise@304547a)
- fix release-plz with workspace by [@jdx](https://github.com/jdx) in [5b3be6e](jdx/mise@5b3be6e)
- only bump mise version for release-plz by [@jdx](https://github.com/jdx) in [8f14d10](jdx/mise@8f14d10)
- add cargo-release by [@jdx](https://github.com/jdx) in [f657db5](jdx/mise@f657db5)
- mise up by [@jdx](https://github.com/jdx) in [4872ae6](jdx/mise@4872ae6)
- fix release-plz with workspace by [@jdx](https://github.com/jdx) in [bdb7119](jdx/mise@bdb7119)
- set-version by [@jdx](https://github.com/jdx) in [82fcd4f](jdx/mise@82fcd4f)
- set-version by [@jdx](https://github.com/jdx) in [54388a4](jdx/mise@54388a4)
- set-version by [@jdx](https://github.com/jdx) in [fe0a0a9](jdx/mise@fe0a0a9)
- set-version by [@jdx](https://github.com/jdx) in [d9f24e2](jdx/mise@d9f24e2)
- set-version by [@jdx](https://github.com/jdx) in [97f6f4f](jdx/mise@97f6f4f)
- set-version by [@jdx](https://github.com/jdx) in [13296e1](jdx/mise@13296e1)
- set-version by [@jdx](https://github.com/jdx) in [587a707](jdx/mise@587a707)
- set-version by [@jdx](https://github.com/jdx) in [1e80d52](jdx/mise@1e80d52)

## [2025.7.4](https://github.com/jdx/mise/compare/v2025.7.3..v2025.7.4) - 2025-07-11

### 🐛 Bug Fixes

- **(aqua)** align version resolution logic in list_bin_paths by [@risu729](https://github.com/risu729) in [#5562](jdx/mise#5562)
- Xonsh integration by [@jfmontanaro](https://github.com/jfmontanaro) in [#5557](jdx/mise#5557)

### 📚 Documentation

- create comprehensive architecture documentation suite and enhance development guides by [@jdx](https://github.com/jdx) in [d2b4a05](jdx/mise@d2b4a05)

### ◀️ Revert

- Revert "fix(aqua): align version resolution logic in list_bin_paths" by [@jdx](https://github.com/jdx) in [#5574](jdx/mise#5574)

### 📦️ Dependency Updates

- update rust crate bzip2 to 0.6 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5568](jdx/mise#5568)
- update rust crate clap_mangen to v0.2.28 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5566](jdx/mise#5566)
- update rust crate clap to v4.5.41 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5565](jdx/mise#5565)
- update rust crate taplo to 0.14 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5158](jdx/mise#5158)

### Chore

- added xonsh for release builds by [@jdx](https://github.com/jdx) in [#5561](jdx/mise#5561)
- enable backtrace lines on panic by [@jdx](https://github.com/jdx) in [#5571](jdx/mise#5571)
- shfmt update by [@jdx](https://github.com/jdx) in [67ee245](jdx/mise@67ee245)

### New Contributors

- @jfmontanaro made their first contribution in [#5557](jdx/mise#5557)

## [2025.7.3](https://github.com/jdx/mise/compare/v2025.7.2..v2025.7.3) - 2025-07-10

### 🚀 Features

- **(registry)** add vfox by [@risu729](https://github.com/risu729) in [#5551](jdx/mise#5551)

### 🐛 Bug Fixes

- **(aqua)** show other backends suggestion for unsupported package types by [@risu729](https://github.com/risu729) in [#5547](jdx/mise#5547)
- **(registry)** use aqua and fix ubi options for yamlscript by [@risu729](https://github.com/risu729) in [#5538](jdx/mise#5538)
- **(registry)** add java and yq to android-sdk dependencies by [@risu729](https://github.com/risu729) in [#5545](jdx/mise#5545)
- **(schema)** broken $schema ref by [@tpansino](https://github.com/tpansino) in [#5540](jdx/mise#5540)
- auto_install_disable_tools env var by [@jdx](https://github.com/jdx) in [#5543](jdx/mise#5543)
- do not overwrite github tokens environment variables by [@risu729](https://github.com/risu729) in [#5546](jdx/mise#5546)

### Chore

- update Cargo.lock by [@risu729](https://github.com/risu729) in [#5549](jdx/mise#5549)

### New Contributors

- @tpansino made their first contribution in [#5540](jdx/mise#5540)

## [2025.7.2](https://github.com/jdx/mise/compare/v2025.7.1..v2025.7.2) - 2025-07-09

### 🚀 Features

- **(registry)** add zizmor by [@risu729](https://github.com/risu729) in [#5519](jdx/mise#5519)
- Add `self_update_available` to `mise doctor` output by [@joehorsnell](https://github.com/joehorsnell) in [#5534](jdx/mise#5534)

### 🐛 Bug Fixes

- **(aqua)** use the version in url to verify and install by [@risu729](https://github.com/risu729) in [#5537](jdx/mise#5537)
- **(registry)** use aqua for numbat, gokey, golines by [@risu729](https://github.com/risu729) in [#5518](jdx/mise#5518)
- `self-update` on MITM firewall (attempt #2) by [@joehorsnell](https://github.com/joehorsnell) in [#5459](jdx/mise#5459)
- mise panic in removed directory by [@roele](https://github.com/roele) in [#5532](jdx/mise#5532)

### 📚 Documentation

- update ubi tag_regex syntax by [@grimm26](https://github.com/grimm26) in [#5529](jdx/mise#5529)

### 🧪 Testing

- disable yamlscript test by [@jdx](https://github.com/jdx) in [#5536](jdx/mise#5536)

### New Contributors

- @grimm26 made their first contribution in [#5529](jdx/mise#5529)

## [2025.7.1](https://github.com/jdx/mise/compare/v2025.7.0..v2025.7.1) - 2025-07-06

### 🚀 Features

- **(aqua)** add support for zst compressed assets by [@andreabedini](https://github.com/andreabedini) in [#5495](jdx/mise#5495)
- **(registry)** import package descriptions from aqua and add os specifier for tuist by [@matracey](https://github.com/matracey) in [#5487](jdx/mise#5487)

### 🐛 Bug Fixes

- **(aqua)** handle hard links in aqua packages (attempt #2) by [@risu729](https://github.com/risu729) in [#5486](jdx/mise#5486)
- **(aqua)** apply correct `version_override` by [@risu729](https://github.com/risu729) in [#5474](jdx/mise#5474)
- **(erlang)** fix install_precompiled method signature for unsupported os by [@roele](https://github.com/roele) in [#5503](jdx/mise#5503)
- **(java)** relax version filter regex for JetBrains builds by [@roele](https://github.com/roele) in [#5508](jdx/mise#5508)
- **(registry)** use aqua backend for bat by [@risu729](https://github.com/risu729) in [#5490](jdx/mise#5490)
- **(registry)** use pipx backend for aws-sam on windows by [@risu729](https://github.com/risu729) in [#5491](jdx/mise#5491)
- enhance self-update for musl targets by [@roele](https://github.com/roele) in [#5502](jdx/mise#5502)
- include arch and os settings in cache keys by [@risu729](https://github.com/risu729) in [#5504](jdx/mise#5504)

### 🧪 Testing

- **(registry)** enable youtube-dl test by [@risu729](https://github.com/risu729) in [#5492](jdx/mise#5492)

### 📦️ Dependency Updates

- update swatinem/rust-cache digest to 98c8021 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5512](jdx/mise#5512)

### New Contributors

- @matracey made their first contribution in [#5487](jdx/mise#5487)
- @andreabedini made their first contribution in [#5495](jdx/mise#5495)

## [2025.7.0](https://github.com/jdx/mise/compare/v2025.6.8..v2025.7.0) - 2025-07-01

### 🚀 Features

- **(registry)** adds gemini-cli by [@risu729](https://github.com/risu729) in [#5447](jdx/mise#5447)
- **(registry)** adds npm backended tools by [@risu729](https://github.com/risu729) in [#5446](jdx/mise#5446)
- **(registry)** add powershell alias by [@risu729](https://github.com/risu729) in [#5449](jdx/mise#5449)
- **(registry)** add dagu by [@yottahmd](https://github.com/yottahmd) in [#5476](jdx/mise#5476)
- **(registry)** update aws-sam backends to include aqua source by [@yashikota](https://github.com/yashikota) in [#5461](jdx/mise#5461)
- **(registry)** use ubi backend for youtube-dl nightly releases by [@risu729](https://github.com/risu729) in [#5466](jdx/mise#5466)

### 🐛 Bug Fixes

- **(aqua)** update victoria-metrics package name casing by [@shikharbhardwaj](https://github.com/shikharbhardwaj) in [#5483](jdx/mise#5483)
- **(aqua)** handle hard links in aqua packages by [@risu729](https://github.com/risu729) in [#5463](jdx/mise#5463)
- **(bun)** enhance architecture detection for musl targets by [@roele](https://github.com/roele) in [#5450](jdx/mise#5450)
- **(erlang)** use precompiled ubuntu binaries on GHA by [@paradox460](https://github.com/paradox460) in [#5439](jdx/mise#5439)
- **(erlang)** add `install_precompiled` for unsupported os by [@risu729](https://github.com/risu729) in [#5479](jdx/mise#5479)
- **(registry)** use aqua backend for cargo-make by [@risu729](https://github.com/risu729) in [#5465](jdx/mise#5465)
- **(registry)** use aqua backends for all available tools by [@risu729](https://github.com/risu729) in [#5467](jdx/mise#5467)
- `parse_command` passing `-c` flag to cmd.exe by [@IMXEren](https://github.com/IMXEren) in [#5441](jdx/mise#5441)

### 🧪 Testing

- **(registry)** disable bitwarden test by [@risu729](https://github.com/risu729) in [#5468](jdx/mise#5468)

### ◀️ Revert

- Revert "chore(deps): pin dependencies" by [@jdx](https://github.com/jdx) in [#5453](jdx/mise#5453)
- Revert "fix(aqua): handle hard links in aqua packages" by [@jdx](https://github.com/jdx) in [#5485](jdx/mise#5485)

### 📦️ Dependency Updates

- pin dependencies by [@renovate[bot]](https://github.com/renovate[bot]) in [#5443](jdx/mise#5443)
- update jdx/mise-action digest to 5cb1df6 by [@renovate[bot]](https://github.com/renovate[bot]) in [#5444](jdx/mise#5444)

### Chore

- disable automatic cargo up due to windows build failure in homedir crate by [@jdx](https://github.com/jdx) in [7570d0a](jdx/mise@7570d0a)

### Ci

- **(test)** run `apt-get update` before `apt-get install` by [@risu729](https://github.com/risu729) in [#5448](jdx/mise#5448)

### New Contributors

- @yashikota made their first contribution in [#5461](jdx/mise#5461)
- @yottahmd made their first contribution in [#5476](jdx/mise#5476)
- @IMXEren made their first contribution in [#5441](jdx/mise#5441)

## [2025.6.8](https://github.com/jdx/mise/compare/v2025.6.7..v2025.6.8) - 2025-06-26

### 🚀 Features

- **(java)** add support for tar.xz in Java core plugin to support RedHat JDKs by [@roele](https://github.com/roele) in [#5354](jdx/mise#5354)
- **(registry)** add osv-scanner by [@scop](https://github.com/scop) in [#5413](jdx/mise#5413)
- **(registry)** add scorecard by [@scop](https://github.com/scop) in [#5410](jdx/mise#5410)
- **(registry)** add docker cli by [@acesyde](https://github.com/acesyde) in [#5344](jdx/mise#5344)
- **(registry)** add claude code by [@lelouvincx](https://github.com/lelouvincx) in [#5420](jdx/mise#5420)
- **(registry)** add aws `cfn-lint` by [@garysassano](https://github.com/garysassano) in [#5434](jdx/mise#5434)
- added graphite by [@jdx](https://github.com/jdx) in [#5429](jdx/mise#5429)

### 🐛 Bug Fixes

- **(erlang)** use precompiled binaries for linux ubuntu by [@paradox460](https://github.com/paradox460) in [#5402](jdx/mise#5402)
- **(ubi)** checksum generation might fail if extract_all option is used by [@roele](https://github.com/roele) in [#5394](jdx/mise#5394)
- `self-update` on MITM firewall by [@joehorsnell](https://github.com/joehorsnell) in [#5387](jdx/mise#5387)
- lint warning by [@jdx](https://github.com/jdx) in [#5425](jdx/mise#5425)
- only warn on toolset resolve errors by [@jdx](https://github.com/jdx) in [#5435](jdx/mise#5435)

### 🚜 Refactor

- **(registry)** use pipx for semgrep by [@scop](https://github.com/scop) in [#5423](jdx/mise#5423)
- **(registry)** add backends and tests by [@risu729](https://github.com/risu729) in [#5388](jdx/mise#5388)

### ◀️ Revert

- Revert "fix: `self-update` on MITM firewall" by [@jdx](https://github.com/jdx) in [#5427](jdx/mise#5427)

### Ci

- unpin hyperfine by [@risu729](https://github.com/risu729) in [#5411](jdx/mise#5411)

### New Contributors

- @paradox460 made their first contribution in [#5402](jdx/mise#5402)
- @lelouvincx made their first contribution in [#5420](jdx/mise#5420)

## [2025.6.7](https://github.com/jdx/mise/compare/v2025.6.6..v2025.6.7) - 2025-06-23

### 🐛 Bug Fixes

- **(aqua)** fix versions order by [@risu729](https://github.com/risu729) in [#5406](jdx/mise#5406)

### Ci

- use pinnable tag of taiki-e/install-action by [@risu729](https://github.com/risu729) in [#5405](jdx/mise#5405)
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.

3 participants