Habitat 0.13.0 Released

We are delighted to announce the release of Habitat 0.13.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. Thanks again for using Habitat!

New: hab plan init command

Thanks to our intrepid repeat contributor @Hoverbear, Habitat 0.13.0 includes a hab plan init command to scaffold new build plans. You can use this command in several ways:

  • If you specify no arguments, the command will create a habitat subdirectory in your current directory that contains a skeleton plan. The studio already knows to look for this directory when building new packages.
  • If you specify a new package name (e.g. hab plan init foo), a foo directory will be created with the skeleton plan. This is useful for creating standalone plans such as those that live in core-plans.
  • You can also use the -o flag to specify an origin with which to populate the plan.sh.

We welcome your feedback on this new feature. Please open a GitHub issue if you run into problems or if this doesn’t operate as you expect.

Improved: build command ignores certain types of files by extension

The build command will now ignore certain file extensions that might appear in plan subdirectories. This allows you to leave an editor open while editing plans (either inside or outside the studio) while running the build command in another terminal, without those temporary files ending up in the built package and causing errors.

The default exclusion list is *.sw?, *~, and *.bak. You can also customize this list by setting the environment variable HAB_CONFIG_EXCLUDE to a comma-separated list of file exclusion patterns inside the studio.

Many thanks to first-time community contributor @efyang for this feature.

Improved: build result logs are named more predictably

Build logs are now named after the name of the package as specified in the pkg_name plan variable. For example, building a plan with pkg_name=foo will create a log in results/logs/foo.[timestamp].log. Thanks to community contributor @smcfarlane for contributing this feature. Wave to him in Fairbanks, Alaska!