Contributions are very welcome. If you want a feature to be added, chances are it will not happen unless you actually write the code.
To get setup, run bundle install
. You
can run the full test suite with rspec spec/
or rake
.
All pull requests which add a feature or fix a bug must have the following things:
- Integration test(s). These generally go into
spec/integration/session_spec.rb
, unless it's something specific to the driver, in which case it goes inspec/integration/driver_spec.rb
. (So a test forpage.driver.resize
goes indriver_spec.rb
but a test forpage.execute_script
goes insession_spec.rb
.) - A good commit message
- An entry into the changelog. This currently resides at the bottom of
the
README.md
file. Reference the Github issue number if there is an associated bug report. Feel free to add your name if you want to be credited.
Some other things to bear in mind:
- While PhantomJS is capable of compiling and running CoffeeScript code
directly, I prefer to compile the code myself and distribute that (it
makes debugging easier). Running
rake autocompile
will watch the.coffee
files for changes, and compile them intolib/capybara/client/compiled
. - If you've worked on your changes over time, please squash the commits
in a sensible manner so that each commit is self-contained. If you
need to update a pull request with new changes, you can just
git push -f
to your branch which will overwrite previous commits that you have now squashed. - Please try to pay attention to and follow the existing coding style.
Thanks! It's really great when people help with Poltergeist's development.