# Home Libraries

A collection of shared libraries used across home infrastructure that can be
deployed via pip packages.

## Versioning

Currently we have no set versioning scheme. If we make fundamentally breaking
changes that would require a refactor we should update the minor version number.

## Adding new libs

1. Refactor the home dir into another sub dir - home-monitoring - and include
  the setup.py file in that folders root
2. Create the equivalent folder structure for the new lib
3. Update the Makefile as described to include multiple packages
4. Update these instructions
