When contributing to this repository, please first discuss the change you wish to make via issue.
- Follow the React Native Guide for getting started building a project with native code. A Mac is required if you wish to develop for iOS.
- Clone or download the repo
- Copy and rename the file
.env.example
to.env
and fill the necessary variables. yarn
to install dependenciesyarn android
to start the packager and run the app in the the Android device/emulatoryarn ios
to start the packager and run the app in the iOS simulator
To build a release variant of the app you need to fill the .env
with the correct info.
RELEASE_KEY_ALIAS=the alias used when creating the store. default: com.imperialrecords
RELEASE_KEY_PASSWORD=the password used for both the alias and the keystore
Then run:
yarn android-dev
You can have different dotenv files for staging and production.
Environment | Dotenv | Command | Variant |
---|---|---|---|
Development | .env |
android |
Debug |
Development | .env |
android-dev |
Release |
Staging | .env.staging |
android-staging |
Release |
Production | .env.production |
android-prod |
Release |
Are you out of ideas, but still wanna help? Check out the help wanted or the good first issue labels.
We have a pre-commit hook enforcing commits to follow our lint rules.
- ESLint to enforce code style and best practices on JavaScript and TypeScript files.
- Prettier to format JSON files.
To check for lint issues on your code, run this on your terminal:
yarn lint
And to auto-fix some of them:
yarn lint-fix
It's always important to ensure everything is working properly and that's why tests are great.
We use Jest for our unit tests. We have a pre-commit hook that prevents commits that breaks any test.
To check for test issues on your code, run this on your terminal:
yarn test
We enforce the commit messages to follow the Conventional Commits specification.
The title of your PR should be descriptive, including either [NEW], [IMPROVEMENT] or [FIX] at the beginning, e.g. [FIX] App crashing on startup.
You may share working results prior to finishing, please include [WIP] in the title. This way anyone can look at your code: you can ask for help within the PR if you don't know how to solve a problem.
Your PR is automatically inspected by various tools, check their response and try to improve your code accordingly. Requests that fail to build or have wrong coding style won't be merged.