Skip to content

Dev setup for contributing to the library

Vishal Narkhede edited this page Apr 6, 2021 · 3 revisions

>= 3.0.0

If you are looking to contribute to this repository, you will first want to test your changes locally. Here is how you can do it:

  1. Fork the repository (ref)
  2. Clone your forked repository on your machine
git clone https://github.com/{github-user-id}/stream-chat-react-native.git
  1. Open example app
cd stream-chat-react-native;
yarn link;
cd examples/TypescriptMessaging;
yarn link stream-chat-react-native;
yarn;
npx pod-install;
npx react-native run-ios # npx react-native run-android

< 3.0.0

If you are looking to contribute to this repository, you will first want to test your changes locally. Here is how you can do it:

  1. Fork the repository (ref)
  2. Clone your forked repository on your machine
git clone https://github.com/{github-user-id}/stream-chat-react-native.git
  1. If you don't have react-native app setup yet, please do so using the instructions mentioned here - https://github.com/GetStream/stream-chat-react-native#for-react-native--060-1. Make sure your app runs with stream-chat-react-native dependency (latest version)

  2. Next step is to link stream-chat-react-native dependency to locally cloned repo. Replace the stream-chat-react-native dependency with following:

    "stream-chat-react-native": "link:../stream-chat-react-native/native-package",
    "stream-chat-react-native-core": "link:../stream-chat-react-native",

Here I am assuming that the clone of stream-chat-react-native and your app are under common directory. e.g.,

-- project-dir
    -- stream-chat-react-native
    -- my-chat-app
  1. If you run your app at this point, you will run into some issues related to dependency collision. Since metro bundler will have node_module dependencies from your app folder, stream-chat-react-native folder and stream-chat-react-native/native-package folder. And it doesn't know how to resolve those dependencies.

So you need to modify metro.config.js. You can copy paste the config from this gist - https://gist.github.com/vishalnarkhede/562d3cba77b7340c49a553bbd1a31e11 Please note on line 159, we are creating a list of directories to blacklist. Following path will work if both app and stream-chat-react-native are under common parent directory:

repoDir + '/stream-chat-react-native/examples/NativeMessaging/.*',

If they are not, please do the necessary changes here.

  1. Next clean install your app
rm -rf node_modules
rm yarn.lock
yarn install
watchman watch-del-all
yarn start --reset-cache

And thats all!! If you make code changes in stream-chat-react-native, they should reflect in your app now :)