This page is a stub, and is awaiting more content from a community hero. You could be that hero.
Berkshelf is a dependency management tool for Chef cookbooks. It allows you to exercise as much control as you like over the versions of cookbooks that you care about, selectively update cookbook dependencies, and resolve new dependency set solutions. It can then translate these solutions into chef environment files which effectively pin the cookbook versions.
Berkshelf uses two files to control its behavior. Berksfile is the name of the configuration file, where you specify constraints that are important to you. Because the Berksfile is Ruby, you can include conditional logic to alter the dependency resolution based on build parameters. Once Berkshelf has performed a dependency resolution and found a solution, it saves the solution into Berksfile.lock. It can then use the lock file to reason about how to selectively update the solution when a dependency changes.