* Update references to `master` on documentation
The master branch has been renamed to main, but the docs
still reference it as master.
* Update the changelog URI
The changelog URI should be pointed to the main branch, where it is
updated. The master branch is archived and has not been updated since
version 5.0.0.
* Update the main branch on Github Actions config
Since shoulda-matchers 5.1.0, the main branch of the repository
is `main`.
* Move section on documentation from README to CONTRIBUTING
* Add a setup script that contributors and maintainers can use to set up
a dev environment
[skip ci]
This is an effort to vastly decrease the time it takes to run a single
unit test file and therefore increase productivity and happiness for
people working on this project.
If you want to run a unit test file, now you can use `zeus rspec`
instead of `rspec` -- assuming you run `zeus start` first -- and it will
run a LOT faster.
Because test files tend to have long file paths, you can even use a
shorter version of those paths. So instead of saying:
zeus rspec spec/unit/shoulda/matchers/active_record/validate_uniqueness_of_matcher_spec.rb
you can say:
zeus rspec active_record/validate_uniqueness_of_matcher_spec.rb
* Add missing steps to CONTRIBUTING and reorganize it a bit.
* `bundle exec rake` no longer runs all tests in all appraisals, only
the tests in the latest appraisal.
* Add a `.ruby-version` file so people don't have to figure out which
version of Ruby to install.
[ci skip]
Currently, `rake` does run the `appraise` task before running tests. If
you run `rake appraise` on its own, it runs `rake appraise:install`
beforehand. However, the way that `rake` runs `appraise` is by
executing, not invoking, it. Hence, `appraisal:install` will actually
not be run (as #execute does not run dependencies for the task being
executed).
This fix is mostly useful when running tests locally -- on Travis this
isn't a problem b/c we are running `rake spec cucumber` instead of just
`rake`.