54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
|
This cookbook uses a variety of testing components:
|
||
|
|
||
|
- Unit tests: [ChefSpec](https://github.com/acrmp/chefspec)
|
||
|
- Integration tests: [Test Kitchen](https://github.com/opscode/test-kitchen)
|
||
|
- Chef Style lints: [Foodcritic](https://github.com/acrmp/foodcritic)
|
||
|
- Ruby Style lints: [Rubocop](https://github.com/bbatsov/rubocop)
|
||
|
|
||
|
|
||
|
Prerequisites
|
||
|
-------------
|
||
|
To develop on this cookbook, you must have a sane Ruby 1.9+ 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:
|
||
|
|
||
|
- [Vagrant](https://vagrantup.com)
|
||
|
- [VirtualBox](https://virtualbox.org)
|
||
|
|
||
|
Once installed, you must install the `vagrant-berkshelf` plugin:
|
||
|
|
||
|
$ vagrant plugin install vagrant-berkshelf
|
||
|
|
||
|
|
||
|
Development
|
||
|
-----------
|
||
|
1. Clone the git repository from GitHub:
|
||
|
|
||
|
$ git clone git@github.com:opscode-cookbooks/COOKBOOK.git
|
||
|
|
||
|
2. Install the dependencies using bundler:
|
||
|
|
||
|
$ bundle install
|
||
|
|
||
|
3. Create a branch for your changes:
|
||
|
|
||
|
$ git checkout -b my_bug_fix
|
||
|
|
||
|
4. Make any changes
|
||
|
5. Write tests to support those changes. It is highly recommended you write both unit and integration tests.
|
||
|
6. Run the tests:
|
||
|
- `bundle exec rspec`
|
||
|
- `bundle exec foodcritic .`
|
||
|
- `bundle exec rubocop`
|
||
|
- `bundle exec kitchen test`
|
||
|
|
||
|
7. Assuming the tests pass, open a Pull Request on GitHub
|
||
|
8. Open a JIRA ticket for this compontent, linking the JIRA ticket to the Pull Request and visa versa.
|
||
|
9. Mark the JIRA ticket as "Fix Provided"
|
||
|
|
||
|
For more information, see [Opscode's Contribution Guidelines](https://wiki.opscode.com/display/chef/How+to+Contribute).
|