Collaborative module development allows multiple projects to indepently work on the same module codebase while individually uploading and optionally publishing module versions.

Below is a guide to adding a new feature to an existing module.

Clone from Github

To begin you need to get access to a copy of the module source code. We encourage all module-writers to include a link to their repo in the module description.

Import into Toolkit

Once you have a local copy of the module source, you will need to create a new module name in one of your projects and import the module. The import process will update the modules identity.json file with your new module name.

Import a module

How namespace is used

Previously, it was not possible for two separate projects to work on the source for the same module. This was because the module name was used to identify module code, and had to be unique. It is now possible to define a module namespace which is used as the identifier in code (the Java package name, and prefix for Objective-C classes among other things), which does not have to be unique.

If you are importing existing module code into a new module name, the name and namespace fields will be updated automatically for you.

Use in your own app

Once you have completed any changes to a module you can upload the module and use it in your app. Two modules with the same namespace cannot be used at the same time, so you will have to disable or remove the existing module if it is already being used in your app.

Optionally publish

If you want to share your module updates you can publish your module.

Send pull request

Sometimes, rather than publishing your module you can simply send a pull request back to the module author, that way they can merge in your changes and deploy an updated version of the original module.