Wazo Package File Structure¶
Package naming¶
Let’s assume we want to organise the files for wazo-confd.
- Git repo name:
wazo-confd
- Binary file name:
wazo-confd
- Python package name:
wazo_confd
wazo-confd
|-- bin
| `-- wazo-confd
|-- contribs
| `-- docker
| |-- ...
| `-- prod
| `-- ...
|-- debian
| `-- ...
|-- Dockerfile
|-- docs
| `-- ...
|-- etc
| `-- ...
|-- integration-tests
| `-- ...
|-- LICENSE
|-- README.md
|-- requirements.txt
|-- setup.cfg
|-- setup.py
|-- test-requirements.txt
|-- .travis.yml
`-- wazo_confd
`-- ...
Sources¶
etc/
- Contains default configuration files.
docs/
- Contains technical documentation for this package: API doc, architecture doc, diagrams, … Should be in RST format using Sphinx.
bin/
- Contains the binaries. Not applicable for pure libraries.
integration_tests/
- Contains the tests bigger than unit-tests. Tests should be runnable simply, e.g.
nosetests integration_tests
. README.md
- Read me in markdown (Github flavor).
LICENSE
- License (GPLv3)
.travis.yml
- Travis CI configuration file
Python¶
Standard files:
- setup.py
- setup.cfg
- requirements.txt
- test-requirements.txt
- wazo_confd/ (the main sources)
Debian¶
debian/
- Contains the Debian packaging files (
control
,rules
, …)
Docker¶
Dockerfile
- Used to build a docker image for a working production version
contribs/docker/prod/
- Contains the files necessary for running wazo-confd inside a production Docker image
contribs/docker/other/
- Contains the Dockerfile and other files to run wazo-confd inside Docker with specific configuration
File naming¶
- PID file:
/run/wazo-confd/wazo-confd.pid
- WSGI socket file:
/run/wazo-confd/wazo-confd.sock
- Config file:
/etc/wazo-confd/config.yml
- Log file:
/var/log/wazo-confd.log
- Static data files:
/usr/share/wazo-confd
- Storage data files:
/var/lib/wazo-confd