Skip to content

Latest commit

 

History

History
832 lines (641 loc) · 55.8 KB

CHANGELOG.md

File metadata and controls

832 lines (641 loc) · 55.8 KB

1.4.1 / 2015-06-18

Potentially breaking changes

Bug fixes

  • Issue #663, PR #665: Centos 6.4 no longer supported, upgrade in templates for kitchen init (@lloydde)
  • PR #711: Update to Ubuntu 14.04 and Centos 7.1 for kitchen init (@fnichol)
  • PR #734: Fix failing kitchen driver discover test (@fnichol)
  • Issue #732, PR #737: Generate a chefignore file during kitchen init (@metadave)
  • Issue #688, PR #728 and #736: Default WinRM username updated to administrator and additional errors caught for retry logic when trying to login with WinRM (@zl4bv, @tyler-ball)

New features

Improvements

  • PR #704: Don't prompt for passwords when using public key auth (@caboteria)

1.4.0 / 2015-04-28

(A selected roll-up of 1.4.0 pre-release changelogs)

Potentially breaking changes

Note:: while a huge amount of effort has gone into preserving backwards compatibility, there could be issues when running this release using certain Drivers and Provisioners, especially ones that are deeply customized. Drivers that inherit directly from Kitchen::Driver::Base may need to be updated, while Driver that inherit directly from Kitchen::Driver::SSHBase should continue to operate as before. Other libraries/addons/plugins which patch internals of Test Kitchen's code may break or work differently and would be extremely hard to preserve while adding new functionality. Sadly, this is a tradeoff.

  • Drivers are no longer responsible for converge, setup, verify, and login actions. The updated Driver API contract (Driver::Base) only requires implementing the #create and #destroy methods, same as before. However, for Drivers that directly inherit from Kitchen::Driver::Base, any custom #converge, #setup, #verify, or #login_command methods will no longer be called. (@fnichol)
  • Drivers which inherit directly from Kitchen::Driver::SSHBase are now considered "Legacy Drivers" as further improvements for these Drivers may not be available in future releases. The previous behavior is preserved, i.e. the Driver's #converge, #setup, and #verify methods are called and all methods signatures (and relative behavior) is preserved. (Driver::SSHBase, Commit notes) (@fnichol)
  • Provisioners are now self-aware, completely owning the converge action. The original public methods of the Base Provisioner are maintained but are now invoked with a #call(state) method on the Provisioner object. Provisioner authors may elect to implement the command and sandbox methods, or re-implement the #call method which may not call any of the previously mentioned methods. (Provisioner::Base, Commit notes) (@fnichol)
  • Transport are not responsible for the login command. (Commit notes) (@fnichol)
  • Busser is now a plugin of type Verifier (see below for details on Verifiers). Any external code that directly creates a Kitchen::Busser object will fail as the class has moved to Kitchen::Verifier::Busser. Any external code that directly invokes Busser's #sync_cmd will log a warning and will not transfer test files (authors of plugins may now call instance.transport(state).upload(locals, remote) in its place). (@fnichol)
  • Verifiers are responsible for the verify action. (Commit notes) (@fnichol)
  • Pull request #649: Preserve Busser's #setup_cmd, #run_cmd, & #sync_cmd for better backwards compatibility. (@fnichol)
  • Pull request #672: Extract WinRM-dependant code from Transport::Winrm into the winrm-transport gem, meaning that WinRM support is now a soft dependency of Test Kitchen, similar to Berkshelf and Librarian-Chef. This means the first time a Winrm Transport is requested, a kitchen command will crash with a UserError message instructing the user to install the winrm-transport gem. Existing projects which do not use the Winrm Transport will be unaffected and have no extra gem dependencies to manage. (@fnichol)

Bug fixes

  • Issue #656, pull request 669: Move ObjectSpace finalizer logic into CommandExtractor to close the last opened remote shell on shutdown for Winrm Transport. (@fnichol)
  • Issue #611, pull request #673: Ensure that secret key is deleted before converge for chef_zero and chef_solo Provisioners. (@fnichol)
  • Issue #389, pull request #674: Expand path for :ssh_key if provided in kitchen.yml for Ssh Transport. (@fnichol)
  • Pull request #653: Consider :require_chef_omnibus = 11 to be a modern version for Chef Provisioners. (@fnichol)

New features

  • ChefZero Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with /^win/). (Provisioner::ChefZero) (@fnichol)
  • ChefSolo Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with /^win/). (Provisioner::ChefSolo) (@fnichol)
  • Shell Provisioner supports PowerShell scripts in addition to Bourne shell scripts (Provisioner::Shell) (@fnichol)
  • Platform operating system and shell hinting: By default, Windows platform names (case insensitive platform names starting with /^win/) will have :os_type set to "windows" and :shell_type set to "powershell". By default, non-Windows platform names will have :os_type set to "unix" and :shell_type set to "bourne". The methods #windows_os?, #unix_os?, #powershell_shell?, #bourne_shell?, and #remote_path_join are available for all Driver, Provisioner, Verifier, and Transport authors. (@fnichol)
  • New plugin type: Transport, which executes commands and transfers files to remote instances. (Transport::Base) (@afiune, @mwrock, @fnichol)
  • New Transport: WinRM: which re-uses a remote shell to execute commands and upload files over WinRM. Currently non-SSL/plaintext authentication only. (Transport::Winrm) (@afiune, @mwrock, @fnichol)
  • New Transport: SSH, which re-uses one SSH connection where possible. Improvements such as keepalive, retries, and further configuration attributes are included. This replaces the more general Kitchen:SSH class, which remains in the codebase for plugins that call this class directly. (Transport::Ssh) (@fnichol)
  • New plugin type: Verifier, which executes post-convergence tests on the instance. Busser is now a Verifier. (Verifier::Base) (@fnichol)
  • Add API versioning metadata to all plugin types. (@fnichol)
  • Pull request #667, pull request #668: Add plugin diagnostics, exposed via kitchen diagnose. (@fnichol)
  • Pull request #675, issue #424: Add default :compression & :compression_level configuration attributes to Ssh Transport.
  • Pull request #651, issue #592, issue #629, issue #307: Add :sudo_command to Provisioners, Verifiers, & ShellOut. (@fnichol)

Improvements

  • In addition to supporting setting http_proxy and https_proxy environment variables when :http_proxy and :https_proxy are set in Provisioner and Verifier blocks, HTTP_PROXY and HTTPS_PROXY environment variables will also be set/exported in ChefZero/ChefSolo Provisioners and Busser Verifier. (@fnichol)
  • Pull request #600, pull request #633, issue #85: Add --log-overwrite flag to CLI anywhere --log-level is accepted. By default it is true and will clear out the log every time Test Kitchen runs. To disable this behavior pass --log-overwrite=false or --no-log-overwrite. You can also configure this with the environment variable KITCHEN_LOG_OVERWRITE. (@tyler-ball)
  • Refactor "non-trivial" (i.e. more than a line or two) Bourne and PowerShell code bodies into static files under support/ for better code review by domain experts. (@fnichol)
  • Pull request #530, issue #429: Stop uploading empty directories. (@whiteley)
  • Pull request #588: Change getchef.com to chef.io in ChefZero and ChefSolo Provisioners. (@jdmundrawala)
  • Pull request #658, issue #654: Updated for sh compatibility based on install.sh code which supports more platforms including Solaris. (@scotthain, @curiositycasualty, @fnichol)
  • Pull request #652, pull request #666, issue #556: Support symbol values in solo.rb & client.rb for chef_zero and chef_solo Provisioners. (@fnichol)

1.4.0.rc.1 / 2015-03-29

Potentially breaking changes

  • Pull request #672: Extract WinRM-dependant code from Transport::Winrm into the winrm-transport gem, meaning that WinRM support is now a soft dependency of Test Kitchen, similar to Berkshelf and Librarian-Chef. This means the first time a Winrm Transport is requested, a kitchen command will crash with a UserError message instructing the user to install the winrm-transport gem. Existing projects which do not use the Winrm Transport will be unaffected and have no extra gem dependencies to manage. (@fnichol)

Bug fixes

  • Issue #656, pull request 669: Move ObjectSpace finalizer logic into CommandExtractor to close the last opened remote shell on shutdown for Winrm Transport. (@fnichol)
  • Issue #611, pull request #673: Ensure that secret key is deleted before converge for chef_zero and chef_solo Provisioners. (@fnichol)
  • Issue #389, pull request #674: Expand path for :ssh_key if provided in kitchen.yml for Ssh Transport. (@fnichol)
  • Pull request #653: Consider :require_chef_omnibus = 11 to be a modern version for Chef Provisioners. (@fnichol)

New features

  • Add API versioning metadata to all plugin types. (@fnichol)
  • Pull request #667, pull request #668: Add plugin diagnostics, exposed via kitchen diagnose. (@fnichol)
  • Pull request #675, issue #424: Add default :compression & :compression_level configuration attributes to Ssh Transport.
  • Pull request #651, issue #592, issue #629, issue #307: Add :sudo_command to Provisioners, Verifiers, & ShellOut. (@fnichol)

Improvements

  • Pull request #658, issue #654: Updated for sh compatibility based on install.sh code which supports more platforms including Solaris. (@scotthain, @curiositycasualty, @fnichol)
  • Pull request #652, pull request #666, issue #556: Support symbol values in solo.rb & client.rb for chef_zero and chef_solo Provisioners. (@fnichol)

1.4.0.beta.2 / 2015-03-25

Potentially breaking changes

  • Pull request #649: Preserve Busser's #setup_cmd, #run_cmd, & #sync_cmd for better backwards compatibility. (@fnichol)

Bug fixes

  • Pull request #648: Transport::Winrm: Truncate destination file for overwriting. (@fnichol)

1.4.0.beta.1 / 2015-03-24

Potentially breaking changes

Note:: while a huge amount of effort has gone into preserving backwards compatibility, there could be issues when running this release using certain Drivers and Provisioners, especially ones that are deeply customized. Drivers that inherit directly from Kitchen::Driver::Base may need to be updated, while Driver that inherit directly from Kitchen::Driver::SSHBase should continue to operate as before. Other libraries/addons/plugins which patch internals of Test Kitchen's code may break or work differently and would be extremely hard to preserve while adding new functionality. Sadly, this is a tradeoff.

  • Drivers are no longer responsible for converge, setup, verify, and login actions. The updated Driver API contract (Driver::Base) only requires implementing the #create and #destroy methods, same as before. However, for Drivers that directly inherit from Kitchen::Driver::Base, any custom #converge, #setup, #verify, or #login_command methods will no longer be called. (@fnichol)
  • Drivers which inherit directly from Kitchen::Driver::SSHBase are now considered "Legacy Drivers" as further improvements for these Drivers may not be available in future releases. The previous behavior is preserved, i.e. the Driver's #converge, #setup, and #verify methods are called and all methods signatures (and relative behavior) is preserved. (Driver::SSHBase, Commit notes) (@fnichol)
  • Provisioners are now self-aware, completely owning the converge action. The original public methods of the Base Provisioner are maintained but are now invoked with a #call(state) method on the Provisioner object. Provisioner authors may elect to implement the command and sandbox methods, or re-implement the #call method which may not call any of the previously mentioned methods. (Provisioner::Base, Commit notes) (@fnichol)
  • Transport are not responsible for the login command. (Commit notes) (@fnichol)
  • Busser is now a plugin of type Verifier (see below for details on Verifiers). Any external code that directly creates a Kitchen::Busser object will fail as the class has moved to Kitchen::Verifier::Busser. Any external code that directly invokes Busser's #sync_cmd will log a warning and will not transfer test files (authors of plugins may now call instance.transport(state).upload(locals, remote) in its place). (@fnichol)
  • Verifiers are responsible for the verify action. (Commit notes) (@fnichol)

New features

  • ChefZero Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with /^win/). (Provisioner::ChefZero) (@fnichol)
  • ChefSolo Provisioner supports Windows paths and PowerShell commands and works with the WinRM Transport (default behavior for Platform names starting with /^win/). (Provisioner::ChefSolo) (@fnichol)
  • Shell Provisioner supports PowerShell scripts in addition to Bourne shell scripts (Provisioner::Shell) (@fnichol)
  • Platform operating system and shell hinting: By default, Windows platform names (case insensitive platform names starting with /^win/) will have :os_type set to "windows" and :shell_type set to "powershell". By default, non-Windows platform names will have :os_type set to "unix" and :shell_type set to "bourne". The methods #windows_os?, #unix_os?, #powershell_shell?, #bourne_shell?, and #remote_path_join are available for all Driver, Provisioner, Verifier, and Transport authors. (@fnichol)
  • New plugin type: Transport, which executes commands and transfers files to remote instances. (Transport::Base) (@afiune, @mwrock, @fnichol)
  • New Transport: WinRM: which re-uses a remote shell to execute commands and upload files over WinRM. Currently non-SSL/plaintext authentication only. (Transport::Winrm) (@afiune, @mwrock, @fnichol)
  • New Transport: SSH, which re-uses one SSH connection where possible. Improvements such as keepalive, retries, and further configuration attributes are included. This replaces the more general Kitchen:SSH class, which remains in the codebase for plugins that call this class directly. (Transport::Ssh) (@fnichol)
  • New plugin type: Verifier, which executes post-convergence tests on the instance. Busser is now a Verifier. (Verifier::Base) (@fnichol)

Improvements

  • In addition to supporting setting http_proxy and https_proxy environment variables when :http_proxy and :https_proxy are set in Provisioner and Verifier blocks, HTTP_PROXY and HTTPS_PROXY environment variables will also be set/exported in ChefZero/ChefSolo Provisioners and Busser Verifier. (@fnichol)
  • Pull request #600, pull request #633, issue #85: Add --log-overwrite flag to CLI anywhere --log-level is accepted. By default it is true and will clear out the log every time Test Kitchen runs. To disable this behavior pass --log-overwrite=false or --no-log-overwrite. You can also configure this with the environment variable KITCHEN_LOG_OVERWRITE. (@tyler-ball)
  • Refactor "non-trivial" (i.e. more than a line or two) Bourne and PowerShell code bodies into static files under support/ for better code review by domain experts. (@fnichol)
  • Pull request #530, issue #429: Stop uploading empty directories. (@whiteley)
  • Pull request #588: Change getchef.com to chef.io in ChefZero and ChefSolo Provisioners. (@jdmundrawala)

1.3.1 / 2015-01-16

Bug fixes

  • Pull request #581, issue #580: Fix omnibus install argument passing bug with missing space character. (@fnichol, @tknerr)

Improvements

1.3.0 / 2015-01-15

Upstream changes

  • Pull request #558, pull request #557: Update omnibus download URL to chef.io. (@scarolan)
  • Pull request #531, pull request #521: Update mixlib-shellout dependency to be greater or equal to 1.2 and less than 3.0. (@lamont-granquist)

Bug fixes

  • Pull request #555, issue #524, issue #343: (Breaking) Correct global YAML merge order to lowest (from highest).
  • Pull request #416: Use Gem::GemRunner to install drivers with kitchen init generator (addresses opscode/chef-dk#20). (@mcquin)
  • Pull request #399: Sleep before retrying SSH#establish_connection. (@fnichol)
  • Pull request #527: Rescue SSH authentication failures to use retry/timeout connection logic. (@chrishenry)
  • Pull request #363: Ensure that integer chef config attributes get placed in solo.rb/client.rb properly. (@benlangfeld, @sethvargo)
  • Pull request #431: Check for zero byte state files. (@rhass)
  • Pull request #554, pull request #543: Replace / with - in Instance names, allowing instance names to be used as server hostnames in most cases. (@grubernaut, @fnichol)

New features

  • Pull request #373: Add new subcommand 'exec'. (@sawanoboly)
  • Pull request #397: Introduce the :chef_zero_port config attribute to the chef_zero provisioner. (@jtgiri)
  • Pull request #381, pull request #456: Add configurable defaults for chef-solo, chef-client, and chef omnibus paths. (@sethvargo, @robcoward, @fnichol)
  • Pull request #489: Introduce the :chef_omnibus_install_options config attribute to be able to pass additional arguments to the Chef installer script. (@ringods)
  • Pull request #549: Introduce the :chef_zero_host config attribute to the chef_zero provisioner. (@jochenseeber)
  • Pull request #454: Customize :ssh_timeout and :ssh_retries. (@ekrupnik)
  • Pull request #510, issue #166: Add support for site-cookbooks when using Librarian. (@jstriebel)

Improvements

  • Pull request #427: Backfilling spec coverage and refactoring: technical debt edition. Epically huge, finally complete. (@fnichol)
  • Pull request #478, issue #433, issue #352: Buffer Logger output & fix Chef run output formatting. (@fnichol)
  • Pull request #481: Disable color output when no TTY is present. (@fnichol)
  • Pull request #526, pull request #462, issue #375: Die on kitchen login if instance is not created. (@daniellockard, @fnichol)
  • Pull request #504: Fix 2 tests in SSHBase to reflect their intent. (@jgoldschrafe)
  • Pull request #450: Update help description for CLI subcommands. (@MarkGibbons)
  • Pull request #477: Bump 'kitchen help' into new Usage section in README and add how to use "-l". (@curiositycasualty)
  • Pull request #567: Pass the template filename down to Erb for __FILE__ et al. (@coderanger)
  • Pull request #498: Fix doc comment in Kitchen::Loader::YAML.new. (@jaimegildesagredo)
  • Pull request #507: Clarify comments in configuration loader. (@martinb3)
  • Pull request #366: Fix glaring "Transfering" -> "Transferring" typo. (@srenatus)
  • Pull request #457: Fix "confiuration" -> "configuration" typo in README. (@michaelkirk)
  • Pull request #370: Use Ruby 2.1 instead of 2.1.0 for CI. (@justincampbell)

Heads up

  • Drop Ruby 1.9.2 from TravisCI build matrix (support for Ruby 1.9.2 will be a "best effort"). (@fnichol)

1.2.1 / 2014-02-12

Bug fixes

  • Issue #357, pull request #358: Load needed (dynamic) dependencies for provisioners at creation time to prevent any native or dynamic code being loaded in a non-main thread (an issue on Mac with MRI Ruby 1.9/2.0). (@fnichol)

Improvements

  • Pull request #358: Output the loaded version of Berkshelf or Librarian-Chef when converging to better help troubleshooting issues. (@fnichol)

1.2.0 / 2014-02-11

Upstream changes

Bug fixes

  • Pull request #353: Ensure that a chef-client failure returns non-zero exit code for chef-client-zero.rb shim script. (@kamalim)
  • Pull request #318: Upload chef clients data. (@jtimberman)
  • Issue #282, issue #316: [CLI] Match a specific instance before trying to find with a regexp. (@fnichol)
  • Issue #305: Ensure that kitchen help exits non-zero on failure. (@fnichol)
  • Pull request #296: Fixing error when using more than one helper. (@jschneiderhan)
  • Pull request #313: Allow files in subdirectories in "helpers" directory. (@mthssdrbrg)
  • Pull request #309: Add /opt/local/bin to instance path when installing Chef Omnibus package. Smartmachines need this otherwise curl can't find certificates. (@someara)
  • Pull request #283, pull request #287, pull request #310: Fix failing minitest test on Windows. (@rarenerd)
  • Fix testing regressions for Ruby 1.9.2 around YAML parsing. (@fnichol)

New features

  • Pull request #286: Experimental Basic shell provisioner, first non-Chef addition! Still considered experimental, that is subject to change between releases until APIs stabilize. (@ChrisLundquist)
  • Pull request #293, pull request #277, issue #176: Add --concurrency option to specify number of multiple actions to perform at a time. (@ryotarai, @bkw)
  • Support --concurrency without value, defaulting to all instances and begin to deprecate --parallel flag. (@fnichol)
  • Pull request #306, issue #304: Add local & global file locations with environment variables (KITCHEN_LOCAL_YAML and KITCHEN_GLOBAL_YAML). (@fnichol)
  • Pull request #298: Base provisioner refactoring to start accommodating other provisioners. For more details, see #298. (@fnichol)

Improvements

  • Pull request #280: Add json_attributes: true config option to ChefZero provisioner. This option allows a user to invoke chef-client without passing the generated JSON file in the --json-attributes option. (@fnichol)
  • Make kitchen login work without args if there is only one instance (thank goodness). (@fnichol)
  • Issue #285: Greatly improved error recovery & reporting in Kitchen::Loader::YAML. (@fnichol)
  • Pull request #303: Use SafeYAML.load to avoid YAML monkeypatch in safe_yaml. This will leave YAML loading in Test Kitchen as implementation detail and avoid polluting other Ruby objects. (@fnichol)
  • Pull request #302: CLI refactoring to remove logic from cli.rb. (@fnichol)
  • Add Ruby 2.1.0 to TravisCI testing matrix. (@fnichol)

1.1.1 / 2013-12-08

Bug fixes

  • Normalize driver, provisioner, & busser blocks when merging raw YAML. (@fnichol)
  • Issue #276, issue #278: Ensure Busser#local_suite_files only rejects chef data dirs. (@fnichol)
  • Pull request #275: Fix SSH 'Too many authentication failures' error. (@zts)
  • When copying ./cookbooks, conditionally check for ./site-cookbooks. (@fnichol)

Improvements

  • Improve kitchen diagnose when loader data merging fails. (@fnichol)

1.1.0 / 2013-12-04

Default updates

  • Set Busser[:sudo] to true by default (formerly set to false by default). (@fnichol)

Improvements

1.0.0 / 2013-12-01

Bug fixes

  • Ensure Kitchen::Busser can stream multiple files (split with ;). (@fnichol)

1.0.0.rc.2 / 2013-11-30

Changes

  • Generate a more explict form for driver & provisioner in kitchen init. (@fnichol)
  • Set Busser[:sudo] to false by default. (@fnichol)

Bug fixes

  • Properly handle encrypted_data_bag_secret_key_path under a suite. (@fnichol)
  • Pull request #265: Busser Fixes for Greybeard UNIX. (@schisamo)
  • Pull request #265: Busser config key name is sudo not use_sudo. (@schisamo)

New features

  • Add diagnostic facility to Test Kitchen, usable with kitchen diagnose. (@fnichol)

Improvements

  • Pull request #266: Generate more a helpful error when supplying an invalid Regexp with CLI. (@fnichol)
  • Improve logging of file transfers to instances in converge action. (@fnichol)
  • Add feature test coverage for kitchen list subcommand. (@fnichol)

1.0.0.rc.1 / 2013-11-28

Changes

  • Busser now installs into /tmp/busser by default on instances. (@fnichol)
  • Test Kitchen now works out of /tmp/kitchen for all providers by default. (@fnichol)
  • Remove Chef Omnibus GEM_PATH inclusion in Busser GEM_PATH. This fully isolates Busser and its runner plugins to a GEM_HOME and GEM_PATH in <busser_root_path>/gems. (@fnichol)
  • Add --provisioner to kitchen init to override default, chef_solo. (@fnichol)

Bug fixes

  • Issue #240, issue #242, pull request #258: Fix Busser and Chef Zero sandboxing so that each tool is completely isolated from the Omnibus packages gems and each other. (@fnichol, @schisamo)

New features

  • Beef up Provisioners so that they resemble Drivers with user, default, inherited, and computed configuration..
  • Use chef-client -z (local mode) with ChefZero Provisioner for Chef versions >= 11.8.0. Support older versions of Chef with a best-effort fallback shim to use chef-zero. (@fnichol)
  • kitchen list --debug mode greatly improved showing rendered configuration for each Instance's Driver, Provisioner, and Busser configuration. (@fnichol)
  • Pull request #249: Add a data_path which will be sync'd to the instance in the same manner as roles and data bags. (@oferrigni)
  • Test Kitchen no longer requires a cookbook to run; kitchen init anywhere! (@fnichol)
  • All settings in solo.rb (for ChefSolo) and client.rb (for ChefZero) can be modified or added with a solo_rb: or client_rb: block inside a provisioner: block. (@fnichol)
  • Add :ruby_bindr in a busser config block to set Busser's alternative remote path to Ruby. (@fnichol)
  • Busser install root can be configured and is relocatable, defaults to /tmp/busser. (@fnichol)
  • Test Kitchen root can be configured and is relocatable, defaults to /tmp/kitchen. (@fnichol)
  • Support installing a specific version of Busser. (@fnichol)

Improvements

  • Greatly simplify default .kitchen.yml. (@fnichol, @sethvargo)
  • Massive internal refactoring data manipulation logic. Data code now lives in Kitchen::DataMunger and was properly TDD'ed from the ground up with a full test suite. (@fnichol)
  • require_chef_ommnibus will default to true for all Chef provisioners and so can be omitted from .kitchen.yml files in most cases. (@fnichol)
  • Pull request #262: Use a configurable glob pattern to select Chef cookbook files. (@fnichol)
  • Pull request #141: Do not create a gitignore if there is no git repo. (@sethvargo)
  • Improve kitchen init smarts for detecting gems already in Gemfile. (@fnichol)
  • Expand all Chef-related local paths in Provisioner::ChefBase. (@fnichol)
  • Issue #227: Handle absolute paths. (@sethvargo)
  • Cope with nil values for run_list and attributes entries in .kitchen.yml. (@fnichol)
  • Allow for nil values for provisioner:, driver:, & busser:. (@fnichol)
  • Pull request #253: Fix TravisCI badges. (@arangamani)
  • Pull request #254: Update references to test-kitchen org. (@josephholsten)
  • Pull request #256: Changed 'passed' to 'passing' in the Destroy options documentation. (@scarolan)
  • Pull request #259: Fix inconsistent date in CHANGELOG. (@ryansouza)
  • Extract Berkshelf & Librarian-Chef resolver code to classes. (@fnichol)
  • Full spec coverage for Suite. (@fnichol)
  • Full spec coverage for Platform. (@fnichol)
  • Full spec coverage for Instance. (@fnichol)
  • Full spec coverage for Kitchen::Provisioner.for_plugin (@fnichol)

1.0.0.beta.4 / 2013-11-01

Bug fixes

  • Change permissions on the Chef sandbox to world readable and writable (0755) (@fnichol)
  • Minor typographical and documentation errors (@gmiranda23)
  • Improve error message when Berkshelf/Librarian is not present (@fnichol)
  • Ensure busser respects the sudo driver configuration (@schisamo)

Improvements

  • Pull request #235: Add Chef Solo environment support (@ekrupnik)
  • Pull request #231: Use chefignore to determine which files to copy (@rteabeault)
  • Pull request #222: Remove dependency on Celluloid and use pure Ruby threads (@sethvargo)
  • Pull request #218: Add support for site-cookbooks (@hollow)
  • Pull request #217: Add support for specific driver configs (@hollow)
  • Pull request #206: Add pessismestic locks on all gem requirements (@sethvargo)
  • Pull request #193: Allow users to configure ssh forwarding (@fnordfish)
  • Pull request #192: Add chef config has and proxy information (@scotthain)
  • Pull request #94: Support passing multiple instance names (@sethvargo)
  • Drop hard dependency on pry gem for kitchen console (@fnichol)
  • Remove bash-specific code in favor of pure sh for non-standard Unix devices (@schisamo)
  • Make remote RUBY_BIN configurable (@schisamo)
  • Ensure busser and Chef Zero are executed in their own the sandboxes (@schisamo)

1.0.0.beta.3 / 2013-08-29

Bug fixes

  • Pull request #157: Include definitions directory when uploading the cookbooks. (@jasonroelofs)
  • Pull request #178: Fix SSH#wait's logger call to #info. (@ryansouza)
  • Pull request #188: Truthy default_configs can now be overridden. (@thommay)

Improvements

  • Allow Test Kitchen to be used as a library; CWD is not enough. (@portertech)
  • Add kitchen list --debug to display all merged & calculated config. (@fnichol)
  • Add retry logic to Kitchen:SSH when initiating a connection. (@fnichol)
  • Pull request #147: Allow chef omnibus install.sh url to be configurable. (@jrwesolo)
  • Pull request #187: Add support for log file in chef solo. (@arangamani)
  • Pull request #179: Remove bundler references from README. (@juliandunn)
  • Compute default test_base_path in Config based on kitchen_root. (@fnichol)

1.0.0.beta.2 / 2013-07-24

Bug fixes

  • Fix backwards compatability regression in SSHBase#wait_for_sshd. (@fnichol)

1.0.0.beta.1 / 2013-07-23

New features

  • Pull request #128: [Breaking] Introduce Provisioners to support chef-client (chef-zero), puppet-apply, and puppet-agent. (@fnichol)
  • Pull request #128: Add chef_zero provisioner type as an alternative to the iplicit default chef_solo provisioner. (@fnichol)
  • Pull request #171: Support computed default values for Driver authors (see pull request for light documentation). (@fnichol)
  • Pull request #161, issue #129: Allow custom paths for roles, data_bags, and nodes by setting roles_path, data_bags_path, and nodes_path. (@gondoi)
  • Pull request #134: Add cross suite helpers. (@rteabeault)

Bug fixes

  • Pull request #122: Adding missing sudo calls to busser. (@adamhjk)
  • Pull request #154, issue #163: Set a more sane default PATH for installing Chef. (@jtimberman)
  • Issue #153: Assign Celluloid.logger to Kitchen.logger which won't open a file. (@fnichol)
  • Pull request #155, issue #154: Setting :on_black when your default terminal text color is black results in unreadable (black on black) text. Or: The NSA censors your VM names when using a terminal with a light background. (@mconigliaro)
  • Pull request #140: Make kitchen init generator safe to run when given an explicit :destination_root. (@reset)
  • Pull request #170: Add asterisk to wait_for_sshd argument. (@saketoba)
  • Pull request #136: Fixes bundler ref for 1.0. (@patcon)
  • Pull request #142, issue #137: Require a safe_yaml release with correct permissions. (@josephholsten)

Improvements

  • Pull request #128: Add Driver and Provisioner columns to kitchen list output. (@fnichol)
  • Pull request #124, issue #132: Aggressively filter "non-cookbook" files before uploading to instances. (@fnichol)
  • Pull request #128: Suite run_list is no longer required. (@fnichol)
  • Pull request #123: Swap cookbook resolution strategy from shell outs to using Ruby APIs. (@fnichol)
  • Pull request #128: SSH and SCP commands share a single connection when transfering Chef artifacts to an instance (via the new Kitchen::SSH class). (@fnichol)
  • Pull request #128: Add more helpful output logging (info and debug) when creating and uploading the sandbox directory of Chef artifacts. (@fnichol)
  • Issue #97: Remove red as a candidate instance color. (@fnichol)
  • Fix ANSI color codes for bright colors. (@fnichol)
  • Pull request #172: [Breaking] Update signature of Driver.required_config block. (@fnichol)
  • Pull request #152, issue #151: Update the bucket name for Opscode's Bento Boxes. (@jtimberman)
  • Pull request #131: Use ssh_args for test_ssh. (@jonsmorrow)

1.0.0.alpha.7 / 2013-05-23

New features

  • Pull request #90, issue #31: Add a global user-level config file, located at ~/.kitchen/config.yml. (@thommay)
  • Pull request #102: Allow a way to override remote sudo. (@calavera)
  • Propagate default_config from base driver classes into subclasses. (@fnichol)
  • Pull request #120: Add http and https_proxy support. (@adamhjk)
  • Pull request #111: Sink. Yeah, that one. (@sethvargo)

Bug fixes

  • Pull request #99, issue #98: Ensure that destroy option is respected when --parallel is used. (@stevendanna)
  • Pull request #116: Require the 'name' attribute is present in metadata.rb. (@sethvargo)
  • Pull request #113: Handle case where YAML parses as nil. (@smith)
  • Pass original exception's backtrace to InstanceFailure and ActionFailed. (@fnichol)
  • Pull request #112: Fix bug where action failures are swallowed with a nil inside an ensure. (@manul)

Improvements

  • Pull request #104: Set the default ssh port in Driver::SSHBase. (@calavera)
  • Pull request #114: Update kitchen.yml template with provisionerless baseboxes. (@jtimberman)
  • Pull request #119: Test Kitchen works on Windows with Vagrant. (@adamhjk)
  • Pull request #108: Add version string to "Starting Kitchen" logging output. (@fnichol)
  • Pull request #105: Expand documentation around run-time switches in README. (@grahamc)

1.0.0.alpha.6 / 2013-05-08

New features

  • Pull request #77: Support encrypted data bag secrets (@arunthampi)
  • Issue #92: Support single cookbook with no dependencies and no Berksfile. (@fnichol)

Bug fixes

  • Fix Omnibus installation on nodes using plain sh (vs. bash). (@fnichol)

Improvements

  • Issue #84: Fix kitchen list heading alignment. (@fnichol)

1.0.0.alpha.5 / 2013-04-23

Improvements

  • Pull request #81: Clean up error reporting in CLI output. (@fnichol)
  • Pull request #76: Swap out shell-based kb for Ruby-based Busser gem. (@fnichol)
  • Pull request #82, issue #61: Install Omnibus package via either wget or curl. (@fnichol)
  • Catch YAML data merging errors as user errors. (@fnichol)
  • Issue #80: Add a more helpful error message when a driver could not be loaded. (@fnichol)

1.0.0.alpha.4 / 2013-04-10

Bug fixes

  • #get_all_instances must return actors in parallel mode in CLI. (@fnichol, @bryanwb).

Improvements

  • Refactor kitchen plugin create to drop Bundler dependency completely. (@fnichol)

1.0.0.alpha.3 / 2013-04-05

Bug fixes

  • Fix :require_chef_omnibus driver_config option to eliminate re-installation (@fnichol)
  • Remove implicit Bundler dependency in kitchen init. (@fnichol)

New features

  • Add --auto-init flag to kitchen test (default: false) (@fnichol)

Improvements

  • Update base box URLs. (@fnichol)
  • Extract .kitchen.yml to an ERB template & update box URLs. (@fnichol)
  • Add more spec coverage. (@fnichol)

1.0.0.alpha.2 / 2013-03-28

Bug fixes

  • Remove catch-all rescue in Driver.for_plugin (reason provided in commit message). (@fnichol)

New features

  • Add --log-level flag to CLI for test, create, converge, setup, verify, destroy, and login actions. The environment variable KITCHEN_LOG may still be used to also set the logging level. (@fnichol)
  • Driver::SSHBase and subclass drivers now support setting a :port number in .kitchen.yml or in instance state. (@fnichol)

Improvements

  • Support thor 0.16.0 and 0.17.0+. (@fnichol)
  • Support SSH config from #state & #config in Driver::SSHBase, helping drivers such as kitchen-vagrant. (@fnichol)

1.0.0.alpha.1 / 2013-03-22

Bug fixes

  • Support (and test) for Rubygems 2.0.x and 1.8.x. (@fnichol)

New features

  • Pull request #71: Updates to kitchen init to be non-interactive (add --driver flag), add subcommand support, and introduce kitchen driver discover. (@fnichol)
  • Add Driver#verify_dependencies to be invoked once when Driver is loaded. (@fnichol)

Improvements

  • Pull request #73: [Breaking] Modify ShellOut#run_command to take an options Hash. (@fnichol)
  • Add :quiet option on ShellOut#run_command. (@fnichol)
  • [Breaking] Driver#login_command returns a Driver::LoginCommand object. (@fnichol)
  • Pull request #74: Switch driver alias (-d) to (-D) in Init generator (@reset)
  • Pull request #64: Make require_chef_omnibus: true safe. (@mattray)
  • Pull request #65: Fix for line length and style (tailor). (@ChrisLundquist)

1.0.0.alpha.0 / 2013-03-02

The initial release.