Thanks for your attention here!
Looking at the latest documentation from the Mix hexdocs, I think the only outstanding bits are things that you could have in spirit with native releases, just not in identical forms. The configuration providers have excellent parity already, and the tarball support came not too much later.
- I get a lot of mileage out of custom subcommands over
eval
andrpc
calls, to reduce cognitive overhead during operational or triage tasks. This is also a place where documentation and runbooks could supplement about as well. - Iāve seen them used for significant evil but book hooks are a nice model sometimes. I expect that the guideline for this is to use configuration providers as much as possible, and for anything else just roll them into your supervision tree directly, perhaps with an
:ignore
result as appropriate. - I academically miss the prospect of release plugins for a way for Hex packages to incorporate into your release build more intrusively without a lot of copypasta, but have not actually seen them used in practice so far. Like the boot hooks, I think this probably just evolves into supervision tree entries as well, plus documentation.
I hope it doesnāt seem petty that I say I miss these things in this specific form, but also the Mix.Release
module docs and mix task docs leave them out as topics thus far. For most folks, theyād need to be aware of the existence of these features as prior art in order to synthesize the native solutions above from first principles, and part of my stance is that deployments are already hard to teach good instincts for. Not having a canonical reference for these things in the first-party material means I need to say things like āalso check out the Distillery docs even though you may not use it, thereās some good ideas to steal fromā.
Iām just as excited for this as I am for runtime.exs
!
Very true, I wonāt get everything I mentioned from any one place. I donāt want to turn this into an advertisement thread for Rust so I will just say it already has some traction in most of the spaces Iāve mentioned having an unfulfilled interest in, with ML being probably the weakest and webdev having some ergonomic concerns in its current form.