must be used::
$ pylint --version
- pylint 0.21.1,
- astng 0.20.1, common 0.50.3
+ pylint 0.25.1,
+ astng 0.23.1, common 0.58.0
The same with pep8, other versions may give you errors::
$ pep8 --version
1.2
+Both these versions are the ones shipped with Debian Wheezy.
+
To generate unittest coverage reports (``make coverage``), `coverage
<http://pypi.python.org/pypi/coverage>`_ needs to be installed.
$ apt-get install pandoc python-epydoc graphviz
$ cd / && sudo easy_install \
sphinx \
- logilab-astng==0.20.1 \
- logilab-common==0.50.3 \
- pylint==0.21.1 \
+ logilab-astng==0.25.1 \
+ logilab-common==0.58.0 \
+ pylint==0.23.1 \
pep8==1.2 \
coverage
- the `test-framework
<http://batterseapower.github.com/test-framework/>`_ libraries,
tested versions: ``test-framework``: 0.6, ``test-framework-hunit``:
- 0.2.7, ``test-framework-quickcheck2``: 0.2.12
+ 0.2.7, ``test-framework-quickcheck2``: 0.2.12.1
- ``hpc``, which comes with the compiler, so you should already have
it
- `shelltestrunner <http://joyful.com/shelltestrunner>`_, used for
running shell-based unit-tests
+- `temporary <https://github.com/batterseapower/temporary/>`_ library,
+ tested with version 1.1.2.3
Under Debian Wheezy or later, these can be installed (on top of the
required ones from the quick install document) via::
libghc-test-framework-dev \
libghc-test-framework-quickcheck2-dev \
libghc-test-framework-hunit-dev \
+ libghc-temporary-dev \
hscolour hlint
Or alternatively via ``cabal``::
$ cabal install QuickCheck HUnit \
test-framework test-framework-quickcheck2 test-framework-hunit \
- hscolour hlint shelltestrunner
+ temporary hscolour hlint shelltestrunner
Configuring for development
$ make HEXTRA="-ddump-splices"
+Or, more interactively::
+
+ $ ghci
+ λ> :set -ddump-splices
+ λ> :l src/Ganeti/Objects.hs
+
+And you will get the spliced code as the module is loaded.
+
+To build profiling code you must install the ``ghc-prof`` (or
+``gch6-prof``) package, and all the relevant libraries with their
+``-prof`` counterparts. If installing libraries through cabal the config
+file should include ``library-profiling: True`` or the ``-p`` flag
+should be used. Any library already installed can be updated by passing
+``--reinstall`` as well.
+
Due to the way TemplateHaskell works, it's not straightforward to
build profiling code. The recommended way is to run ``make hs-prof``,
or alternatively the manual sequence is::
$ make clean
- $ make htools/htools HEXTRA="-osuf .o"
- $ rm htools/htools
- $ make htools/htools HEXTRA="-osuf .prof_o -prof -auto-all"
+ $ make src/htools HEXTRA="-osuf .o"
+ $ rm src/htools
+ $ make src/htools HEXTRA="-osuf .prof_o -prof -auto-all"
This will build the binary twice, per the TemplateHaskell
documentation, the second one with profiling enabled.
For Python tests::
$ export PYTHONPATH=$PWD
- $ python ./test/ganeti.%mytest%
+ $ python ./test/py/ganeti.%mytest%
For Haskell tests::
- $ make htest/test && ./htest/test -t %pattern%
+ $ make test/hs/htest && ./test/hs/htest -t %pattern%
Where ``pattern`` can be a simple test pattern (e.g. ``comma``,
matching any test whose name contains ``comma``), a test pattern