cloudfoundry-community/bosh-cloudstack-cpi

View on GitHub
CONTRIBUTING.md

Summary

Maintainability
Test Coverage
# Contributing to BOSH

## Contributor License Agreement

Follow these steps to make a contribution to any of our open source repositories:

1. Ensure that you have completed our CLA Agreement for
   [individuals](http://www.cloudfoundry.org/individualcontribution.pdf) or
   [corporations](http://www.cloudfoundry.org/corpcontribution.pdf).

1. Set your name and email (these should match the information on your submitted CLA)

        git config --global user.name "Firstname Lastname"
        git config --global user.email "your_email@example.com"

## General Workflow

Follow these steps to make a contribution to any of our open source repositories:

1. Fork the repository

1. Create a feature branch (`git checkout -b better_bosh`)
    * Run the tests to ensure that your local environment is
        working `bundle && bundle exec rake` (this may take a while)
1. Make changes on the branch:
    * Adding a feature
      1. Add specs for the new feature
      1. Make the specs pass
    * Fixing a bug
      1. Add a spec/specs which exercises the bug
      1. Fix the bug, making the specs pass
    * Refactoring existing functionality
      1. Change the implementation
      1. Ensure that specs still pass
        * If you find yourself changing specs after a refactor, consider
          refactoring the specs first

1. Push to your fork (`git push origin better_bosh`) and submit a pull request selecting `develop` as the target branch

We favor pull requests with very small, single commits with a single purpose.

Your pull request is much more likely to be accepted if:

* Your pull request includes tests

* Your pull request is small and focused with a clear message that conveys the intent of your change.

## Code Style

As part of the `spec:unit` task we run [RuboCop](http://batsov.com/rubocop/),
which generally enforces the [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide).

We have a number of exceptions (see the various `.rubocop.yml` files),
and our style is still evolving, however `rake rubocop` is run by Travis
so making these pass will improve the chances that the pull request will
be accepted.