Chef's job is to store cookbooks and configuration data, and then give the correct combination to hosts that it knows about. Cookbooks maintain their own notion of a version as well as their dependencies' versions. For this reason, it is important to treat them as artifacts of a source-controlled project and version them appropriately the same way you might version any other software library. Maintaining a predictable versioning scheme helps to ensure compatibility with other cookbooks and reduce conflict and errors when adding new features or refactoring code.
As with any other software project, cookbook versions are typically denoted in the form of MAJOR.MINOR.PATCH
. Major version number changes indicate that the public API is not backwards compatible. For example, deprecation or removal of public functionality or inconsistent behavior of public APIs would be good reasons to make a major version update. In contrast, minor version numbers are incremented when...