Skip to content

Releases: cashapp/hermit

v0.49.2

10 Feb 05:11
c041ab2

Choose a tag to compare

chore: add just commands for release workflow (#543)

Adds `just` and `gh` as Hermit dependencies and creates a justfile with
release commands:

- `just release` — auto-calculates next patch version, confirms, and
creates a GitHub release
- `just release-minor` — same but bumps the minor version
- `just release-status` — shows recent release workflow runs
- `just release-watch` — live-watches the latest release workflow
- `just release-list` — lists recent releases

Also updates RELEASE.md to reference the new commands.


ℹ️ The repo also has a Makefile - I've not touched that... perhaps we
eventually want to move it all to just 🤔 .

Co-authored-by: Amp <amp@ampcode.com>

v0.49.1

06 Feb 06:28
69dbf29

Choose a tag to compare

Revert "fix: symlinks/hard links could escape during unarchiving" (#539)

This reverts commit 80919e76b1db80e7967059b6c4182b06a213e29d.

v0.49.0

06 Feb 04:07
f35fa9d

Choose a tag to compare

feat: Add Cachew proxy support for packages downloads (#537)

v0.48.1

05 Feb 21:15
5ed3825

Choose a tag to compare

What's Changed

  • Revert "Use chpwd_functions for change_hermit_env instead of precmd_functions" by @sw-square in #536

Full Changelog: v0.48.0...v0.48.1

v0.48.0

05 Feb 02:04
fe56781

Choose a tag to compare

fix: resolve virtual deps from selected packages (#531)

Prefer already-selected providers to avoid ambiguity during installs

When a package declares `requires = ["jdk"]`, Hermit may treat `jdk` as
a virtual dependency. If multiple packages provide `jdk` and none are
installed yet, Hermit previously refused to choose and failed, even if
the user explicitly requested a provider (like `openjdk@21`) in the same
install command.

The change makes Hermit prefer *already-selected* packages in the
current install set when resolving virtual dependencies. That means if
you run:

```
hermit install openjdk@21 some-package-requiring-jdk
```

Hermit sees that `openjdk@21` is part of the install selection and uses
it to satisfy `jdk`, avoiding the “multiple packages satisfy” error.

This PR also lets a package declare virtual dependencies in
`runtime-dependencies` like you already could for `requires`

v0.47.0

29 Dec 23:51

Choose a tag to compare

fix: switch to a maintained xz package

The previous one hasn't been touched in 8 years, and is failing.

Fixes #528

v0.46.2

06 Nov 21:45
f5e93fe

Choose a tag to compare

fix: don't suppress logging during exec (#515)

Also emit a warning if a package could not be resolved during list.

v0.46.1

10 Sep 02:58
17370fe

Choose a tag to compare

fix: don't rely on an environment when self updating (#511)

This was a regression I introduced in #507.

v0.46.0

08 Sep 02:24
2fe0cd2

Choose a tag to compare

fix: add-digests didn't have the state dir populated (#508)

This resulted in `${root}` being evaluated to the empty string. I'm not
sure why this didn't cause many more problems, but it only seemed to
manifest in a couple of packages.

v0.45.2

03 Sep 22:29

Choose a tag to compare

Revert "Fix self-update for NFS (#489)"

This reverts commit 8dffc1031223ecf8fa84cd577d48e15b1784d16a.

This change breaks builds on Docker with:

```
 > [stage-0 7/8] RUN --mount=type=ssh /env/bin/hermit update:
4.776 fatal:hermit: rename /root/.cache/hermit/pkg/hermit@square /root/.cache/hermit/pkg/.hermit@square.old: invalid cross-device link
```

We'll have to come up with a different solution for NFS.