cashapp / hermit

🐚 Hermit manages isolated, self-bootstrapping sets of tools in software projects.
https://cashapp.github.io/hermit
Apache License 2.0
602 stars 53 forks source link

First class support for creating production bundles #162

Open alecthomas opened 2 years ago

alecthomas commented 2 years ago

A good point was brought up in the announcement post on Lobsters - that while Hermit solves consistent tooling across workstation and CI, it doesn't for deploys. I suggested a couple of workarounds in that thread, but it would be nice for Hermit to provide direct support.

I'm not sure what that would look like in practice? Maybe:

hermit bundle --os=<os> --arch=<arch> <dest> <pkg> [<pkg> ...]

This could create a self-contained tgz or directory with the specified packages and dependencies, bin symlinks, and an activate.sh with all the uninterpolated envars, that does not rely on Hermit at all for runtime.

damienrj commented 2 years ago

This would be great for scenarios where you don't have open access to the internet to pull in packages at run time.

gedw99 commented 2 years ago

this is an awesome feature for lean architectures.

offline install like @damienrj mentioned is very cool.

gedw99 commented 2 years ago

I raised an Issue for using NATS for persistence and other things. It would also integrate with CI and Production well too which this issue is pertaining to to some degree.