Chef 0.9.14 Released

We’re excited to release Chef 0.9.14, with over 65 resolved bugs and improvements.

With 0.10.0 right around the corner, we have been spending some extra time triaging tickets lately. Functionality changes and major new features are heading into 0.10 while 0.9 will continue forward as our stable branch for three months after 0.10.0 is released. Most of the issues in this release resolve bugs in existing functionality, but there are a few improvements as well. Expect to see news about 0.10 in the next couple of weeks.

Gilles Devaux contributed python 2.6 support and provided some fixes to the easy_install provider. We really appreciate his continued support of Python in Chef, so he is our 0.9.14 MVP!

Knife received fixes to ssh tmux, ssh macterm, status and others. There is also an important fix to knife purge to help clean up the database if you have deleted cookbook files locally. This release  is compatible with Fog 0.6.0; the references to deprecated classes have been removed. Thanks go out to past MVP Tollef Fog Heen and Sean O’Meara for their contributions to knife.

Bugs in the git provider related to existing and non-existing repositories were fixed. Additionally, an issue with the subversion provider not being idempotent was resolved.

Chef continues to get expanded support for other distributions and operating systems. Past MVP Renaud Chaput’s continued FreeBSD work discovered an important bug in shell_out that prevented the working directory from being correctly set. Further support for Arch Linux has been added with init scripts and an improved knife bootstrap template. Your favorite Windows Chef and past MVP Doug MacEachern resolved an issue with chef-client hanging on Windows and Grzegorz Marszałek resolved an issue with the way file checksums were calculated on windows.

The latest stable release of Debian Linux uses insserv for its init system, so support for that has been added. There were also fixes for disabling and enabling services on earlier Debian releases and Ubuntu. We discovered that Yum doesn’t exit with an error code if it fails to achieve the desired action, so we provided a workaround.

There are many more fixes as well! A special thanks goes out to those community members who helped test this release, your help testing means the world to us. Browse through the release notes below for more information and stay tuned for upcoming Chef 0.10.0 and Ohai releases.

[CHEF-1276] – Apt package provider doesn’t distinguish between installed and available versions in the debug messages
[CHEF-1292] – JSON nesting error is not indicated in user interfaces
[CHEF-1407] – changes in update-rc.d breaks Chef::Provider::Service::Debian
[CHEF-1445] – knife rackspace server creation should use bootstrap subcommand
[CHEF-1562] – Knife should not issue warnings when successfully updating a role
[CHEF-1584] – redhat init.d chef-client script does not write pidfile
[CHEF-1587] – node.recipe? was removed no easy way to check for included recipes
[CHEF-1633] – does not work on centos with python 2.6
[CHEF-1634] – easy_install provider can’t install some packages
[CHEF-1660] – Create init scripts for archlinux
[CHEF-1679] – Service provider on Windows does not acknowledge failure
[CHEF-1691] – Javascript alert message when deleting a client is wrong
[CHEF-1692] – knife status crash
[CHEF-1703] – Xenserver is not listed in platform
[CHEF-1715] – Add support for Blue Box Group Blocks
[CHEF-1717] – knife cookbook show fails to display file / part contents
[CHEF-1718] – create artifacts for testing apt repository in feature tests
[CHEF-1727] – knife using deprecated fog syntax as of fog 0.3.7
[CHEF-1758] – improve arch bootstrap script
[CHEF-1763] – make knife ec2 support :region in config
[CHEF-1765] – make knife ec2 support :availability_zone in config
[CHEF-1769] – improve chef-solr startup detection in debian init script
[CHEF-1781] – IOError – closed stream in erl_call provider
[CHEF-1794] – Cannot disable services on debian lenny
[CHEF-1801] – Add rake tasks to generate the GEMNAME.gemspec files and check them in to git
[CHEF-1802] – chef server broken with rack-1.2.1
[CHEF-1803] – file mode regex is overly restrictive
[CHEF-1807] – run_interval functional test sometimes waits indefinitely for the child chef-client to exit
[CHEF-1832] – knife status should handle a null ohai_time instead of failing noisily
[CHEF-1834] – debian service provider cannot enable a disabled service
[CHEF-1835] – run_interval feature test is unreliable as it depends on ps|grep for determining the chef-client child process
[CHEF-1836] – knife cookbook purge fails if checksum documents are missing from couchdb
[CHEF-1844] – A node’s attributes says it is a kind_of? Hash but does not support all Hash methods
[CHEF-1845] – Git Provider fails when the directory you want to clone the repo to already exists
[CHEF-1850] – In features couchdb replicate change debug level of message about retrying of couchdb DB create
[CHEF-1851] – Features tests will sometimes fail at beginning due to 412 from creating chef_integration; retrying solves it.
[CHEF-1853] – Debian init scripts for chef-client don’t pass on $PIDFILE option
[CHEF-1858] – Modify load path and use a standard require instead of path-based require in chef.gemspec
[CHEF-1861] – chef-client hanged on windows after running around 100 times
[CHEF-1866] – @api_search features tests don’t work
[CHEF-1868] – Centos bootstrap template references non-existant URL for EPEL repo
[CHEF-1878] – WebUIUser design documents are not created when running feature tests making WebUI unusable
[CHEF-1892] – issues with easy_install package installation status and version
[CHEF-1905] – Numeric#fdiv is not available on ruby 1.8.6
[CHEF-1919] – knife bootstrap throws uninitialized constant Net::SSH (NameError)
[CHEF-1925] – Data Bag Item inspect is not verbose enough
[CHEF-1926] – Git Provider has a confusing error message when accessing a non-existant repo over http(s)
[CHEF-1930] – Subversion resource fails if the destination directory isn’t already a working copy
[CHEF-1932] – Knife SSH macterm error prone
[CHEF-1937] – Teach knife ssh tmux not to craete empty windows and to keep separate invocations in separate tmux sessions
[CHEF-1938] – chef/distro boot scripts for archlinux
[CHEF-1954] – Shef in client mode reports that it’s in solo mode
[CHEF-1955] – Shef does not correctly configure Chef::Cookbook::FileVendor causing template and cookbook file resources to fail.
[CHEF-1984] – shell_out! does not respect :cwd
[CHEF-1988] – DataBagItem.load returns a Hash and not a DataBagItem
[CHEF-2002] – subversion provider checkout action not idempotent
[CHEF-2013] – Ability to specify the branch to merge back to when performing a knife cookbook vendor
[CHEF-2033] – verbose logger
[CHEF-2040] – erl_call doesnt cause exception when code fails
[CHEF-2046] – files are constatly downloaded from server (windows)
[CHEF-2057] – Rename Chef::JSON to avoid conflict with ::JSON class
[CHEF-2062] – yum provider claims to install nonexistent versions if specified
[CHEF-2066] – In some conditions the retry logic in rest.register method causes unbalance of client keypair
[CHEF-2080] – Shell_out should not set @cwd to Dir.tmpdir by default
[CHEF-2081] – yum provider fails to correctly select packages when arch is provided
[CHEF-2083] – unexpected nil referring to prior revision in git provider called from deploy provider

Bryan McLellan