Skip to content

Releases: cashapp/hermit

v0.12.0

07 Feb 05:21
Compare
Choose a tag to compare
feat: support automatic runtime deps from packages with Hermit enviro…

v0.11.0

06 Feb 22:37
Compare
Choose a tag to compare
feat: implement our own errors package

This adds `file:line` annotations to each error (wrapped or otherwise),
which are visible in error formatting under two circumstances: when
printing an error with %+v, or when `HERMIT_DEBUG=errortrace`.

v0.10.0

01 Feb 04:49
Compare
Choose a tag to compare

fix: many many bugs fixed and refactorings done

  1. "hermit test" did not paginate private GitHub release results
  2. Added caching to the GH client.
  3. Added HTTP tracing.
  4. Fixed a bug where command-line flags would not set the log-level
    early enough.
  5. Refactored the download strategies into PackageSource
    implementations.
  6. Fixed a bug where ETag checks weren't using the fast HTTP client.
  7. Factored out HTTP downloader function from the Cache into
    PackageSources.
  8. Made PackageSources not use private internals of Cache.
  9. Reusable HTTPSource().
  10. Implemented a githubReleaseSource with proper ETag checks.
  11. Don't retrieve all GH releases when checking for just one.
  12. Increase GH release listing pagination size to the max of 100.

There's still some slight unavoidable weirdness with logging. Because
Hermit does a bit of work before parsing the command line, command-line
logging flags won't take effect until flags are parsed, filtering out
logs below info prior to that point. Using DEBUG=1 or HERMIT_LOG=trace
will now work as expected though, where it wasn't previously.

v0.9.0

12 Jan 04:43
Compare
Choose a tag to compare
feat: infer homepage from GH API

v0.8.1

08 Jan 04:47
Compare
Choose a tag to compare
fix: panic when auto-versioning a manifest with no auto-version block

v0.8.0

07 Jan 00:32
Compare
Choose a tag to compare
Add support for package defined local vars.

This removes a lot of boilerplate from packages with less 1:1 mappings
of version to URL.

eg. This

    description = "A tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code."
    binaries = ["clang-format"]

    version "10.0.0-20211020" {
      platform linux {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-10_linux-amd64"
        on unpack { rename { from = "${root}/clang-format-10_linux-amd64" to = "${root}/clang-format" } }
      }

      platform darwin {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-10_macosx-amd64"
        on unpack { rename { from = "${root}/clang-format-${release}_macosx-amd64" to = "${root}/clang-format" } }
      }
    }

    version "11.0.0-20211020" {
      platform linux {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-11_linux-amd64"
        on unpack { rename { from = "${root}/clang-format-11_linux-amd64" to = "${root}/clang-format" } }
      }

      platform darwin {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-11_macosx-amd64"
        on unpack { rename { from = "${root}/clang-format-11_macosx-amd64" to = "${root}/clang-format" } }
      }
    }

    version "12.0.0-20211020" {
      vars = { hash: "f3a37dd2", release: "12" }
      platform linux {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-12_linux-amd64"
        on unpack { rename { from = "${root}/clang-format-12_linux-amd64" to = "${root}/clang-format" } }
      }

      platform darwin {
        source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-f3a37dd2/clang-format-12_macosx-amd64"
        on unpack { rename { from = "${root}/clang-format-12_macosx-amd64" to = "${root}/clang-format" } }
      }
    }

Can become this:

    description = "A tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code."
    binaries = ["clang-format"]

    platform linux {
      source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-${hash}/clang-format-${release}_linux-amd64"
      on unpack { rename { from = "${root}/clang-format-${release}_linux-amd64" to = "${root}/clang-format" } }
    }

    platform darwin {
      source = "https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-${hash}/clang-format-${release}_macosx-amd64"
      on unpack { rename { from = "${root}/clang-format-${release}_macosx-amd64" to = "${root}/clang-format" } }
    }

    version "10.0.0-20211020" {
      vars = { hash: "f3a37dd2", release: "10" }
    }

    version "11.0.0-20211020" {
      vars = { hash: "f3a37dd2", release: "11" }
    }

    version "12.0.0-20211020" {
      vars = { hash: "f3a37dd2", release: "12" }
    }

v0.7.0

07 Jan 00:19
Compare
Choose a tag to compare
fix: ensure version parts have enough elements not to panic

v0.6.0

20 Dec 23:12
Compare
Choose a tag to compare
Port alecthomas/shreq over as a subcommand.

v0.5.0

15 Dec 03:50
Compare
Choose a tag to compare
Allow execution of binaries from other environments.

Environments will stack.

Fixes #174.

v0.4.0

07 Dec 01:58
Compare
Choose a tag to compare
Remove leftover debugging.