Fetching contributors…
Cannot retrieve contributors at this time
214 lines (154 sloc) 8.56 KB

This is a high level digest of changes. For the complete CHANGELOG diff two tags in the project's commit history.


  • Enhancements

    • Updated out of date dependencies
  • Bug fixes

    • Skip loading of cached cookbooks that do not have a value for metadata
    • SSL Verify option will be respected when communicating to an API server
    • Fixed issue where some commands were unexpectedly crashing instead of informing the user that Git is not installed


  • Enhancements
    • SCM history is now stripped from cookbooks retrieved from an SCM location which will conserve disk space for cookbooks with a large history
  • Bug Fixes
    • Fix formatting issue with console output on some systems
    • Handle crash on install on some machines which do not properly report their number of CPU cores
    • Fix infinite loop in checking if the lockfile is synced under certain conditions
    • Fix console output crash on Windows
    • Fix issue where updating a cookbook would result in a non resolvable lockfile
    • Various spelling mistakes in console output


  • Bug Fixes
    • Fix issue reading metadata which was compiled using an older (bugged) version of Knife
    • Fix issue with incorrectly reporting outdated cookbooks with the outdated command
    • Fix issue uploading some cookbooks which were generated with older metadata


  • Enhancements

    • Added berks viz command which will output a visualized dependency graph
    • Added berks info command which outputs what berks show used to output
    • Changed berks show command to output the filepath where the cookbook is found
    • Improve error output when a solution couldn't be found
  • Bug Fixes

    • Various documentation updates
    • Update description of version command


  • Bug Fixes
    • Installation will no longer fail on machines with just 1 or 2 cores


  • Enhancements

    • New "universe" resolver which communicates with an API server to resolve constraint graphs faster and more reliably
    • berks vendor will now compile cookbook metadata into the cookbook's vendored directory. The raw metadata will not be included in the vendored cookbook to ensure that Chef Client doesn't (wrongly) prioritize the raw metadata over compiled metadata
    • berks vendor now includes the Berksfile.lock alongside the vendored contents
    • berks package will now simply archive the output of berks vendor
  • Bug Fixes

    • Raw metadata will be compiled into metadata.json during vendor process
  • Backwards incompatible changes

    • berks package has had it's argument and options list updated. The first argument is now the name, or fulle path, of the archive file that will be generated. As with before, the first argument is not required.


  • Update constraint on Ridley


  • Backport changes from master to allow detecting cookbooks by metadata.json


  • Lock transitive dependency on Faraday


  • Huge performance increase when resolving a Berksfile when the Berkshelf contains a lot of cookbooks


  • Update required version of Ridley


  • Account for API changes to solve
  • Rescue exceptions when parsing the lockfile
  • Fix deprecation errors


  • Fix crash when parsing a lockfile that contains path locations which no longer exist


  • Fix installation failures due to latest release of ActiveSupport
  • --except and --only will now work with a lockfile present


  • Improve speed of resolution when a lockfile is present
  • Gracefully fail when a lockfile is present but empty
  • Fix issue where locked version was not honored if the cookbook store was empty


  • Fix bug where community cookbooks compressed with bzip2 would not download and install
  • Fix bug regression in Git caching which was previously fixed in 1.4.4
  • Fix validation bug where a cookbook would be considered invalid if any spaces were present in the path to the directory containing the cookbook
  • Fix issues with uploading cookbooks on Windows


  • Fix issue where groups defined in the Berksfile would not be evaluated


  • Fix issue with shellout on Windows. This would effect uploads and downloads of cookbooks using the Git location.
  • The Berksfile DSL now evaluates in a clean room to prevent end-users from calling restricted methods.
  • Fix issue with berks upload -D not properly skipping dependencies
  • Added friendly error message when an unknown license is chosen during cookbook generation


  • Improve performance of berks upload. It will now properly respect the Lockfile
  • Fix debug/verbose logging
  • You can now specify an alternate configuration with -c once again


  • Huge improvements to the Lockfile
    • They actually work!
    • Now in JSON format
    • Old lockfiles will automatically be converted to the new format
  • Add berks shelf command. Any operations on the already installed cookbooks now reside here
    • berks shelf list to list all cookbooks in the Berkshelf
    • berks shelf show to display information about a specific cookbook in the Berkshelf
    • berks shelf uninstall to remove an installed cookbook from the Berkshelf
  • Add berks package command. Will package any cookbooks and dependencies defined in your Berksfile into a tar.
  • Add berks apply command. Take the locked constraints of your lockfile and apply them directly to the an environment's locked cookbook versions.
  • Test-Kitchen integration (beta)
    • Add berks test command. This is a delegator to bin/kitchen
    • Berkshelf's Cookbook generators will by default generate Test-Kitchen files for you
  • Remove berks open command
  • Rename berks info command to berks show


  • Bump Ridley dependency to 0.12, bringing in many bugfixes.


  • Bump Ridley dependency to 0.11, bringing in many bugfixes.


  • Fix git caching bug for huge speedups in Berksfiles with lots of git paths. Thanks to @tylerflint and @jasondunsmore.


  • Berksfile#upload will now honor the given server_url option
  • Add validation to shortnames of 'site' in Berksfile
  • Fix init generator issue by locking to the appropriate version of Rubygems


  • Add ability to freeze cookbooks. Cookbooks are frozen on upload by default
  • Add ability to forcefully upload cookbooks even if they are frozen with the --force option
  • Add berks info command for displaying information about cookbooks in your Berkshelf
  • Add berks contingent command for displaying a list of cookbooks which are dependent upon one another
  • Cookbook generator now has the option of generating chef minispec files (false by default)
  • Fix bug in downloading cookbooks which were packaged as plain tars instead of tar.gzs
  • Path locations will now be relative to the Berksfile they are defined in


  • Support for Vagrant 1.1.x
  • Move Berkshelf Vagrant plugin into it's own repository
  • Added -d flag to output debug information in berks command
  • Various bug fixes in uploading cookbooks


  • Remove Vagrant as a gem dependency
  • Remove Chef as a gem dependency
  • Add retries to downloads/uploads
  • Speed optimizations to resolver
  • Speed optimizations to downloading cookbooks
  • Speed optimizations to uploading cookbooks


new/improved commands

  • berks show command: display the file path for the given cookbook's current version resolved by your Berksfile
  • berks list command: list all of the cookbooks and their versions that are installed by resolving your Berksfile
  • berks outdated command (beta): show any cookbooks which have newer versions that are installed by resolving your Berksfile
  • berks open command [alpha]: like berks show except used to open the cookbook in your configured editor alpha: use at your own risk
  • improved berks upload command: now takes an optional cookbook name, or names, which will upload the target cookbook(s) to the Chef Server
  • improved berks update command: now takes an optional cookbook name, or names, which will update the target cookbook(s) in the Berksfile.lock

bug fixes

  • Improved error output in Vagrant plugin
  • Stack traces will now be replaced by friendly error messages where possible
  • Fix init generator on Ruby 1.9.2
  • Honor 'chefignore' when vendoring cookbooks this will ensure that you aren't putting junk files into your cookbooks if your distributing them for use with Chef-Solo


  • Windows support
  • Easier installation by dropping Gecode requirement
  • Vagrant plugin for a seamless iteration process
  • Berkshelf has it's own configuration file
  • berks configure command
  • Github source location
  • Improved upload/download speed of cookbooks
  • Lots of bug fixes