Skip to content

Conversation

@risu729
Copy link
Contributor

@risu729 risu729 commented Jun 29, 2025

Resolves #5419.

This PR fixes a bug that caused a No such file or directory error when extracting tar archives containing hard links.

Cause

The issue is caused by tar::Entry::unpack, which resolves hard link paths relative to the current working directory instead of the intended destination directory.
When Entry::unpack calls the internal EntryFields::unpack method, it passes None as the target_base, so the hard links are resolved to the current working directory.

This resulted in std::fs::hard_link being called with an incorrect source path (implementation here), leading to the following error:

No such file or directory (os error 2) when hard linking ./share/lima/templates/_images/ubuntu-24.04.yaml to /home/ryan/.local/share/mise/installs/lima/1.1.1/share/lima/templates/_images/ubuntu-lts.yaml

Solution

The fix is to replace Entry::unpack with Entry::unpack_in.

This method correctly uses the destination path as the base for unpacking contents, including hard links, ensuring that std::fs::hard_link receives the correct source path.

While Archive::unpack could also solve this issue, sticking with Entry::unpack_in on a per-entry basis allows us to retain the existing progress bar functionality.

However, opts.strip_components cannot be parsed directly, so I added logic to move the entries to upper directories.
This might slow down the process, but I couldn't find other solutions for this.

Notes

  • We might be able to use std::env::set_current_dir to change the current working directory, but that would be a global change and could cause issues in other parts of the code.

  • The use of Entry::unpack_in mitigates the security issues that absolutize_virtually was introduced in fix(security): prevent untarring outside expected path #5279 to prevent, so it is no longer necessary.

@github-actions
Copy link

If you are adding a new tool to mise, note the following:

  • New asdf plugins are not accepted
  • Tools may be rejected if they are not notable
  • A test is required in registry.toml

@jdx jdx merged commit 1cf1107 into jdx:main Jul 1, 2025
27 checks passed
@risu729 risu729 deleted the aqua-hard-links branch July 1, 2025 01:15
@jdx
Copy link
Owner

jdx commented Jul 1, 2025

I think this broke test_swift_slow (which only runs on the release branch)

@jdx
Copy link
Owner

jdx commented Jul 1, 2025

jdx pushed a commit that referenced this pull request Jul 1, 2025
### 🚀 Features

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

### 🐛 Bug Fixes

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

### 🧪 Testing

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

### 📦️ Dependency Updates

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

### Chore

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

### Ci

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

### New Contributors

- @yashikota made their first contribution in
[#5461](#5461)
- @yottahmd made their first contribution in
[#5476](#5476)
- @IMXEren made their first contribution in
[#5441](#5441)
@risu729
Copy link
Contributor Author

risu729 commented Jul 1, 2025

Thanks! I'll have a look.

andreabedini pushed a commit to andreabedini/mise that referenced this pull request Jul 1, 2025
Resolves jdx#5419.

This PR fixes a bug that caused a `No such file or directory` error when
extracting tar archives containing hard links.

### Cause

The issue is caused by
[`tar::Entry::unpack`](https://docs.rs/tar/latest/tar/struct.Entry.html#method.unpack),
which resolves hard link paths relative to the current working directory
instead of the intended destination directory.
When `Entry::unpack` calls the internal `EntryFields::unpack` method, it
passes `None` as the `target_base`, so the hard links are resolved to
the current working directory.

This resulted in `std::fs::hard_link` being called with an incorrect
source path (implementation
[here](https://github.com/alexcrichton/tar-rs/blob/a1c3036af48fa02437909112239f0632e4cfcfae/src/entry.rs#L509)),
leading to the following error:

```
No such file or directory (os error 2) when hard linking ./share/lima/templates/_images/ubuntu-24.04.yaml to /home/ryan/.local/share/mise/installs/lima/1.1.1/share/lima/templates/_images/ubuntu-lts.yaml
```

### Solution

The fix is to replace `Entry::unpack` with
[`Entry::unpack_in`](https://docs.rs/tar/latest/tar/struct.Entry.html#method.unpack_in).

This method correctly uses the destination path as the base for
unpacking contents, including hard links, ensuring that
`std::fs::hard_link` receives the correct source path.

While `Archive::unpack` could also solve this issue, sticking with
`Entry::unpack_in` on a per-entry basis allows us to retain the existing
progress bar functionality.

However, `opts.strip_components` cannot be parsed directly, so I added
logic to move the entries to upper directories.
This might slow down the process, but I couldn't find other solutions
for this.

### Notes

- We might be able to use `std::env::set_current_dir` to change the
current working directory, but that would be a global change and could
cause issues in other parts of the code.

- The use of `Entry::unpack_in` mitigates the security issues that
`absolutize_virtually` was introduced in jdx#5279 to prevent, so it is no
longer necessary.

---------

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
andreabedini pushed a commit to andreabedini/mise that referenced this pull request Jul 1, 2025
### 🚀 Features

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

### 🐛 Bug Fixes

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

### 🧪 Testing

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

### 📦️ Dependency Updates

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

### Chore

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

### Ci

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

### New Contributors

- @yashikota made their first contribution in
[jdx#5461](jdx#5461)
- @yottahmd made their first contribution in
[jdx#5476](jdx#5476)
- @IMXEren made their first contribution in
[jdx#5441](jdx#5441)
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.

2 participants