Thank you for your interest in contributing! Please feel free to put up a PR for any issue or feature request. Even if you have little to no experience with React Native, we'll be more than happy to help :)
Please don't hesitate to join our gitter! Technical points of discussion, general questions and suggestions or anything at all - we would love to chat about it.
If you notice any bugs in the app, see some code that can be improved, or have features you would like to be added, please create an issue!
If you want to open a PR that fixes a bug or adds a feature, then we can't thank you enough! It is definitely appreciated if an issue has been created before-hand so it can be discussed first.
Please refer to Tests Guide
Please feel free to take on any issue that's currently open. Feel free to resolve any issue that you would enjoy working on even if it happens to be a low priority.
- Fork the repo
- Clone your fork
- Make a branch for your feature or bug fix
- Follow the React Native Guide for learning how to get started with building a project with native iOS code (a Mac is required)
- The
CLIENT_ID
andCLIENT_SECRET
inapi/index.js
are for development purposes and do not represent the actual application keys. Feel free to use them or use a new set of keys by creating an OAuth application of your own.- Set the "Authorization callback URL" to
gitpoint://welcome
.
- Set the "Authorization callback URL" to
yarn
to install dependenciesyarn run link
to link react-native dependencies- Use one of the following commands depending on the target platform:
yarn start:ios
to start the packager and run the app in the iOS simulator (yarn start:ios:logger
will boot the application with redux-logger)yarn start:android
to start the packager and run the app in the the Android device/emulator (yarn start:android:logger
will boot the application with redux-logger)
- Work your magic! Run the app on an actual device as well to test your feature/fix.
- Add yourself to the contributor's list by doing
yarn contributors:add
- Commit your changes with a message following the Angular commit conventions
- Commitizen works with this repo. You can install the CLI globally (
yarn global add commitizen
) where you can then create formatted commit messages withgit cz
by filling out a few required fields
- Commitizen works with this repo. You can install the CLI globally (
- Push your branch to your fork
- Create a pull request from your branch on your fork to
master
on this repo - If your PR changes any UI or styling, add screenshots of all the components and screens you've modified before and after your changes. We can't approve your PR unless you have those screenshots and we've tested it locally on our simulators/device
- Have your branch get merged in! 🌟
If you experience a problem at any point, please don't hesitate to file an issue or send me a message!
Translation contributions are always welcome! If you happen to speak/read any language fluently and feel comfortable translating all the strings, please don't hesitate to open an issue to suggest including it and/or submitting a PR to include it. Here's how to add a new language:
- In the
locales
directory we just need to add a new file for a new language. We can just copy theen.js
file (to es.js for Spanish for example) and swap out all the English text for that specific language. - We'll need to then export that newly added file as well here.
- Next, we'll need to add the new lang object here.
- And lastly, in order for the language to be displayed in the options screen, we'll need to add a two-letter code in lowercase (for example: es for Spanish) and the native language name (for example: España for Spanish) to the language-settings.js file. Please make sure the two-letter code matches the code used for the
moment
library to allow for date/time compatibility (you can view the list here). - Test out selecting your new translation and if it all looks good, submit that PR in! 😄
We're moving from React Native's styles implementation and we are start using Styled Components This will let us write the styles for the app in a more css way. If you like to know why we're taking this decision you can read This issue
If you happen to see an error like below when you try to run the application:
error: bundling: UnableToResolveError: Unable to resolve module `config` from `/Users/frankdilo/projects/git-point/App.js`: Module does not exist in the module map or in these directories:
/Users/{user}/projects/git-point/node_modules
- Please try running
yarn start -- --reset-cache
and thenyarn run ios
in a separate terminal window - If that doesn't solve it, try the following commands:
- Clear watchman watches:
watchman watch-del-all
. - Delete the
node_modules
folder:rm -rf node_modules && yarn
. - Reset packager cache:
rm -fr $TMPDIR/react-*
oryarn start -- --reset-cache
.
- Clear watchman watches:
- If that sill doesn't solve it, please open an issue so we can figure out why it's not working for you
We also welcome financial contributions in full transparency on our open collective. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
Checkout all the awesome people who have contributed here.
Thank you to all our backers! [Become a backer]
Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)