We want to make contributing to this project as easy and transparent as possible and we are grateful for, any contributions made by the community. By contributing to SyncState, you agree to abide by the code of conduct.
Before opening an issue, please search the issue tracker to make sure your issue hasn't already been reported.
We use the issue tracker to keep track of bugs and improvements to SyncState itself, its examples, and the documentation. We encourage you to open issues to discuss improvements, architecture, theory, internal implementation, etc. If a topic has been discussed before, we will ask you to join the previous discussion.
Visit the issue tracker to find a list of open issues that need attention.
Fork, then clone the repo:
git clone https://github.com/syncstate/core.git
yarn build
To only run linting:
yarn lint
To only run tests:
yarn test
Improvements to the documentation are always welcome. You can find them in the on syncstate.github.io
repository. We use Docusaurus to build our documentation website. The website is published automatically whenever the master
branch is updated.
SyncState comes with a Todo App example to demonstrate various concepts and best practices.
When adding a new example, please adhere to the style and format of the existing examples, and try to reuse as much code as possible.
To test the official SyncState examples, run the following:
Install dependencies using yarn
yarn
Then run the example using
yarn start
Not all examples have tests. If you see an example project without tests, you are very welcome to add them in a way consistent with the examples that have tests.
Please visit the Examples page for information on running individual examples.
For non-trivial changes, please open an issue with a proposal for a new feature or refactoring before starting on the work. We don't want you to waste your efforts on a pull request that we won't want to accept.
In general, the contribution workflow looks like this:
- Open a new issue in the Issue tracker.
- Fork the repo.
- Create a new feature branch based off the
master
branch. - Make sure all tests pass and there are no linting errors.
- Submit a pull request, referencing any issues it addresses.
Please try to keep your pull request focused in scope and avoid including unrelated commits.
After you have submitted your pull request, we'll try to get back to you as soon as possible. We may suggest some changes or improvements.
Thank you for contributing!