Chef 12

This document summarizes our current thinking for the next major version of Chef Client a.k.a. Chef 12 and aims to provide a starting point for discussions on the scope of Chef 12.

Current Chef Client Versions

First some data for information purposes:

Chef Support Statement

As we are getting close to the next major version bump, I think it's important to capture and clarify what "supported" really means in Chef world. Here is an attempt to codify the support statement.

Important: Support in the context of this document means the support we provide as a community to the other members of the community. The goal is to reach a consensus which can guide us as a community in the future. Chef Software Inc. can opt to use the same guidelines when talking about support to its paying customers or decide to extend / restrict the guidelines outlined here.

Supported Chef Versions

At a given time:

Supported Ruby Versions

Operating System Versions

Supported Operating Systems and versions are covered by a separate proposed RFC.

Chef 12

In the context of the above, here is how Chef 12 looks in terms of support and Ruby versions:

Backwards Compatibility

Backwards Compatibility is a very important requirement in Chef Client since it is a critical component in our infrastructures. We adhere to the Semantic Version scheme published here. We strive to be strict about the backwards compatibility during minor version releases. Even though we have the freedom to break backwards compatibility in major version bumps, we believe that there needs to be significant benefits in a given release for us to go through the pain of updating our cookbooks and workstations in order to migrate to a new release without breaking our existing functionality.

With this in mind, feature proposals below are categorized in terms of Breaks Backwards Compatibility?, User Benefit & Impact. As a community we discuss these proposals and decide if the overall backwards compatibility is worth breaking or not during a major version bump.

Feature Proposals

Enable SSL Verification by Default

Guard interpreter default for powershellscript set to powershellscript

Guard interpreter default for batch set to :batch

Remove rest-client Dependency

Require name Attribute in Cookbook Metadata

Enable client-side key generation by default

Add simple DSL method to interact with encrypted data bags

Homebrew As OS X Default Package Provider

Bug Fixes

We are keeping track of the minor things that need to be fixed or included in Chef 12 on GitHub Issues with Milestone: Chef 12. Feel free to check them out or file a new issue there.