We are super satisfied to announce the release of Habitat 0.24.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!
##Node.js Scaffolding
For all of the node.js fans, aficionados, workpeople out there, Habitat now has a scaffolding for you!
Node Scaffolding is a Habitat package which helps you build your Node.js-based web applications, services, and processes (hereafter referred to as “apps”) into a package which runs consistently
on a wide range of containers, virtual machines, or servers via the Habitat Supervisor. The Supervisor will facilitate clustering, discovery of external services such as databases, dynamically update configuration and credentials, coordinate reliable rolling updates, and a lot more! Check it out, and we are excitedly awaiting your feedback!
Node Scaffolding Quickstart
Node Scaffolding Documentation
##New Supervisor commands & aliases
- Adds
hab sup term
command: this will gracefully stop a supervisor
if one is running. This is the opposite ofhab sup run
- Adds
hab term
alias - Adds
hab run
alias - Adds the counterpart to
hab start
-hab stop
#2419 -
hab service
has been renamed tohab svc
. This is now a common command that we have begun to run with the multi-tenant supervisor - We’ve shortened
hab package
tohab pkg
and this brings us inline with that standard
*Addedhab svc status
command. This forwards tohab-sup status
#2359 - Improvements to
hab svc status
command: adds formatting to make output more friendly for machines to read, adds service group to output, and allows you to add style to output #2414
##Habitat Studio Experience Enhancements #2418
####Add ll
& la
aliases in default Studio type.
alias ll='ls -l'
alias la='ls -al'
####Adds emacs
function which runs mg
unless emacs
is found.
Did you know that every default Studio has a tiny emacs-like text editor called mg
installed? Well, enough emacs fans didn’t know this so this change is an attempt to make it a bit more discoverable.
A function called emacs
is added into the default Studio type’s Bash profile which will find and run a real emacs
if found on PATH
and otherwise will call the mg
program.
For more information about mg
, check out: http://man.openbsd.org/OpenBSD-current/man1/mg.1
####New Environment Variable
A new environment can be passed to hab studio enter
called HAB_STUDIO_SUP
which does 2 things: provide a way to not run a Supervisor or to customize how the Supervisor runs by passing additional command line arguments such as --peer
, etc.
When set to false
, no
, or 0
, a Supervisor will not run automatically in an interactive Studio, allowing a user to export-and-forget if that is their preference.
Alternatively, when non-empty (and not set to a value above), it is assumed that the value contains extra command line arguments that will be passed to hab sup run
. For example, to interactive enter a Studio with a Supervisor running, joined to a ring you could run:
env HAB_STUDIO_SUP='--peer 172.17.0.2' hab studio enter
####New In-Studio Helper Functions
Three new functions are set inside an interactive Studio session:
-
sup-log
- Tails the Supervisor’s output (this replacesslog
) -
sup-term
- Terminates the Supervisor running in the background -
sup-run
- Runs a Supervisor in the background. You can pass additional arguments such as--peer
, etc. This is what is called to automatically run the Supervisor in the background.
For those who desire less typing, the following aliases exist:
alias sl='sup-log'
alias st='sup-term'
alias sr='sup-run'
##Auto-Update
Channels are now respected when an update strategy is specified on svc start
or svc load
by passing --channel {name}
#2410
Features & Enhancements
- [web ui] Add new blog #2336
- Finish implementing MVP Node-based Scaffolding, initially targeting web apps #2321
- [builder-web] Build the new initial front page #2181
- Schedule reverse dependency builds when new core packages uploaded #2031
- Add
hab sup term
command and additional aliases tohab
#2419 (reset) - Various Studio Tapas, nom nom #2418 (fnichol)
- Downcases tags used for docker images. #2417 (mattray)
- Improve output of
hab svc status
command #2414 (reset) - [plan-build] Set the ownership of
results/\*
to the same as the Plan. #2413 (fnichol) - Auto update #2410 (reset)
- prevent “API API” in raml titles #2399 (juliandunn)
- Fix package navigation, add status indicators and log coloring #2383 (cnunciato)
- Default to plain log output #2381 (christophermaier)
- Use ANSI color codes in build output #2380 (christophermaier)
- Add a “latest” field to the package versions API response #2372 (raskchanky)
- Fixes homepage scripts and in turn fixes css rendering #2371 (ryankeairns)
- Fix deployment of middleman site #2370 (reset)
- Short-circuit project API processing for non-core origins #2369 (christophermaier)
- Only create new projects in the core origin #2362 (christophermaier)
- Replace BUILDER permission flag with EARLY_ACCESS and enable builder #2360 (reset)
- Rename
hab service
tohab svc
and addhab svc status
#2359 (reset) - Relax authorization checks on Builder API read-only endpoints #2354 (christophermaier)
- Fix builder-worker tests #2352 (reset)
- Automatically determine default publish settings for builder-worker #2347 (reset)
- Add BUILDER_RUNNER_DEBUG env var to builder-worker #2342 (reset)
- Runner tweaks #2339 (christophermaier)
- Start 0.24.0-dev #2323 (reset)
Bug fixes
- Links in the dashboard’s recent-packages list are broken #2346
- Service config not available via API #2250
- Remove uniqueness constraints on keys #2424 (christophermaier)
- ensure keys inserted into postgres remain unique #2382 (mwrock)
- ARM returns u8, x86 i8, changed from hard-coded to whatever libc reco… #2363 (lamont)
- Fully serialize the
pkg
field of the Service struct #2361 (reset) - Render
pkg.ident
as string in RenderContext #2355 (reset) - [studio] Fully canonicalize the Studio root path through symlinks. #2349 (fnichol)
- Fix auth for public keys #2344 (chefsalim)
- Use origin_invitation_id for invitation acceptance #2343 (christophermaier)
- Set proper default path for depot data path in builder-api plan #2333 (reset)
- Fix builder-admin ELB configuration #2332 (reset)
- Always config scheduler & jobsrv with all shards #2329 (reset)