We love pull requests from everyone. Any contribution is valuable!
If you have some time and are interested in working on some issues please make yourself known on the #dev channel on Slack.
We have curated all issues we consider to be a good starting point for new members of the community within the Welcome New Developers project board. Have a look and pick the one you would prefer working on!
Please follow the GETTING_STARTED guide to set up your local dev environment.
This guide assumes that the git remote name of the main repo is upstream
and that your fork is named origin
.
Create a new branch on your local machine to make your changes against (based on upstream/master
):
git checkout -b branch-name-here --no-track upstream/master
You might need to update or install missing gems:
bundle install
Also, there might be missing dependencies, after pulling a particular branch. To update dependencies, run:
yarn install
If you want to run the whole test suite, we recommend using a free CI service to run your tests in parallel. Running the whole suite locally in series is likely to take > 40 minutes. TravisCI and SemaphoreCI both work great in our experience. Either way, make sure the tests pass on your new branch:
bundle exec rspec spec
The locale en
is maintained in the source code, but other locales are managed at Transifex. Read more about internationalisation in the developer wiki.
Make your changes to the codebase. We recommend using TDD. Add a test, make changes and get the test suite back to green.
bundle exec rspec spec
Once the tests are passing you can commit your changes. See Making a great commit for more tips.
git add .
git commit -m "Add a concise commit message describing your change here"
Push your changes to a branch on your fork:
git push origin branch-name-here
Use the GitHub UI to submit a new pull request against upstream/master. To increase the chances that your pull request is swiftly accepted please have a look at our guide to making a great pull request.
TL;DR:
- Write tests
- Make sure the whole test suite is passing
- Keep your PR small, with a single focus
- Maintain a clean commit history
- Use a style consistent with the rest of the codebase
- Before submitting, rebase your work on the current master branch
From here, your pull request will progress through the Review, Test, Merge & Deploy process.