This is an update on the blog post we made a couple weeks back regarding the future of Opscode’s cookbooks and cookbooks repository. We are going to switch master branch to reflect the changes that have been made in the 0.10.0 branch this week. Aside from removal of a number of cookbooks (which has been done in the 0.10.0 branch), we’ve made several other important changes you should be aware of.
Several cookbooks that used search also used an “app_environment” attribute which generally came from a role of the same name. This has been replaced with the node’s chef_environment. If you don’t specify an environment for the node, _default will be used instead. This may have adverse effects if you’re using multiple “environment roles”, so you should be careful about upgrading cookbooks to the newer version. The following cookbooks on the community site do not have this change as of the stated version:
Newer versions of these cookbooks released to the community site will use Chef 0.10’s environments.
If you’re using the cookbook repository directly, the commit for this change in the repository is 93aedac, you’ll want to make sure you have not updated to that commit until you’re ready to use Chef 0.10’s environments.
We maintain cookbook metadata as Ruby DSL files and let knife generate the metadata as JSON. In the updated repository, we have removed the metadata.json files. The reason is, prior to Chef 0.10.0 the metadata was generated in the cookbook directory as “metadata.json” every time a cookbook upload was done. Depending on the local system’s Ruby version, this might cause the file content to be different. When using the Ruby DSL metadata.rb file, there is no need to generate the metadata.json file by knife (cookbook upload and site share commands). To simplify maintenance and prevent these from possibly being forgotten and stale, we simply removed them from the repository. If you prefer the JSON file, you can generate it and remove the metadata.rb file in your own repository.
This change in Chef is reflected by the following tickets:
We’re not quite done, but we’re actively working to make the cookbooks more consistent. What this means:
We’ll continue to work on these tasks after we’ve moved the branches around in the repository.
The branch formerly known as “0.10.0” is now “future”. We’re going to take the following steps with regard to the repository this week.
Once the master branch reflects what we’ve planned here, we’ll maintain “master” as we did before. We’re also going to release new versions of the cookbooks to the Community Site.