# How to contribute

This directory structure contains some repositories that are copied from external sources.

Please follow these instructions to send contributions to master repositories.

## Directory structure

This directory consists of following modules

* [coap-service](#coap-service)
* [mbed-mesh-api](#mbed-mesh-api)
* [nanostack-interface](#nanostack-interface)
* [sal-stack-nanostack](#sal-stack-nanostack)

## coap-service

Master repository is located in the https://github.com/ARMmbed/coap-service

Please send contributions against that repository.

To test changes, remove the `coap-service` repository and replace with Git clone
of the master repository.

```
rm -rf coap-service
git clone git@github.com:ARMmbed/coap-service.git
```

## mbed-mesh-api

This is the master source of mbed-mesh-api.
Send contributions directly to this repository.

## nanostack-interface

This is the master source of nanostack-interface.
Send contributions directly to this repository.

## sal-stack-nanostack

This directory holds binary libraries generated from the Nanostack networking library.

**Only mbed Partners have access to the source code.**

If you have access, the source directory is available in https://github.com/ARMmbed/sal-stack-nanostack-private

You can replace the binary libraries with the source tree as follows:

* Remove the sal-stack-nanostack directory: `rm -rf sal-stack-nanostack`
* Remove the binaries located one directory up: `rm -rf ../nanostack-binaries`
* Clone the original source repository to root folder of your application: `git@github.com:ARMmbed/sal-stack-nanostack-private.git`

Now you can modify, build and test your changes with the mbed OS build.

**NOTE:** You do not need to clone the Nanostack to exactly same location in the build tree. This may even cause build problems.

### Instructions for generating the binary modules

Check `Releasing.md` from the Nanostack source repository.
