This is a high level digest of changes. For the complete CHANGELOG diff two tags in the project's commit history.
-
Enhancements
- Have berks install bump only required cookbooks
- Upgrade to solve 2.0 and use Gecode as the engine
- Add a new
solver
Berksfile DSL option - remove berkshelf gem entry in generated Gemfile
- Run Chef proxy tests on Travis
- Updating Test Kitchen to 1.5.0 and running bundle update
-
Bug Fixes
- Use Net::HTTP.new instead of Net::HTTP.start to ensure environmental proxy settings are picked up
- Remove new cucumber and aruba warnings
- Pin aruba to 0.10.2
- Update
berkshelf-api-client
constraint to~> 2.0
- Drop support for Ruby 1.9
- Switch from
net_http_client
tohttpclient
Faraday adapter for all HTTP communication
- Enhancements
- Use httpclient in place of Ruby stdlib NetHTTP for http communication
- Clarify decompression error messages
- Bug Fixes
- Fix issue where older version of a cookbook would be presented as the latest available version from a remote API server's cache
- Exclude git directories when vendoring
- Fix a race condition in downloading cookbooks from Github or a URI location
- Bug Fixes
- Specifying the --skip-syntax-check flag to upload will once again cause validations to be skipped
-
Enhancements
- Use chef.io hostname in urls instead of getchef
-
Bug Fixes
- Fix syntax issue in generated Vagrantfile
- Only exclude the top level metadata.rb file when vendoring cookbooks rather than all files named metadata.rb
- Relative paths can now be passed to berks vendor
- Bug Fixes
- Fix issue with copying raw metadata when vendoring / packaging.
- Berkshelf should cleanup any temporary directories it creates. There is still work to be done in any of Berkshelf's dependencies.
-
Improvements
- Add version information to edges of generated visualization graph
- Bump to latest full release of Celluloid
- Updated some errors to include more information about what went wrong / how to make it better
- Lockfiles will be named after the name of the Berksfile, not always Berksfile.lock
- Vendoring will now sync files between two directories instead of deleting the target and it's contents
- Add support for downloading from Berkshelf-API file_store location
- Add
berks verify
command to validate Ruby syntax, ERB templates, and file names of cookbooks
-
Bug Fixes
- Fixed a number of typos and documentation errors
- Fix running
berks viz
when pwd has spaces in it - Fix checking for graphviz on Windows
- Remove PaxHeader files before uploading
- BERKSHELF_PATH will always be fully expanded regardless of how it is configured
-
Deprecations
- vagrant.omnibus.enabled configuration option is now deprecated
- Bug Fixes
- Supermarket endpoint is now an alias for Opscode endpoint
- Set proper default value for supermarket api endpoint
-
Improvements
- Update the default vagrant box from the generators to Ubuntu 14.04 (formerly 12.04 EOL)
-
Bug Fixes
- Handle the case where a remote source had been removed but still existed in the lockfile
- Follow redirects (HTTP -> HTTPS) in all requests
-
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 whatberks 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
- Added
-
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 metadataberks vendor
now includes the Berksfile.lock alongside the vendored contentsberks package
will now simply archive the output ofberks 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 hereberks shelf list
to list all cookbooks in the Berkshelfberks shelf show
to display information about a specific cookbook in the Berkshelfberks 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 tobin/kitchen
- Berkshelf's Cookbook generators will by default generate Test-Kitchen files for you
- Add
- Remove
berks open
command - Rename
berks info
command toberks 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
berks show
command: display the file path for the given cookbook's current version resolved by your Berksfileberks list
command: list all of the cookbooks and their versions that are installed by resolving your Berksfileberks outdated
command (beta): show any cookbooks which have newer versions that are installed by resolving your Berksfileberks open
command [alpha]: likeberks 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
- 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