XiVO Package File Structure¶
Package naming¶
Let’s assume we want to organise the files for xivo-confd.
- Git repo name:
xivo-confd - Binary file name:
xivo-confd - Python package name:
xivo_confd
xivo-confd
|-- bin
| `-- xivo-confd
|-- contribs
| `-- docker
| |-- ...
| `-- prod
| `-- ...
|-- debian
| `-- ...
|-- Dockerfile
|-- docs
| `-- ...
|-- etc
| `-- ...
|-- integration-tests
| `-- ...
|-- LICENSE
|-- README.md
|-- requirements.txt
|-- setup.cfg
|-- setup.py
|-- test-requirements.txt
|-- .travis.yml
`-- xivo_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
- xivo_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 xivo-confd inside a production Docker image
contribs/docker/other/- Contains the Dockerfile and other files to run xivo-confd inside Docker with specific configuration
File naming¶
- PID file:
/var/run/xivo-confd/xivo-confd.pid - WSGI socket file:
/var/run/xivo-confd/xivo-confd.sock - Config file:
/etc/xivo-confd/config.yml - Log file:
/var/log/xivo-confd.log - Static data files:
/usr/share/xivo-confd - Storage data files:
/var/lib/xivo-confd