Ohai Chefs!
I just released ChefSpec 4.0. I realize this may come as a shock since ChefSpec has seemed fairly stale these past few months, but I’ve been working on some awesome stuff incognito.
Breaking Changes:
- Upgraded to RSpec 3! RSpec 3 brings many new API changes and syntaxes
- Bump minimum required Chef version to 11.12! Without this change, Chef Zero will blow up
Bugfixes:
- Gracefully fail if a resource does not report it’s source line in the reporter
- Pull the correct cookbook folder from the stack on Windows (88bfc6)
- Cover resources in render_file matchers for reporting
- Cover resources in link_to matchers for reporting
- Cover resources in do_nothing matchers for reporting
- Fix memory leak in LWRP Resource classes
- Restore the original
cookbook_path
when using librarian-chef - Documentation fixes
- Disable lazy loading of cached resources
- Fix a bug that will happen in later Chef versions because FreeBSD is evil (13ff143)
- Do not pass local file paths to
preferred_filename_on_disk_location
Features:
- Add runner methods for all the bash, csh, perl, etc resources
- Upgraded fauxhai dependency and specs
- Upgrade Chef Zero for multi-org support
Improvements:
- Improved documentation around the
define_runner_method
method - Update badges to be all SVG
- Test on Ruby 2.1
- Use a randomly assigned port for Chef Zero
- Remove references to
.stub
from documentation
I’m going to say this as loudly and bluntly as possible - ChefSpec 4 will not blindly work with existing codebases! The RSpec syntaxes have changed. Some are deprecated, some are completely removed. I’d recommend reading the RSpec 3 upgrade guide for a full list of changes.
As per the deprecation gods of the Internet, 2.0 is no longer officially supported. 3.0 is now in maintenance mode and will only receive backward-compatible patches, but no new features.
Happy testing,
Seth