Thank you for considering contributing to Heetch's open source web projects! At Heetch we strongly believe in shared knowledge, so that means a lot to us.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing these open source projects. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
There are a lot of ways one can contribute to an open source project. From bug reporting, to ideas of improvements, up to concrete changes or additions submitted as a pull request, all contributions are valuable!
Did you find a bug in a project? Please create an issue to report it.
Don't forget to specify on which project the bug happens, to explain how to reproduce it, and consider providing screenshots if the bug is visible on screen.
You can also create an issue labelled enhancement
or question
to share your thoughts with us.
By following the guidelines below, you can contribute by proposing some code changes. Please create an issue for the changes you are envisioning, and refer to it in your pull request.
This monorepo is powered by Nx. We recommend you take a look at Nx Docs to understand how it is organized and what tools it offers to the developer.
Start by forking this repository and create a branch with a descriptive name. For instance, assuming you are working on issue #123, you could name your branch 123-add-color-picker-field
.
After installing dependencies with yarn install
, you should be able to run tests locally with yarn nx test <project>
(e.g. yarn nx test react-forms
).
At this point, you're ready to make your changes! Just make sure to stick to the style and assumptions of the project you are contributing to. For example, react-forms
fields components are built on top of @heetch/flamingo-react, so all contributions are expected to keep it this way.
At this point, you should switch back to your master branch and make sure it's
up to date with heetch/web-tools
's master branch:
git remote add upstream git@github.com:heetch/web-tools.git
git checkout master
git pull upstream master
Then update your feature branch from your local copy of master, and push it!
git checkout 123-add-color-picker-field
git rebase master
git push --set-upstream origin 123-add-color-picker-field
Finally, go to GitHub and make a Pull Request.
Github Actions will run our test suite. We care about quality, so your PR won't be merged until all tests pass.
If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
To learn more about rebasing in Git, there are a lot of good resources but here's the suggested workflow:
git checkout 123-add-color-picker-field
git pull --rebase upstream master
git push --force-with-lease 123-add-color-picker-field
A PR can only be merged into master by a maintainer if:
- It is passing CI.
- It has been approved by at least two maintainers. If it was a maintainer who opened the PR, only one extra approval is needed.
- It has no requested changes.
- It is up to date with current master.
Any maintainer is allowed to merge a PR if all of these conditions are met.