mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-11 18:26:50 +00:00
76 lines
3.7 KiB
Markdown
76 lines
3.7 KiB
Markdown
# Contributing
|
|
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][slack-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][welcome-dev]. Have a look and pick the one you would prefer working on!
|
|
|
|
## Set up
|
|
|
|
Please follow the [GETTING_STARTED](GETTING_STARTED.md) 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][travis] and [SemaphoreCI][semaphore] both work great in our experience. Either way, make sure the tests pass on your new branch:
|
|
|
|
bundle exec rspec spec
|
|
|
|
## Internationalisation (i18n)
|
|
|
|
The locale `en` is maintained in the source code, but other locales are managed at [Transifex][ofn-transifex]. Read more about [internationalisation][i18n] in the developer wiki.
|
|
|
|
## Making a change
|
|
|
|
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][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
|
|
|
|
## Submitting a Pull Request
|
|
|
|
Use the GitHub UI to submit a [new pull request][pr] 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][great-pr].
|
|
|
|
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][rebase] on the current master branch
|
|
* After submitting, be sure to check the [CI test results](ci). Click on a ❌ result to view the logged results and investigate.
|
|
|
|
From here, your pull request will progress through the [Review, Test, Merge & Deploy process][process].
|
|
|
|
[pr]: https://github.com/openfoodfoundation/openfoodnetwork/compare/
|
|
[great-pr]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Making-a-great-pull-request
|
|
[great-commit]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Making-a-great-commit
|
|
[process]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/The-process-of-review%2C-test%2C-merge-and-deploy
|
|
[rebase]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough
|
|
[travis]: https://travis-ci.org/
|
|
[semaphore]: https://semaphoreci.com/
|
|
[slack-dev]: https://openfoodnetwork.slack.com/messages/C2GQ45KNU
|
|
[ofn-transifex]: https://www.transifex.com/open-food-foundation/open-food-network/
|
|
[i18n]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Internationalisation-%28i18n%29
|
|
[welcome-dev]: https://github.com/orgs/openfoodfoundation/projects/5
|
|
[ci]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Continuous-Integration
|