Reactions ⇒ Emissions
Inside Emission you will find:
- An example app for building and running Emission's components with an Eigen-like API.
- An NPM module that relies on React Native and manages the components.
- A Podspec that wraps it all together for easy external usage in Eigen.
- State: production
- Point People: @alloy, @ashfurrow
git clone https://github.com/artsy/emission.git && cd emission && make setup && make oss
git clone https://github.com/artsy/emission.git && cd emission && make setup && make artsy. Then look in 1password for the Eigen keys.
Install file watcher used by React Native:
$ brew install watchman
Install NPM modules:
$ yarn install
$ cd Example && bundle && bundle exec pod install
Running the project:
$ yarn startfrom the top directory, which will:
- Clean the example app’s Xcode build dir.
- Start the example app’s React Native packager.
- Start the React Storybooks environment.
Now from Xcode you can run the app in
- If you already have the app installed, you can run
open -a Simulatorto open the last sim, and then
xcrun simctl launch booted net.artsy.Emissionto open the app.
- If you run into any issues with the above commands oftentimes a full clean can help. Run
rm -rf node_modules; rm -rf Example/Pods; yarn install; cd Example; bundle exec pod installand then repeat the steps above.
Using VS Code as an IDE
There is a comprehensive document covering our setup here.
There is a comprehensive document covering the various options.
We vendor some data from other repositories that you will sometimes need to update. Notably the GraphQL schema of metaphysics that Relay uses to generate queries from:
$ yarn sync-schema
Note: Deploys are mostly automated, these instructions should be valid but take a look at this issue if things break.
Note 2: If you're updating React Native, you're gonna have to do a lot of this stuff manually. See the makefile/alloy/orta for more info.
- Update the CHANGELOG file to reflect the version that will be released and commit it.
- Don't change the
- For non-beta releases, use either
yarn release patch,
yarn release minor, or
yarn release major. For beta releases use
yarn release prerelease.
- If integrating in Eigen consult the docs on updating Emission
Automated Emission App Deploys
The Emission app (in
Example/) is deployed automatically to TestFlight once a week through emission-nebula. See that repo for more details.
React Native Storybooks:
React Native Debugger: