Skip to main content

Contributing Guide

react-native-share uses semantic-release for creating new releases. Also, we follow the commit-lint specification with husky to handle our commit messages.

So whenever a new commit arrives at the master, if it's attending the semantic-release config to release a newer version in just a few minutes a new release will be published to npm. 🚀

Documentation​

We use Docusaurus to build our documentation. Everything you need to change the docs is located at ./website. You just need to run a:

yarn; yarn start

And you will be able to run a local version of Docusaurus. Everytime a PR is merged on the master branch, a new version of the docs will be published. So you just need to think about writing some cool .mdx.

Using the Example App​

To run the example app, which is located at ./example, just run at the root project:

yarn && cd example/ios && pod install && cd -

And finally a yarn start at the root folder.

After that, open the file example/ios/example.xcworkspace with XCode or run a yarn start:android to start the android simulator.

Where is the package.json and node_modules?​

We don't need a package.json or node_modules because we are using a custom config with react-native.config.js, that let us use easily the rootFolder of the project.

Also, we changed some native files like: AppDelegate.M, MainApplication.java and other files. By doing this, we are able to use the root-version of react-native-share and react at ../../../.

If you want to do something similar on your library, or other project I recommend looking at datetimepicker which was the base to apply this changes.