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.