We appreciate that. But before you do, please learn our basic rules:
- This is not a support forum. If you have a question, please go to The Cukes Google Group.
- Do you have an idea for a new feature? Then don't expect it to be implemented unless you or someone else sends a pull request. You might be better to start a discussion on the google group.
- Reporting a bug? Please tell us:
- which version of Cucumber you're using
- which version of Ruby you're using.
- How to reproduce it. Bugs with a failing test in a pull request get fixed much quicker. Some bugs may never be fixed.
- Want to paste some code or output? Put ``` on a line above and below your code/output. See GFM's Fenced Code Blocks for details.
- We love pull requests. But if you don't have a test to go with it we probably won't merge it.
The rest of this document is a guide for those maintaining Cucumber, and others who would like to submit patches.
You can chat with the core team on https://gitter.im/cucumber/contributors. We try to have office hours on Fridays.
A Gemfile.local
-file can be used to have your own gems installed to support
your normal development workflow.
Example:
gem 'pry'
gem 'pry-byebug'
gem 'byebug'
- Fork the project. Make a branch for your change.
- Make your feature addition or bug fix.
- Make sure your patch is well covered by tests. We don't accept changes to Cucumber that aren't tested.
- Please do not change the Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself so we can ignore when we merge your change)
- Send us a pull request.
gem install bundler
bundle install
bundle exec rake
To get code coverage results, run `bundle exec rake cov`
If you are new to the project or to OSS, check the label Easy. Also, you can help us to correct style violations reported here: .rubocop_todo.yml.
- Upgrade gems with
scripts/update-gemspec
- Bump the version number in
lib/cucumber/version
. - Make sure
CHANGELOG.md
is updated with the upcoming version number, and has entries for all fixes.
Now release it
bundle update
bundle exec rake
git commit -m "Release X.Y.Z"
# Make sure you run gem signin as the cukebot@cucumber.io user before running the following step. Credentials can be found in 1Password
rake release