We are happy to announce the release of Habitat 0.31.0. 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!
Highlights
Scaffolding Releases
core/scaffolding-node is now at 0.6.1
- updated node to latest LTS (6.11.2)
core/scaffolding-ruby is now at 0.8.4
- the results directory is now excluded from package builds
- scaffolding now returns more useful errors when a $pkg_source is included
core/bundler is now at 1.15.4
- packaged bundler is now version 1.15.4
Run hab
as a non-root user
#3028 kicks off work to run hab
as a non-root user. Setting the environment variable HAB_NON_ROOT
will enable the hab cli
to install packages without root permissions. This is the first step to enabling high performance computing clusters and others to have a meaningful non-root running capability: interested parties are invited to participate in the on-going conversation about how to move this forward.
Updates to the Supervisor
[sup/functional] Support running functionals as a non-root user.: For the current functional tests which exercise hook file creation, the service user running the service is not critical and not the subject under test. Therefore, when preparing a fixture package, the following package metafiles will be created unless one is present in the fixture
directory:
SVC_USER
: defaults to the current user running the tests
SVC_GROUP
: defaults to the current user’s primary group running the
tests
This approach will pass the service user/group assertions that the Supervisor makes when creating the service directories without changing production/runtime behavior.
As a result, and with the inclusion of #3022, all doc, unit, and functional tests for the Supervisor can be run with a non-root user.
[sup/functional] Print sup output in tests if --nocapture
is set: This change helps to better debug when functional supervisor tests are failing. Existing behavior is preserved when running the tests: that is to not output supervisor messages. However, if a developer wishes to see more test output using the standard --nocapture
flag, then the supervisor output will be emitted. To see the difference you can run:
cd components/sup cargo test -- --nocapture
#3022, #3023
Bug fix: [hab] Install minimum version of exporters when used.
This change updates the install-on-use behavior for all packages which provide package export functionality (i.e. the implementations for hab pkg export *
). The behavior now is the same as the behavior for hab sup
, hab run
, hab svc *
, hab config apply
, hab pkg build
, and hab studio *
subcommands, where the same x.y.z version is installed if missing.
Prior to this change, upgrading the version of core/hab
would not upgrade the version of core/hab-pkg-dockerize
(or other export packages).
Note that in this change, 2 options were removed that affected the hab pkg export subcommand, namely --hab-url
and hab-channel
. These options were only used to install the core/hab-pkg-dockerize
(and similar) package itself which should not be required. Most importantly, those options did not affect or influence which version of core/hab
, core/hab-launcher
, and core/hab-sup
were exported various export types. A future change will introduce a re-written hab-pkg-dockerize
which fully supports targeting a different Depot URL and channel for “base packages” such as the Supervisor and the Launcher.
Features & Enhancements
- Template errors in hooks do not display which files is parsed #2299
- Allow non root user to run
hab service load
#2280 - Depot architecture refactor #1933
- Use crates.io versions for staticfile and zmq #1798
- Fix compiler warnings on macOS platform. #3103 (fnichol)
- Add settings page for origin privacy #3080 (elliott-davis)
- Updates to make builder compile with Rust 1.20 #3062 (raskchanky)
- Move origin page to a feature module with its own routing #3047 (elliott-davis)
- [sup/functional] Support running functionals as a non-root user. #3023 (fnichol)
- [sup] Don’t set ownership when rendering hooks. #3022 (fnichol)
- send aggregated service and census data to event server #3018 (mwrock)
- Improve site search by scoping to main content on page #3013 (davidwrede)
- Refactor out plan syntax sections into their own topics #3012 (davidwrede)
- Moves test into correct file #3008 (blakestier)
- Document event envelope timestamp format #3004 (christophermaier)
Bug fixes
- Packages used with
hab pkg export \*
must install same version if missing. #3093 - Supervisor crashing on acceptance environment #3042
- Census not present on all nodes #2976
- hab studio enter: Doesn’t create valid chroots on non-FHS-compliant systems #994
- [hab] Install minimum version of exporters when used. #3100 (fnichol)
- Make the
first
binding function return only live members #3076 (christophermaier) - serialize non-table keys of config before table keys #3059 (mwrock)
- Fix thread panic when building Census in Supervisor #3054 (reset)
- [sup] Fix hook table unit test which relied on lazy static value. #3037 (fnichol)
- [core] Add explicit, testing-only fs root support. #3030 (fnichol)
- Pass file name to template render functions when rendering hooks #3014 (rarenerd)
Closed issues: