All work on React Native Geolocation happens directly on GitHub. Contributors send pull requests which go through a review process.
Working on your first pull request? You can learn how from this free series: How to Contribute to an Open Source Project on GitHub.
- Fork the repo and create your branch from
master
(a guide on how to fork a repository). - Run
yarn
ornpm install
to install all required dependencies. - Now you are ready to make your changes!
Currently we use flow
for typechecking, eslint
with prettier
for linting and formatting the code, and jest
for unit testing. We also use detox
for end-to-end testing. All of these are run on CircleCI for all opened pull requests, but you should use them locally when making changes.
yarn test
: Run all tests and validations.yarn validate:eslint
: Runeslint
.yarn validate:eslint --fix
: Runeslint
and automatically fix issues. This is useful for correcting code formatting.yarn validate:flow
: Runflow
typechecking.yarn test:jest
: Run unit tests withjest
.yarn test:e2e:<ios|android>:<debug|release>
: Runs end-to-end Detox tests, for exampleyarn test:e2e:ios:debug
runs the iOS E2E tests in debug mode. Before you can run it, you should build the app that can be run, by usingyarn build:e2e:<ios|android>:<debug|release>
.
When you're sending a pull request:
- Prefer small pull requests focused on one change.
- Verify that all tests and validations are passing.
- Follow the pull request template when opening a pull request.
We prefix our commit messages with one of the following to signify the kind of change:
- build: Changes that affect the build system or external dependencies.
- ci, chore: Changes to our CI configuration files and scripts.
- docs: Documentation only changes.
- feat: A new feature.
- fix: A bug fix.
- perf: A code change that improves performance.
- refactor: A code change that neither fixes a bug nor adds a feature.
- style: Changes that do not affect the meaning of the code.
- test: Adding missing tests or correcting existing tests.
We use Semantic Release to automatically release new versions of the library when changes are merged into master. Using the commit message convention described above, it will detect if we need to release a patch, minor, or major version of the library.
You can report issues on our bug tracker. Please search for existing issues and follow the issue template when opening an issue.
By contributing to React Native Geolocation, you agree that your contributions will be licensed under the MIT license.