Developer guide

Setup developer environment

  • sudo aptitude install git gcc python-dev bacula-console
  • git clone https://github.com/iElectric/almir.git almir
  • cd almir
  • cp buildout.d/templates/buildout.cfg.in buildout.cfg
  • vim buildout.cfg # configure variables
  • python bootstrap.py
  • bin/buildout
  • bin/pserve –reload development.ini

Running Python tests

Easy as:

$ bin/nosetests

By default it will run against sqlite fixture, you can also tell nosetests to use mysql fixture (you need to import sql manually for now):

$ DATABASE="mysql" bin/nosetests

Or just specify sqlalchemy engine:

$ ENGINE="sqlite:////var/lib/bacula/bacula.db" bin/nosetests

Running Javascript tests

Install and configure phantomjs (webkit headless testing):

$ sudo apt-get install libqtwebkit-dev
$ git clone git://github.com/ariya/phantomjs.git && cd phantomjs
$ qmake-qt4 && make
$ sudo cp bin/phantomjs /usr/local/bin/

Run tests:

$ cd ../almir
$ ./.travis_qunit_tests.sh

Coding conventions

  • PEP8 except for 80 char length rule
  • add changelog, test and documentation with code in commits
  • same applies to javascript
  • jslinted javascript

Releasing almir

$ bin/fullrelease
$ git checkout latests
$ git merge master
$ git push
# update http://readthedocs.org/dashboard/almir/versions/