SEBA-606 Document synchronizer Makefile prereqs and targets
Change-Id: Ia2940484d9213e498f58e84d520296f73a71b0a9
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index 84860ec..bdce049 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -10,6 +10,7 @@
* [XOS Modeling Framework](dev/xproto.md)
* [XOS Tool Chain (Internals)](dev/xosgenx.md)
* [XOS Synchronizer Framework](dev/synchronizers.md)
+ * [Synchronizer Development Environment](dev/sync_environment.md)
* [Synchronizer Design](dev/sync_arch.md)
* [Synchronizer Implementation](dev/sync_impl.md)
* [Synchronizer Reference](dev/sync_reference.md)
diff --git a/docs/dev/sync_environment.md b/docs/dev/sync_environment.md
new file mode 100644
index 0000000..f605765
--- /dev/null
+++ b/docs/dev/sync_environment.md
@@ -0,0 +1,53 @@
+# Synchronizer Development Environment
+
+This page documents the Makefile and build environment for synchronizers.
+
+## Setting up a synchronizer development environment
+
+The synchronizer Makefile requires the following packages be installed:
+
+* `Python`, preferably version 2.7 as well as a 3.x version
+* `tox`, a framework for running unit tests. This should be installed using `pip`, as older versions obtainable via `apt` may be incompatible.
+* `build-essentials` and `python-dev`, necessary to be able to setup the appropriate python virtual environments
+
+When starting work on a new synchronizer, we recommend using the Makefile from and existing synchronizer (olt-service is a good working example) as a starting point rather than writing a Makefile from scratch.
+
+## Targets available in the synchronizer Makefile
+
+While each developer is free to create a custom Makefile, it is suggested for ease of integration that the following targets are available:
+
+### make docker-build
+
+Builds a docker container for the synchronizer. The environment variables `DOCKER_REGISTRY`. `DOCKER_REPOSITORY`, and `DOCKER_TAG` may be used to configure the name of the docker image that will be build. For example, the following command will build the image `myname/mysynchronizer:test`.
+
+```bash
+DOCKER_REPOSITORY=myname/mysynchronizer DOCKER_TAG=test make docker build
+```
+
+### make docker-push
+
+This target will push a docker image that was built using `make docker-build` to dockerhub or another docker registry.
+
+### make test
+
+This target runs all tests on the repository that are appropriate for acceptance testing. Typically it invokes other Makefile targets such as `make test-unit`, `make test-migration`, and `make test-xproto`.
+
+### make test-unit
+
+This target runs `tox` to execute unit tests and generate a coverage report.
+
+### make test-migration
+
+This target checks that xproto migrations are up-to-date.
+
+### make test-xproto
+
+This target runs a linting check of the xproto files to ensure that the xproto is syntactically correct and that it obeys several semantic rules.
+
+### make create-migration
+
+This target will create or update the database migration scripts from the service's current xproto.
+
+### make clean
+
+This target removes all build artifacts, including the contents of virtual environments that are built, as well as unit testing coverage reports and results.
\ No newline at end of file