Thank you, it is not obvious that you are devoting your time to contributing to our community. We appreciate it very much.❤️🙏🏻
Before jumping into the deep water, it's essential to discuss a bit of communication. One of the biggest challenges on each project (especially on open-source projects) is communication. Good communication can lead to great achievements, effective teamwork, time efficiency and make the working process fun and easy. It is important to remember that all contributions are made voluntarily by people that devote their time and hard work. We are all part of a team, so please be passionate and polite to each other.
Please follow this guide to make your experience as pleasant and easy as possible.
- Opening a new issue with a bug or a feature proposal.
- Add documentation for existing features.
- Improvement of our tests.
- Solving an issue or adding a new feature.
- Pick an issue from the issues list or open a new issue and ask, by writing a new comment on the issue's page, to own the task.
- Wait for the maintainer's ownership approval. Keep in mind that they may not approve that. Like we said at the beggining, communication is everything.
- Fork the project. For more details, please read this article: My first contribution to open source: Make a fork of the repo / Galen Corey.
- Clone the forked project to your local machine (see instructions below).
- Try to brake the task into subtasks.
- Open a new branch (see instructions below).
- While working on an issue, feel free to ask any questions on the issue's page.
- Open pull request (make sure you open the pull request on the original project and not on the forked project).
- Make sure all the tests are passing.
- Merge to the main branch.
Having a clear work flow of code development can be very useful. Therefore, please work on branches that are linked to a relevant issue. Don't you know how to connect a branch to an issue? No problem, follow this guide.
Please make sure you follow this list:
- Link your branch to the relevant issue.
- Use meaningful names for commits.
- Create small commits for each logic unit at a time.
- Use a tasks list to manage your work.
Please follow this functional component pattern:
interface Props {
prop: <type>
...
}
export const Component = (props: Props): ReactElement => {
const { prop, ... } = props;
...
}
We hope you will have a great time contributing to this project.