This cookbook uses a variety of testing components:
- Unit tests: ChefSpec
- Integration tests: Test Kitchen
- Chef Style lints: Foodcritic
- Ruby Style lints: Rubocop
To develop on this cookbook, you must have a sane >= Ruby 1.9.2 environment. Given the nature of this installation process (and it's variance across multiple operating systems), we will leave this installation process to the user.
You must also have bundler
installed:
$ gem install bundler
You must also have Vagrant and VirtualBox installed:
Once installed, you must install the vagrant-berkshelf
plugin:
$ vagrant plugin install vagrant-berkshelf
-
Clone the git repository from GitHub:
$ git clone git@github.com:chef-cookbooks/COOKBOOK.git
-
Install the dependencies using bundler:
$ bundle install
-
Create a branch for your changes:
$ git checkout -b my_bug_fix
-
Make any changes
-
Write tests to support those changes. It is highly recommended you write both unit and integration tests.
-
Run the tests:
bundle exec rspec
bundle exec foodcritic .
bundle exec rubocop
bundle exec kitchen test
-
Assuming the tests pass, open a Pull Request on GitHub
-
Open a JIRA ticket for this compontent, linking the JIRA ticket to the Pull Request and visa versa.
-
Mark the JIRA ticket as "Fix Provided"
For more information, see Chef's Contribution Guidelines.