Skip to content

Releases: cashapp/hermit

v0.46.1

10 Sep 02:58
17370fe
Compare
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
Compare
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
Compare
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.

v0.45.1

02 Sep 00:47
6e839b3
Compare
Choose a tag to compare
fix: valid but empty variables in manifests were resulting in errors …

v0.45.0

29 Aug 01:42
74c25b2
Compare
Choose a tag to compare

What's Changed

  • fix: use HERMIT_GITHUB_TOKEN for git operations during exec by @steved in #498
  • chore(deps): update actions/checkout digest to 09d2aca by @renovate[bot] in #487
  • chore(deps): update all non-major dependencies by @renovate[bot] in #497
  • chore(deps): update ncipollo/release-action digest to bcfe547 by @renovate[bot] in #493
  • chore(deps): update actions/checkout action to v5 by @renovate[bot] in #504
  • feat: add a hermit bundle <dir> [<pkg> ...] command by @alecthomas in #505
  • fix: improve error when version fails to expand by @nickajacks1 in #485
  • chore(deps): update actions/checkout digest to ff7abcd by @renovate[bot] in #499

New Contributors

Full Changelog: v0.44.12...v0.45.0

v0.44.12

15 Jul 05:35
3b29260
Compare
Choose a tag to compare
fix: Ensure ManageGit defaults to true (#496)

This change sets the default for ManageGit to true (as a starting point) and switches
the command line parsing to use a pointer to allow us to distinguish
between "true", "false" and "not set".

v0.44.11

10 Jul 00:53
a803852
Compare
Choose a tag to compare
chore: allow --git and --no-git (#495)

Previously it had to be `--no-git=false` which was really confusing.

---------

Co-authored-by: Sutina Wipawiwat <swipawiwat@squareup.com>

v0.44.10

26 Jun 01:24
8dffc10
Compare
Choose a tag to compare
Fix self-update for NFS (#489)

When running hermit on an NFS mounted environment, it fails to update
itself. This is due to NFS keeping a file busy while a binary on a
certain folder is executing. Reference similar issue:
https://community.unix.com/t/unix-rm-rf-error-rm-cannot-remove-filename-device-or-resource-busy/288520/7


Solution: 
- If self-updating hermit, instead of removing all files, rename folder
to allow for new installation to happen. This ensures we don't have
issues on NFS-like file systems.


Run of sanity/run.sh showing error:
```
file:///home/gerardc_squareup_com/projects/hermit/it/sanity/release/canary
~/projects/hermit/it/sanity/testenv ~/projects/hermit/it/sanity
info: Creating new Hermit environment in /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv
info:   -> /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/activate-hermit.fish
info:   -> /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/hermit
info:   -> /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/README.hermit.md
info:   -> /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/activate-hermit
info:   -> /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/hermit.hcl
info:

Hermit environment initialised in /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv

To activate the environment run:

  . /home/gerardc_squareup_com/projects/hermit/it/sanity/testenv/bin/activate-hermit

Then run the following to list available commands:

  hermit --help

To deactivate the environment run:

  deactivate-hermit

For more information please refer to https://github.com/cashapp/hermit

Bootstrapping /home/gerardc_squareup_com/projects/hermit/it/sanity/state/pkg/hermit@canary/hermit from file:///home/gerardc_squareup_com/projects/hermit/it/sanity/release/canary
Creating /home/gerardc_squareup_com/projects/hermit/it/sanity/state/pkg/hermit@canary
Downloading file:///home/gerardc_squareup_com/projects/hermit/it/sanity/release/canary/hermit-linux-amd64.gz to /home/gerardc_squareup_com/projects/hermit/it/sanity/state/pkg/hermit@canary/hermit
Hermit installed as /home/gerardc_squareup_com/projects/hermit/it/sanity/state/pkg/hermit@canary/hermit
Hermit is installed as /home/gerardc_squareup_com/projects/hermit/it/sanity/userbin/hermit

See https://cashapp.github.io/hermit/usage/get-started/ for more information.

info:hermit@canary: Fetching a new version for hermit@canary
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1/1    100.0%

fatal:hermit: unlinkat /home/gerardc_squareup_com/projects/hermit/it/sanity/state/pkg/hermit@canary: directory not empty
~/projects/hermit/it/sanity
```

v0.44.9

19 Jun 00:25
aa0f822
Compare
Choose a tag to compare
feat: support escaping $ in variable expansion (#491)

"$" can now be escaped by adding a second "$$". For example, "$$FOO"
will expand to "$FOO".

Go's os.Expand does not natively support escaping $, so we must do it
ourselves. This can normally be done by adding a case for "$" and
returning back "$", effectively collapsing "$$" into "$". However,
because Hermit calls os.Expand repeatedly until no more expansion
occurs, and because Hermit expands environment variables from packages
twice, we need a slightly more complex solution.

By having the environment mapping turn "$" into "$$", these escaped
dollar signs can remain the same. For non-envar expansion, we can simply
call strings.ReplaceAll(str, "$$", "$"). For envars, we employ the naive
method mentioned earlier on the *second* round of expansions.

Fixes #486

---------

Co-authored-by: Sutina Wipawiwat <wsutina@gmail.com>

v0.44.8

01 May 05:04
d6e5d21
Compare
Choose a tag to compare
fix: return exit.Unavailable(101) on download error (#478)

This PR make hermit returns exit.Unavailable (101) in exit code to
indicate download error.