As the creators and maintainers of this project, we want to ensure that rematch lives and continues to grow and evolve. The evolution of the library should never be blocked by any single person's time. One of the simplest ways of doing this is by encouraging a larger set of shallow contributors. Through this, we hope to mitigate the problems of a project that needs updates but there's no-one who has the power to do so.
It's normal for a first pull request to be a potential fix for a problem, and moving on from there to helping the project's direction can be difficult. We try to help contributors cross that barrier by offering good first step issues. These issues can be fixed without feeling like you're stepping on toes. Ideally, these are non-critical issues that are well defined. They will be purposely avoided by mature contributors to the project, to make space for others.
We aim to keep all technical discussions inside GitHub issues, and all other discussions in our Discord community. If you have questions about a specific PR, want to discuss a new API idea etc GitHub issues are the right place.
Sergio Moreno have contactable email on their GitHub profile, and is happy to talk about any problems via those.
It's also important to note that all repositories under the rematch
banner have a Code of Conduct. It is important that you review and enforce this CoC should any violations happen.
You can use Gitpod(an Online Open Source VS Code like IDE which is free for Open Source) for contributing. With a single click it will start a workspace and automatically:
- clone the
rematch
repo. - install all the dependencies
- runs
yarn watch
. - run
yarn docs
.
Here is a quick guide to doing code contributions to the library.
-
Find some issue you're interested in, or a feature that you'd like to tackle. Also make sure that no one else is already working on it. We don't want you to be disappointed.
-
Fork, then clone:
git clone https://github.com/YOUR_USERNAME/rematch.git
-
Create a branch with a meaningful name for the issue:
git checkout -b fix-something
-
Install packages by running
yarn install
in the root of the project.
Caution!! Use ALWAYS yarn, because we use yarn workspaces to handle the monorepo dependencies, npm install won't work.
-
Make your changes and commit:
git add
andgit commit
-
Remember commits must be semantic versioning friendly https://www.conventionalcommits.org/en/v1.0.0/
-
Make sure that the tests still pass:
yarn build
andyarn test
andyarn lint
-
Push your branch:
git push -u origin your-branch-name
-
Submit a pull request to the upstream rematch repository.
-
Choose a descriptive title and describe your changes briefly.
-
Wait for a maintainer to review your PR, make changes if it's being recommended, and get it merged.
-
Perform a celebratory dance! 💃
- Run
yarn install
- Run
yarn build
(just the first time, is for generating types, etc) - Run
yarn watch
for live-reloading testing suite - Edit code in the
packages/core|loading|any-plugin/src/
folder.
It's luckily very simple! 😉
We use lerna to make this work as a monorepo under the hood and Yarn Workspaces.
To make development process easier we provide a Sandbox React application in this repo which automatically uses your local version of the rematch
library.
That means when you make any changes in the packages/rematch/core/src/
folder they'll show up automatically there! (You only need to run yarn build for reloading dist folder)
- Run
yarn install
in the root of project. - Run
yarn start:docs
- And do whatever you want. =)
- Check prettier and eslint:
yarn lint:docs
- You're done, git add, git commit, and push to a new branch.
These contribution guidelines are based on https://github.com/moya/contributors also to https://github.com/styled-components/styled-components.
Thank you to all the people who have already contributed to rematch!
Made with contributors-img.