Chef 0.9.4 Released

Chef 0.9.4 Released

I’m happy to announce another release of Chef. This time around, we found a backwards compatibility issue right after publishing 0.9.2, so we’re moving on up to 0.9.4. These are bugfix releases that address the issues we’ve found since releasing 0.9.0 last week. Fixed in 0.9.2:

  • Chef’s cookbook upload implementation made assumptions about the Rack input that were not valid when running Chef server under Unicorn. Thanks to Joshua Sierles of 37signals for his help troubleshooting this issue. (Ticket)
  • Erik Kastner found an issue where Chef was too strict checking the exit status of the chkconfig command when starting a service for the first time. Thanks, Erik! (ticket)
  • Marek found and fixed a bug in the retry logic for committing a completed cookbook upload.
  • Peter Struijk discovered an issue where Chef was unable to find template files in the cache when running as a daemon and tracked it down to the root cause. Thanks for the detailed bug report, Peter. (ticket)
  • We also resolved an issue where the notification handlers were setup with incorrect data, causing an error when accessing the run status information. (ticket)
  • Finally, we fixed an issue where the template provider was not correctly setting access controls when creating or updating the file’s content. (ticket)

And in 0.9.4, we restored support for accessing the node via the @node instance variable inside a resource declaration. This usage is deprecated and will trigger a warning, but will remain valid indefinitely to make your transition to 0.9 and beyond as smooth as possible.

We always like to include cool new stuff in every release. This time we have init scripts for upstart, courtesy of Dean Strelau, and Slicehost support for knife, courtesy of this release’s MVP, Ian Meyer. In addition to slicehost support, Ian has some great improvements to the knife bootstrap command and cleanup of the Web UI’s internals which you’ll see in the next Chef release. Thanks for all the hard work, Ian.

To everyone who contributed their time reporting bugs, submitting patches, and helping each other on the mailing list and IRC: thanks for making Chef awesome!

Release Notes – Chef – Version 0.9.2


  • [CHEF-1363] – ChefServerApi::SandboxFile assumes input is a StringIO
  • [CHEF-1365] – Expectation of return code 0 is incorrect for chkconfig
  • [CHEF-1373] – TypeError: true can’t be coerced into Fixnum when you upload cookbooks
  • [CHEF-1380] – update chef-server-webui’s gemspec to require merb 1.1.x
  • [CHEF-1381] – Error in reporting error in knife
  • [CHEF-1384] – Template resource looks for the raw template file in the wrong part of the cache
  • [CHEF-1390] – Upstart Script for WebUI runs the wrong command
  • [CHEF-1394] – Notification Handlers are broken
  • [CHEF-1396] – Template provider does not set access controls correctly when creating/updating a file


  • [CHEF-1366] – Add slicehost support to knife
  • [CHEF-1378] – Add Upstart Scripts
  • [CHEF-1388] – Move monkey patches to individual files so they can be required individually

Release Notes – Chef – Version 0.9.4


  • [CHEF-1400] – Need to support deprecated usage of the @node instance variable within resources

Dan DeLeo