Information is duplicated between the two. I think it is simpler to keep the README focused on a Middleman user's perspective, whereas CONTRIBUTING.md can focus on a contributor's perspective. My motivation for this is that I'd like to later add more extensive documentation about testing Middleman from a contributor's perspective, but doing this in the README seemed like it would bloat it too much.
2.3 KiB
Contributing
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute:
- by using alpha, beta, and prerelease versions
- by reporting bugs
- by suggesting new features
- by writing or editing documentation
- by writing specifications
- by writing code ( no patch is too small : fix typos, add comments, clean up inconsistent whitespace )
- by refactoring code
- by closing issues
- by reviewing patches
Submitting an Issue
We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.
Submitting a Pull Request
WE DO NOT ACCEPT NEW FEATURES FOR THE V3 BRANCH ANYMORE
- Fork the repository.
- Create a topic branch.
git checkout -b local_topic_branch
- Add specs for your unimplemented feature or bug fix.
- Run the tests. If your specs pass, return to step 3.
- Implement your feature or bug fix.
- Run the tests. If your specs fail, return to step 5.
- Add, commit, and push your changes. To push your topic branch use
git push -u origin local_topic_branch
. - Submit a pull request.
Testing
Internally, we test Middleman using a combination of Cucumber and RSpec. Cucumber is used for specifying behavior a high level, whereas RSpec is used for testing components in isolation.
Running the tests
- Checkout Repository:
git clone https://github.com/middleman/middleman.git
- Install Bundler:
gem install bundler
- Run
bundle install
inside the project root to install the gem dependencies. - Run test cases:
bundle exec rake test