Releases: cashapp/hermit
Releases · cashapp/hermit
v0.46.1
v0.46.0
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
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
fix: valid but empty variables in manifests were resulting in errors …
v0.45.0
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
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
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
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
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
fix: return exit.Unavailable(101) on download error (#478) This PR make hermit returns exit.Unavailable (101) in exit code to indicate download error.