RiotGames/berkshelf — pull request #431 by reset (2013-03-21 20:00:52+00:00)
Title: Automatically freeze cookbooks on upload

Cookbooks should be treated as versioned artifacts and once they are published to our Chef Servers, they shouldn't change. It's a really bad experience to have the rug accidentally pulled from underneath you by a co-worker when you have a cookbook version hard locked and it changes unbeknownst to you.

So moving forward cookbooks will automatically be frozen upon upload. The new behavior will be as such:

* All cookbooks will be frozen on upload
* Top level cookbooks described by your Berksfile, not dependencies (anything found in your metadata.rb), will raise a FrozenCookbook error when re-uploaded.
* Dependencies will be skipped past if frozen version are located on the Chef server. This should drastically increase upload speeds.

New flags and options to be added:

* Add a `--no-freeze` option to `upload`. This will change the new default behavior of automatically freezing cookbooks on upload to NOT freeze them.
* slightly mutate the behavior of the `--force` option on `upload`. Force will upload all cookbooks (dependencies included) regardless if there is a frozen cookbook on the remote. This is your "do the fuck what I said" button.