- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your RuboCop-compliant and test-passing changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
This plugin follows the principles of Semantic Versioning 2.0.0.
Please run the unit tests to verify your changes. To do this simply run rake
.
If you want a quick merge, write a spec that fails before your changes are
applied and that passes after.
If you don't have rake installed, first install bundler
and run bundle install
. Then you can run bundle exec rake
, even if rake is
still not installed to your PATH
.
Please make changes RuboCop-compliant.
Changes that eliminate rules from
.rubocop_todo.yml
are welcome.
Travis will automatically run RuboCop and the unit tests when you create a new pull request. If there are any failures, a notification will appear on the pull request. To update your pull request, simply create a new commit on the branch that fixes the failures, and push to the branch.
To test your changes when developing the plugin, you have two main options. First, you can build and install the plugin from source every time you make a change:
- Make changes
rake build
vagrant plugin install ./pkg/vagrant-vsphere-$VERSION.gem
vagrant up --provider=vsphere
Second, you can use Bundler and the Vagrant gem to execute vagrant commands, saving time as you never have to wait for the plugin to build and install:
- Make changes
bundle exec vagrant up --provider=vsphere
This method uses the version of Vagrant specified in
Gemfile
. It
will also cause Bundler and Vagrant to output warnings every time you run
bundle exec vagrant
, because Gemfile
lists vagrant-vsphere twice (once
with gemspec
and another time in the group :plugins
block), and Vagrant
prefers to be run from the official installer rather than through the gem.
Despite those warning messages, this is the officially recommended method for Vagrant plugin development.
- Ensure travis-ci build is passing
- Ensure
CHANGELOG.md
is up-to-date with the changes to release - Update version in the code, according to semver
- bumpversion can be used; if not,
the version needs to be manually updated in
.bumpversion.cfg
,README.md
, andlib/vSphere/version.rb
(e.g., as in11eced2
)
- bumpversion can be used; if not,
the version needs to be manually updated in
bundle exec rake build
- builds the plugin to
pkg/vagrant-vsphere-$VERSION.gem
- install to your system vagrant for further testing with
vagrant plugin install ./pkg/vagrant-vsphere-$VERSION.gem
- builds the plugin to
bundle exec rake release
- creates the version tag and pushes it to GitHub
- pushes the built gem to RubyGems.org
- Update the Releases page
- the release name should match the version tag (e.g.,
v1.2.3
) - the release description can be the same as the
CHANGELOG.md
entry - upload the
.gem
from RubyGems.org as an attached binary for the release
- the release name should match the version tag (e.g.,