We are delighted to announce the release of Habitat 0.15.0. As usual, we have a number of new features as well as bug fixes, so please read on for all the details. If you just want the binaries, head on over to our downloads page: https://www.habitat.sh/docs/get-habitat/. Thanks again for using Habitat!
New: Rolling update strategy
Habitat 0.15.0 contains a new rolling update strategy via the --strategy rolling flag. The rolling update strategy behaves as follows:
- An update leader is elected. If service group was started with the leader topology the leader will not be elected as the update leader.
- The update leader will wait to check for new versions until all services within the service group agree on their version.
- Members of the service group will look at their “previous peer” to determine if it is their turn to update.
- Services are updated one at a time.
- Updates are eventually consistent. If a service joins the service group late it may update out of order, but it will be on the right version.
This update strategy is considered an MVP for rolling, with more ways to configure it to be added over time, based on user need. Read all about it on our docs site: https://www.habitat.sh/docs/run-packages-update-strategy/.
New: Initial prototype of a PowerShell-based Windows build system.
This initial work is designed to show what a PowerShell-based build program and PowerShell-based Plans would look like. It is not completely functional and has several issues, however it demonstrates the user experience of such a fully developed system. Read more about this prototype here: https://github.com/habitat-sh/habitat/pull/1588.
Docs added and updated: Setup instructions for Native Mac, updates for Linux users
These instructions allow a Mac user to compile all the Rust software components directly on a Mac without any virtualization. Note that these instructions are close but not identical to the build strategy for a production hab binary (the official releases are largely statically compiled). Theses docs were also updated for Linux users to be accurate for our latest working instructions. Check them out here: https://github.com/habitat-sh/habitat/blob/master/BUILDING.md.
- Support leading
/in artifact metadata lookup regexes. https://github.com/habitat-sh/habitat/pull/1585
- Fix clean vm configuration https://github.com/habitat-sh/habitat/pull/1574
- Disable ‘config apply’ and ‘file upload’ on Mac and Windows systems. https://github.com/habitat-sh/habitat/pull/1592
- Update ‘zmq’ socket linger to ‘-1’ https://github.com/habitat-sh/habitat/pull/1591
- Allow installation of specific hab releases. https://github.com/habitat-sh/habitat/pull/1573
- Reimplement recursive toml config merging. https://github.com/habitat-sh/habitat/pull/1551
- Removing dead signal function. https://github.com/habitat-sh/habitat/pull/1599
- Sleep 100 miliseconds to ensure zmq to enqueue message before freeing the zmq socket. https://github.com/habitat-sh/habitat/pull/1595
- Roll graceful termination into habchild. https://github.com/habitat-sh/habitat/pull/1589
- Fix find_cmd_in_pkg on Windows. https://github.com/habitat-sh/habitat/pull/1586
- Ensure 64 bit integers are represented as strings in JSON. https://github.com/habitat-sh/habitat/pull/1580
- Supervisor on Windows can “supervise” process for state change. https://github.com/habitat-sh/habitat/pull/1577