From db2d56db596f3325ca59d09b1df34bb3f58e8204 Mon Sep 17 00:00:00 2001
From: Manuel Guenther <manuel.guenther@idiap.ch>
Date: Fri, 10 Oct 2014 17:05:19 +0200
Subject: [PATCH] Updated documentation and wrote tutorial-style docs for
 extension usage.

---
 README.rst                             | 199 +-----
 doc/cpp_api.rst                        | 240 +++++++
 doc/guide.rst                          | 870 +++++++++++++------------
 doc/index.rst                          |   1 +
 doc/links.rst                          |   1 +
 examples/bob.example.extension.tar.bz2 | Bin 0 -> 22898 bytes
 examples/bob.example.library.tar.bz2   | Bin 0 -> 23328 bytes
 examples/bob.example.project.tar.bz2   | Bin 19699 -> 19586 bytes
 setup.py                               |   3 +-
 9 files changed, 706 insertions(+), 608 deletions(-)
 create mode 100644 doc/cpp_api.rst
 create mode 100644 examples/bob.example.extension.tar.bz2
 create mode 100644 examples/bob.example.library.tar.bz2

diff --git a/README.rst b/README.rst
index 71c2c91..80add3c 100644
--- a/README.rst
+++ b/README.rst
@@ -19,198 +19,15 @@
  Python/C++ Bob Extension Building Support
 ===========================================
 
-This package provides a simple mechanims for building Python/C++ extensions for
-`Bob <http://www.idiap.ch/software/bob/>`_. You use this package by including
-it in your ``setup.py`` file.
-
-Building with ``zc.buildout`` is possible using the ``develop`` recipe in
-`bob.buildout <http://pypi.python.org/pypi/bob.buildout>`_. Follow the
-instructions described on that package for this recipe.
-
+This package is part of the signal-processing and machine learning toolbox Bob_.
+It provides a simple mechanism for using Bob_, or extending Bob_ by building packages using either a pure Python API, or even a mix of C++ and python.
 Further documentation on this package can be found `here <https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.extension/master/index.html>`_.
 
-Preparing for C++ Compilation
------------------------------
-
-Creating C++/Python bindings should be trivial. Firstly, edit your ``setup.py``
-so that you include the following::
-
-  from setuptools import dist
-  dist.Distribution(dict(setup_requires=['bob.extension']))
-  from bob.extension import Extension, Library, build_ext
-
-  ...
-
-  setup(
-
-    name="bob.myext",
-    version="1.0.0",
-    ...
-
-    setup_requires=[
-        'bob.extension',
-        ],
-
-    ...
-    ext_modules=[
-      Extension("bob.myext._myext",
-        [
-          "bob/myext/ext/file1.cpp",
-          "bob/myext/ext/file2.cpp",
-          "bob/myext/ext/main.cpp",
-        ],
-        packages = [ #pkg-config modules to append
-          'blitz>=0.10',
-        ],
-        bob_packages = [ #optionally, bob C++ modules to import
-          "bob.core"
-        ],
-        include_dirs = [ #optionally, include directories
-          "bob/myext/ext/headers/",
-        ],
-      ),
-      ... #add more extensions if you wish
-    ],
-
-    cmdclass = {
-      'build_ext': build_ext
-    },
-
-    ...
-  )
-
-These modifications will allow you to compile extensions that are linked
-against the named ``pkg-config`` modules. Other modules and options can be set
-manually using `the standard options for python extensions
-<http://docs.python.org/2/extending/building.html>`_.
-
-Adding pure C++ libraries
--------------------------
-
-Most of the bob packages will include pure C++ code that can be used in other packages.
-When your package should export a library with pure C++ code as well, you can build it with the ``Library`` extension.
-You can simply add this ``Library`` to the list of ``ext_modules`` as follows::
-
-  setup(
-    ...
-    ext_modules=[
-      Library("bob_myext",
-        [
-          "bob/myext/ext/cpp/cppfile1.cpp",
-          "bob/myext/ext/cpp/cppfile2.cpp",
-        ],
-        package_directory = os.path.dirname(os.path.realpath(__file__)),
-        target_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'bob', 'myext'),
-        version = "1.0.0",
-        bob_packages = [...],
-        packages = [...],
-        ...
-      ),
-      Extension("bob.my_ext._myext",
-        ...
-        libraries = ["bob_myext",...]
-      )
-    ],
-
-    cmdclass = {
-      'build_ext': build_ext
-    },
-
-    ...
-  )
-
-This will compile the given source files of the library using `CMake <http://www.cmake.org>`_.
-Please assure that the name of the library ``bob_myext`` is compatible with your package name so that the library can be imported in other packages using the ``bob_packages`` list.
-
-Also, it is assumed that **all** header files that are exported by the C++ library are listed in the *bob/myext/include* directory.
-This directory is automatically added to the list of include directories -- in your own package and in all other packages that use the ``bob_packages`` list.
-
-Compiling the module
---------------------
-
-To hook-in the building on the package through ``zc.buildout``, add the following section to your ``buildout.cfg``::
-
-  [bob.myext]
-  recipe = bob.buildout:develop
-  verbose = true ;enables command-line verbosity
-  debug = true ;compiles the module in debug mode
-
-If you need to build multiple eggs, you will need **one entry per project** on
-your ``buildout.cfg``. This includes, possibly, dependent projects. Currently,
-``zc.buildout`` ignores the ``setup_requires`` entry on your ``setup.py`` file.
-The recipe above creates a new interpreter that hooks that package in and
-builds the project considering variables like ``prefixes`` into consideration.
-
-By default, the extension code is compiled into a local directory called ``build``.
-This directory, after compilation, can be removed without issues, the resulting libraries will be copied into the package directories.
-To change the build directory of your package, and all other bob packages, you can define the ``BOB_BUILD_DIRECTORY`` environment variable, e.g.,::
-
-  $ python bootstrap.py
-  $ BOB_BUILD_DIRECTORY=/tmp/bob_build_dir ./bin/buildout
-
-Again, after successful compilation, this directory can be removed safely.
-
-
-Python API to pkg-config and Boost
-----------------------------------
-
-This package alson contains a set of Pythonic bindings to the popular
-pkg-config configuration utility. It allows distutils-based setup files to
-query for libraries installed on the current system through that command line
-utility.  library.
-
-Using the ``pkgconfig`` class
-=============================
-
-To use this package at your ``setup.py`` file, you will need to let distutils
-know it needs it before importing it. You can achieve this with the following
-trick::
-
-  from setuptools import dist
-  dist.Distribution(dict(setup_requires='bob.extension'))
-  from bob.extension.pkgconfig import pkgconfig
-
-.. note::
-
-   In this case, distutils should automatically download and install this
-   package on the environment it is required to setup other package.
-
-After inclusion, you can just instantiate an object of type ``pkgconfig``::
-
-  >>> zlib = pkgconfig('zlib')
-  >>> zlib.version # doctest: SKIP
-  1.2.8
-  >>> zlib.include_directories() # doctest: SKIP
-  ['/usr/include']
-  >>> zlib.library_dirs # doctest: SKIP
-  ['/usr/lib']
-  >>> zlib > '1.2.6'
-  True
-  >>> zlib > '1.2.10'
-  False
-
-
-Using the ``boost`` class
-=========================
-
-To use this package at your ``setup.py`` file, you will also need the same
-trick as with ``pkgconfig``::
-
-  from setuptools import dist
-  dist.Distribution(dict(setup_requires='bob.extension'))
-  from bob.extension.boost import boost
-
-After inclusion, you can just instantiate an object of type ``boost``::
-
-  >>> boost_pkg = boost('>= 1.47')
-  >>> boost.version # doctest: SKIP
-  1.50.0
-  >>> boost.include_directory # doctest: SKIP
-  '/usr/include'
-  >>> libpaths, libnames = boost.libconfig(['system', 'python'])
-  >>> print(libpaths) # doctest: SKIP
-  ['/usr/lib']
-  >>> print(libnames) # doctest: SKIP
-  ['boost_system-mt', 'boost_python-mt-py27']
+Installation
+------------
+To install this package -- alone or together with other `Packages of Bob <https://github.com/idiap/bob/wiki/Packages>`_ -- please read the `Installation Instructions <https://github.com/idiap/bob/wiki/Installation>`_.
+For Bob_ to be able to work properly, some dependent packages mus be installed.
+Please make sure that you have read the `Dependencies <https://github.com/idiap/bob/wiki/Dependencies>`_ for your operating system.
 
 
+.. _bob: https://www.idiap.ch/software/bob
diff --git a/doc/cpp_api.rst b/doc/cpp_api.rst
new file mode 100644
index 0000000..8cf517d
--- /dev/null
+++ b/doc/cpp_api.rst
@@ -0,0 +1,240 @@
+.. vim: set fileencoding=utf-8 :
+.. Manuel Guenther <manuel.guenther@idiap.ch>
+.. Fri Oct 10 14:03:53 CEST 2014
+..
+.. Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
+
+======================================
+ C++ API of the Documentation classes
+======================================
+
+This section includes information for using the pure C++ API for the documentation classes, which can be accessed after including:
+
+.. code-block:: c++
+
+   # include <bob.extension/documentation.h>
+
+The classes, which are described in more detail below, can be used to format the documentation of your C/C++ functions that are bound to Python.
+Any free text that you specify to describe your functions will be interpreted as `reStructuredText <http://docutils.sourceforge.net/rst.html>`_.
+Hence, it is possible to use any directives like ``.. note::``, ``.. math::``, and even links inside the documentation like ``:py:class:`` and references as ``[REF]_``.
+
+
+Function Documentation
+----------------------
+
+.. cpp:class:: bob::extension::FunctionDoc
+
+   To document a function (either a stand-alone function or a member function of a class), you should use the :cpp:class:`bob::extension::FunctionDoc`.
+
+   .. cpp:function:: FunctionDoc(\
+        const char* const function_name,\
+        const char* const short_desctiption,\
+        const char* const long_description = NULL,\
+        bool is_member_function = false\
+      )
+
+      In the constructor, you specify the function name and a short description.
+      If wanted, you can define a longer description as well.
+      When you use this FunctionDoc to document a member function of a class, please set ``is_member_function = true``.
+
+
+   .. cpp:function:: FunctionDoc& add_prototype(\
+        const char* const variables,\
+        const char* const return_value = "None"\
+      )
+
+      Adds a prototype of the documented function declaration to the function.
+      All ``variables`` and all ``return_value``'s listed must be documented using the :cpp:func:`add_parameter` or :cpp:func:`add_return` functions.
+      Only the default return value ``None`` does not need documentation.
+
+      ``variables`` is a single string containing a comma-separated list of parameter names.
+      Use ``..., [name]`` to indicate that name is ``name`` is an optional parameter.
+
+      ``return_value`` is a single string containing a comma-separated list of return value names.
+      If a single name is given, only a single value is returned, otherwise a tuple will be returned by your function.
+
+      .. note::
+         Each :cpp:class:`FunctionDoc` needs at least one prototype.
+         In opposition to pure Python functions, specifying multiple prototypes is allowed here as well.
+
+
+   .. cpp:function:: FunctionDoc& add_parameter(\
+        const char* const parameter_name,\
+        const char* const parameter_type,\
+        const char* const parameter_description\
+      )
+
+      Adds a description for a given parameter.
+
+      ``parameter_name`` must be one of the names listed in the ``variables`` of the :cpp:func:`add_prototype` function.
+
+      ``parameter_type`` specifies the expected type of this parameter.
+      You can use any free text to describe the type.
+      When ``:py:class:`` directives or similar are used, they will be interpreted correctly.
+
+      ``parameter_description`` includes free text to describe, what the parameter is used for.
+
+
+   .. cpp:function:: FunctionDoc& add_return(\
+        const char* const return_name,\
+        const char* const return_type,\
+        const char* const return_description\
+      )
+
+      Adds a description for a given return value.
+
+      ``return_name`` must be one of the names listed as a ``return_value`` of the :cpp:func:`add_prototype` function.
+
+      ``return_type`` specifies the type of this return value.
+      You can use any free text to describe the type.
+      When ``:py:class:`` directives or similar are used, they will be interpreted correctly.
+
+      ``return_description`` includes free text to describe, what the return value contains.
+
+
+   .. cpp:function:: const char* const name() const
+
+      Returns the name of the function defined in the constructor.
+
+
+   .. cpp:function:: const char* const doc(const unsigned alignment = 72, const unsigned indent = 0) const
+
+      Generates and returns the documentation string.
+      The free text in the documentation is aligned to ``alignment`` characters, by default 72, so that it can be viewed correctly inside of an 80-character Python console.
+      The ``indent`` is an internal parameter and should not be changed.
+
+
+   .. cpp:function:: void print_usage() const
+
+      Prints a function usage string to console, including all information specified by the member functions above.
+
+
+All functions adding information to the :cpp:class:`bob::extension::FunctionDoc` return a reference to the current object, so that you can use it inline, like:
+
+.. code-block:: c++
+
+   auto function_doc = bob::extension::FunctionDoc(
+     "function_name",
+     "Short description of the function",
+     "Long description of the function using reStructuredText including directives like :py:class:`bob.blitz.array`."
+   )
+   .add_prototype("param1, [param2]", "ret")
+   .add_parameter("param1", "int", "An int value used for ...")
+   .add_parameter("param2", "float", "[Default: ``0.5``] A float value describing ...")
+   .add_return("ret", ":py:class:`bob.blitz.array`", "An array ...")
+   ;
+
+During the binding of your function, you can use it, like:
+
+.. code-block:: c++
+
+   static PyMethodDef module_methods[] = {
+     ...
+     {
+       function_doc.name(),
+       (PyCFunction)function,
+       METH_VARARGS|METH_KEYWORDS,
+       function_doc.doc()
+     },
+     ...
+   };
+
+
+Variables Documentation
+-----------------------
+
+.. cpp:class:: bob::extension::VariableDoc
+
+   To document a variable (either a stand-alone function or a member function of a class), you should use the :cpp:class:`bob::extension::VariableDoc`.
+
+   .. cpp:function:: VariableDoc(\
+        const char* const variable_name,\
+        const char* const variable_type,\
+        const char* const short_desctiption,\
+        const char* const long_description = NULL\
+      )
+
+      In the constructor, you specify the variable name, its type and a short description.
+      The structure is identical to the :cpp:func:`FunctionDoc::add_parameter` function.
+      If wanted, you can define a longer description as well.
+
+
+   .. cpp:function:: char* name() const
+
+      Returns the name of the variable defined in the constructor.
+
+
+   .. cpp:function:: char* doc(const unsigned alignment = 72) const
+
+      Generates and returns the documentation string, which is composed of the information provided in the constructor.
+      The free text in the documentation is aligned to ``alignment`` characters, by default 72, so that it can be viewed correctly inside of an 80-character Python console.
+
+
+Class Documentation
+-------------------
+
+.. cpp:class:: bob::extension::ClassDoc
+
+   To document a function (either a stand-alone function or a member function of a class), you should use the :cpp:class:`bob::extension::FunctionDoc`.
+
+   .. cpp:function:: ClassDoc(\
+        const char* const class_name,\
+        const char* const short_desctiption,\
+        const char* const long_description = NULL\
+      )
+
+      In the constructor, you specify the class name and a short description.
+      If wanted, you can define a longer description as well.
+
+
+   .. cpp:function:: ClassDoc& add_constructor(\
+        const FunctionDoc& constructor_doc\
+      )
+
+      Adds the documentation of the constructor, which itself is a :cpp:class:`FunctionDoc`.
+
+      .. note::
+         You should specify the return value of your constructor to be ``""`` to overwrite the default value ``"None"``.
+
+      .. note::
+         A class can have only a single constructor documentation.
+         Hence, this function can be called only once for each class.
+
+
+   .. cpp:function:: char* name() const
+
+      Returns the name of the class defined in the constructor.
+
+
+   .. cpp:function:: char* doc(const unsigned alignment = 72) const
+
+      Generates and returns the documentation string, which is composed of the information provided in the constructor, and the constructor documentation.
+      The free text in the documentation is aligned to ``alignment`` characters, by default 72, so that it can be viewed correctly inside of an 80-character Python console.
+
+   .. cpp:function:: void print_usage() const
+
+      Prints the usage of the constructor.
+      See :cpp:func:`FunctionDoc::print_usage` for details.
+
+
+As for functions, the :cpp:class:`bob::extension::ClassDoc` is designed to be used inline, like:
+
+.. code-block:: c++
+
+   auto class_doc = bob::extension::ClassDoc(
+     "class_name",
+     "Short description of the class",
+     "Long description of the class using reStructuredText including directives like :py:class:`bob.blitz.array`."
+   )
+   .add_constructor(
+      bob::extension::FunctionDoc(
+        "class_name",
+        "Short description of the constructor",
+        "Long description of the constructor"
+        true
+      )
+     .add_prototype("param1, [param2]", "")
+     .add_parameter("param1", "int", "An int value used for ...")
+     .add_parameter("param2", "float", "[Default: ``0.5``] A float value describing ...")
+   );
+
diff --git a/doc/guide.rst b/doc/guide.rst
index a4e630b..c7a7d14 100644
--- a/doc/guide.rst
+++ b/doc/guide.rst
@@ -6,219 +6,301 @@
  |project| Satellite Package Development and Maintenance
 =========================================================
 
-This tutorial explains how to build and distribute `Python`-based working
-environments for |project|. By following these instructions you will be able
-to:
-
-* Create a basic working environment using either a stock |project|
-  installation or your own compiled (and possibly uninstalled) version of
-  |project|;
-* Install additional python packages to augment your virtual work environment
-  capabilities - e.g., to include a new python package for a specific purpose
-  covering functionality that does not necessarily exists in |project| or any
-  available Satellite Package;
+This tutorial explains how to build and distribute `Python`-based working environments for |project|.
+By following these instructions you will be able to:
+
+* Download and install |project| packages to build a global or local working environment including |project|;
+* Install python packages to augment your virtual work environment capabilities -- e.g., to include a new python package for a specific purpose covering functionality that does not necessarily exists in |project| or any available Satellite Package;
+* Implement your own satellite package including either pure Python code, a mixture of C/C++ and Python code, and even pure C/C++ libraries with clean C/C++ interfaces that might be used by other researchers;
 * Distribute your work to others in a clean and organized manner.
 
-These instructions heavily rely on the use of Python `distutils`_ and
-`zc.buildout`_. One important advantage of using `zc.buildout`_ is that it does
-**not** require administrator privileges for setting up any of the above.
-Furthermore, you will be able to create distributable environments for each
-project you have. This is a great way to release code for laboratory exercises
-or for a particular publication that depends on |project|.
+These instructions heavily rely on the use of Python `distutils`_ and `zc.buildout`_.
+One important advantage of using `zc.buildout`_ is that it does **not** require administrator privileges for setting up any of the above.
+Furthermore, you will be able to create distributable environments for each project you have.
+This is a great way to release code for laboratory exercises or for a particular publication that depends on |project|.
 
 .. note::
-  The core of our strategy is based on standard tools for *defining* and
-  *deploying* Python packages. If you are not familiar with Python's
-  ``setuptools``, ``distutils`` or PyPI, it can be beneficial to `learn about
-  those <http://guide.python-distribute.org/>`_ before you start. Python
-  `Setuptools`_ and `Distutils`_ are mechanisms to *define and distribute*
-  python code in a packaged format, optionally through `PyPI`_, a web-based
-  Python package index and distribution portal.
+  The core of our strategy is based on standard tools for *defining* and *deploying* Python packages.
+  If you are not familiar with Python's ``setuptools``, ``distutils`` or PyPI, it can be beneficial to `learn about those <http://guide.python-distribute.org/>`_ before you start.
+  Python's `Setuptools`_ and `Distutils`_ are mechanisms to *define and distribute* python code in a packaged format, optionally through `PyPI`_, a web-based Python package index and distribution portal.
+
+  `zc.buildout`_ is a tool to *deploy* Python packages locally, automatically  setting up and encapsulating your work environment.
 
-  `zc.buildout`_ is a tool to *deploy* Python packages locally, automatically
-  setting up and encapsulating your work environment.
 
 Anatomy of a buildout Python package
 ------------------------------------
 
-The best way to create your package is to download a `skeleton from the Idiap
-GitHub website <https://github.com/idiap/bob.project.example>`_ and build on
-it, modifying what you need. Fire-up a shell window and than do this:
+The best way to create your package is to download one of the skeletons that are described in this tutorial and build on it, modifying what you need.
+Fire-up a shell window and than do this:
 
 .. code-block:: sh
 
-  $ git clone --depth=1 https://github.com/idiap/bob.project.example.git
-  $ cd bob.project.example
-  $ rm -rf .git #this is optional - you won't need the .git directory
+  $ wget https://github.com/bioidiap/bob.extension/raw/master/examples/bob.example.project.tar.bz2
+  $ tar -xjf bob.example.project.tar.bz2
+  $ cd bob.example.project
 
-We now recommend you read the file ``README.rst`` situated at the root of the
-just downloaded material. It contains important information on other
-functionality such as document generation and unit testing, which will not be
-covered on this introductory material.
+We now recommend you read the file ``README.rst``, which is written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_ format, situated at the root of the just downloaded material.
+It contains important information on other functionality such as document generation and unit testing, which will not be covered on this introductory material.
 
 The anatomy of a minimal package should look like the following:
 
 .. code-block:: sh
 
   .
-  +-- MANIFEST.in   # extras to be installed, besides the python files
-  +-- README.rst    # a description of the package, in restructured-text format
-  +-- bootstrap.py  # stock script downloaded from zc.buildout's website
-  +-- buildout.cfg  # buildout configuration
-  +-- setup.py      # installation + requirements for this particular package
-  +-- docs          # documentation directory
-  |   +-- conf.py   # Sphinx configuration
-  |   +-- index.rst # Documentation starting point for Sphinx
-  +-- bob          # python package (a.k.a. "the code")
+  +-- MANIFEST.in       # extras to be installed, besides the python files
+  +-- README.rst        # a description of the package, in reStructuredText format
+  +-- bootstrap.py      # stock script downloaded from zc.buildout's website
+  +-- buildout.cfg      # buildout configuration
+  +-- setup.py          # installation + requirements for this particular package
+  +-- doc               # documentation directory
+  |   +-- conf.py       # Sphinx configuration
+  |   +-- index.rst     # Documentation starting point for Sphinx
+  +-- bob               # python package (a.k.a. "the code")
   |   +-- example
-  |   |   +-- script
+  |   |   +-- project
+  |   |   |   +-- script
+  |   |   |   |   +-- __init__.py
+  |   |   |   |   +-- version.py
   |   |   |   +-- __init__.py
-  |   |   |   +-- version.py
+  |   |   |   +-- test.py
   |   |   +-- __init__.py
-  |   |   +-- test.py
   |   +-- __init__.py
 
-Our example that you just downloaded contains these files and a few extra ones
-useful for this tutorial. Inspect the package so you are aware of its contents.
-All files are in text format and should be heavily commented. The most
-important file that requires your attention is ``setup.py``. This file contains
-the basic information for the Python package you will be creating. It defines
-scripts the package provides and dependencies it requires for execution. To
-customize the package to your needs, you will need to edit this file and modify
-it accordingly. Before doing so, it is suggested you go through all of this
-tutorial so you are familiar with the whole environment. The example package,
-as it is distributed, contains a fully working example.
-
-In the remainder of this document, we explain how to setup ``buildout.cfg`` so
-you can work in different operational modes - the ones which are more common
-development scenarios.
+Our example that you just downloaded contains these files and a few extra ones useful for this tutorial.
+Inspect the package so you are aware of its contents.
+All files are in text format and should be heavily commented.
+The most important file that requires your attention is ``setup.py``.
+This file contains the basic information for the Python package you will be creating.
+It defines scripts the package provides and dependencies it requires for execution.
+To customize the package to your needs, you will need to edit this file and modify it accordingly.
+Before doing so, it is suggested you go through all of this tutorial so you are familiar with the whole environment.
+The example package, as it is distributed, contains a fully working example.
+
+In the remainder of this document, we explain how to setup ``buildout.cfg`` so you can work in different operational modes - the ones which are more common development scenarios.
+
 
 Pure-Python Packages
 --------------------
 
-Pure-Python packages are the most common. They contain code that is exclusively
-written in Python. This contrasts to packages that are written in a mixture of
-Python and C/C++.
+Pure-Python packages are the most common.
+They contain code that is exclusively written in Python.
+This contrasts to packages that are written in a mixture of Python and C/C++, which are explained in more detail below.
+
+The package you cloned above is a pure-Python example package and contains all elements to get you started.
+It defines a single library module called ``bob.example.project``, which declares a simple script, called ``version.py`` that prints out the version of the dependent library ``bob.blitz``.
+When you clone the package, you will not find any executable as ``buildout`` needs to check all dependencies and install missing ones before you can execute anything.
+Particularly, it inspects the ``setup.py`` file in the root directory of the package, which contains all required information to build the package, all of which is contained in the ``setup`` function:
+
+.. code-block:: python
+
+  setup(
+    name = 'bob.example.project',
+    version = '0.0.1a0',
+    ...
+    packages = find_packages(),
+    ...
+    install_requires = [
+      'setuptools',
+      'bob.blitz'
+    ],
+    ...
+    namespace_packages = [
+      'bob',
+      'bob.example',
+    ],
+    ...
+    entry_points = {
+      'console_scripts' : [
+        'version.py = bob.example.project.script.version:main',
+      ],
+    },
+  )
+
+In detail, it defines the name and the version of this package, which files belong to the package (those files are automatically collected by the ``find_packages`` function), other packages that we depend on, namespaces (see below) and console scripts.
+The full set of options can be inspected in the `Setuptools documentation <http://pythonhosted.org/setuptools/setuptools.html>`_.
 
-The package you cloned above is a pure-Python example package and contains all
-elements to get you started. It defines a single library inside called
-``bob.example``, which declares a simple script, called ``version.py`` that
-prints out the version of |project|.  When you clone the package, you will not
-find any executable as ``buildout`` needs to check all dependencies and install
-missing ones before you can execute anything. Here is how to go from nothing to
-everything:
+To be able to use the package, we first need to build it.
+Here is how to go from nothing to everything:
 
 .. code-block:: sh
 
   $ python bootstrap.py
-  Creating directory '/home/user/work/tmp/bob.project.example/bin'.
-  Creating directory '/home/user/work/tmp/bob.project.example/parts'.
-  Creating directory '/home/user/work/tmp/bob.project.example/eggs'.
-  Creating directory '/home/user/work/tmp/bob.project.example/develop-eggs'.
-  Generated script '/home/user/work/tmp/bob.project.example/bin/buildout'.
+  Creating directory '/home/user/bob.example.project/bin'.
+  Creating directory '/home/user/bob.example.project/parts'.
+  Creating directory '/home/user/bob.example.project/eggs'.
+  Creating directory '/home/user/bob.example.project/develop-eggs'.
+  Generated script '/home/user/bob.example.project/bin/buildout'.
   $ ./bin/buildout
-  Develop: '/remote/filer.gx/user.active/aanjos/work/tmp/bob.project.example/.'
   Getting distribution for 'bob.buildout'.
-  Got bob.buildout 0.2.13.
+  Got bob.buildout 2.0.0.
   Getting distribution for 'zc.recipe.egg>=2.0.0a3'.
-  Got zc.recipe.egg 2.0.0.
-  Installing scripts.
+  Got zc.recipe.egg 2.0.1.
+  Develop: '/home/user/bob.example.project/.'
+  ...
+    Installing scripts.
+  Getting distribution for 'bob.extension'.
+  Processing bob.blitz-2.0.0.zip
+  ...
+  Got bob.blitz 2.0.0.
   ...
 
 .. note::
+  The Python shell used in the first line of the previous command set determines the Python interpreter that will be used for all scripts developed inside this package.
+  To build your environment around a different version of Python, just make sure to correctly choose the interpreter you wish to use.
+  If you just want to get things rolling, using ``python bootstrap.py`` will, in most cases, do the right thing.
 
-  The Python shell used in the first line of the previous command set
-  determines the Python interpreter that will be used for all scripts developed
-  inside this package. To build your environment around a different version of
-  Python, just make sure to correctly choose the interpreter you wish to use.
-  If you just want to get things rolling, using ``python bootstrap.py`` will,
-  in most cases, do the right thing.
+.. note::
+   When you have installed an older version of |project| -- i.e. |project| v1.x, you might need to uninstall it first, see https://github.com/idiap/bob/wiki/Installation.
 
 You should now be able to execute ``./bin/version.py``:
 
 .. code-block:: sh
 
   $ ./bin/version.py
-  The installed version of bob.blitz is `2.0.0a0'
-  bob.blitz is installed at `...'
-  bob.blitz depends on the following Python packages:
-   * bob.extension: 0.3.0a0 (...)
-   * numpy: 1.6.2 (/usr/lib/python2.7/dist-packages)
-   * distribute: 0.6.28dev-r0 (/usr/lib/python2.7/dist-packages)
-   * coverage: 3.7.1 (...)
-   * sphinx: 1.1.3 (/usr/lib/python2.7/dist-packages)
-   * nose: 1.1.2 (/usr/lib/python2.7/dist-packages)
-   * docutils: 0.8.1 (/usr/lib/python2.7/dist-packages)
-   * jinja2: 2.6 (/usr/lib/python2.7/dist-packages)
-   * pygments: 1.5 (/usr/lib/python2.7/dist-packages)
-  bob.blitz depends on the following C/C++ APIs:
-   * Python: 2.7.3
-   * Boost: 1.50.0
-   * Blitz++: 0.10
-   * NumPy: 0x01000009
-   * Compiler: ('gcc', '4.7.2')
+  bob.blitz: 2.0.0a0 [api=0x0200] (/home/user/bob.example.project/eggs/bob.blitz-2.0.0a0-py2.7-linux-x86_64.egg)
+    - c/c++ dependencies:
+      - Blitz++: 0.10
+      - Boost: 1.55.0
+      - Compiler: {'version': '4.7.2', 'name': 'gcc'}
+      - NumPy: {'abi': '0x01000009', 'api': '0x00000009'}
+      - Python: 2.7.8
+    - python dependencies:
+      - bob.extension: 0.3.0a0 (/home/user/bob.example.project/eggs/bob.extension-0.3.0a0-py2.7.egg)
+      - numpy: 1.8.1 (/usr/lib/python2.7/site-packages)
+      - setuptools: 5.4.1 (/home/user/bob.example.project/eggs/setuptools-5.4.1-py2.7.egg)
 
 Everything is now setup for you to continue the development of this package.
-Modify all required files to setup your own package name, description and
-dependencies. Start adding files to your library (or libraries) and, if you
-wish, make this package available in a place with public access to make your
-research public. We recommend using GitHub. Optionally, `drop-us a message
-<https://groups.google.com/d/forum/bob-devel>`_ talking about the availability
-of this package so we can add it to the growing list of `Satellite Packages`_.
+Modify all required files to setup your own package name, description and dependencies.
+Start adding files to your library (or libraries) and, if you wish, make this package available in a place with public access to make your research public.
+We recommend using GitHub.
+Optionally, `drop-us a message <https://groups.google.com/d/forum/bob-devel>`_ talking about the availability of this package so we can add it to the growing list of `Satellite Packages`_.
+
+
+Python Package Namespace
+========================
+
+We like to make use of namespaces to define combined sets of functionality that go well together.
+Python package namespaces are `explained in details here <http://peak.telecommunity.com/DevCenter/setuptools#namespace-package>`_ together with implementation details.
+For bob packages, we usually use the ``bob`` namespace, using several sub-namespaces such as ``bob.io``, ``bob.ip``, ``bob.learn``, ``bob.db`` or (like here) ``bob.example``.
+
+In particular, if you are creating a database access API, please consider putting all of your package contents *inside* the namespace ``bob.db.<package>``, therefore declaring two namespaces: ``bob`` and ``bob.db``.
+All standard database access APIs follow this strategy.
+Just look at our currently existing database `satellite packages`_ for examples.
+
+
+Creating Database Satellite Packages
+====================================
+
+Database satellite packages are special satellite packages that can hook-in |project|'s database manager ``bob_dbmanage.py``.
+Except for this detail, they should look exactly like a normal package.
+
+To allow the database to be hooked to the ``bob_dbmanage.py`` you must implement a non-virtual python class that inherits from :py:class:`bob.db.driver.Interface`.
+Your concrete implementation should then be described at the ``setup.py`` file with a special ``bob.db`` entry point:
+
+.. code-block:: python
+
+    # bob database declaration
+    'bob.db': [
+      'example = bob.db.example.driver:Interface',
+    ],
+
+At present, there is no formal design guide for databases.
+Nevertheless, it is considered a good practice to follow the design of currently existing database `satellite packages`_.
+This should ease migration in case of future changes.
+
 
 C or C++/Python Packages
 ------------------------
 
-Creating C++/Python bindings should be rather. Firstly, edit your ``setup.py``
-so that you include the following:
+Creating C++/Python bindings should be rather straightforward.
+Only few adaptations need to be performed to get the C/C++ code being compiled and added as an extension.
+For simplicity, we created an example package that includes a simple example of a C++ extension.
+You can check it out by:
+
+.. code-block:: sh
+
+  $ wget https://github.com/bioidiap/bob.extension/raw/master/examples/bob.example.extension.tar.bz2
+  $ tar -xjf bob.example.extension.tar.bz2
+  $ cd bob.example.extension
+
+One difference is that now an additional file ``requirements.txt`` can be found in the root directory of the package.
+In this file, all packages that are **directly** required to compile the C/C++ code in your package.
+**Indirectly** required packages will be downloaded and installed automatically.
+For our example, this is only the ``bob.blitz`` package.
+
+The second big difference comes in the ``setup.py``.
+To be able to import ``bob.extension`` and ``bob.blitz`` in the setup.py, we need to include some code:
 
 .. code-block:: python
 
+  setup_packages = ['bob.extension', 'bob.blitz']
+  bob_packages = []
+
   from setuptools import setup, find_packages, dist
-  dist.Distribution(dict(setup_requires=['bob.blitz', 'bob.core', 'bob.math']))
-  from bob.blitz.extension import Extension
-  ...
+  dist.Distribution(dict(setup_requires = setup_packages + bob_packages))
 
-  setup(
+We keep the ``setup_packages`` and ``bob_packages`` in separate variables since we will need them later.
+The ``bob_packages`` contain a list of bob packages that this extension **directly** depends on.
+In our example, we only depend on ``bob.blitz``, and we can leave the list empty.
 
-    name="bob.myext",
-    version="1.0.0",
-    ...
-    install_requires=[
-      'setuptools',
-      'bob.blitz',
-    ],
+As the second step, we need to add some lines in the header of the file to tell the ``setuptools`` system to compile our library with our ``Extension`` class:
+
+.. code-block:: python
+
+  # import the Extension class and the build_ext function from bob.blitz
+  from bob.blitz.extension import Extension, build_ext
+
+  # load the requirements.txt for additional requirements
+  from bob.extension.utils import load_requirements
+  build_requires = setup_packages + bob_packages + load_requirements()
+
+In fact, we don't use the extension from :py:class:`bob.extension.Extension`, but the one from ``bob.blitz.extension``, which is a derivation of this package.
+The difference is that in :py:class:`bob.blitz.extension.Extension` all header files and libraries for the ``Blitz++`` library are added.
+
+Third, we have to add an extension using the ``Extension`` class, by listing all C/C++ files that should be compiled into the extension:
+
+.. code-block:: python
+
+  setup(
     ...
-    namespace_packages=[
-      'bob',
-    ],
+    setup_requires = build_requires,
+    install_requires = build_requires,
     ...
-    ext_modules=[
+    ext_modules = [
       Extension("bob.myext._myext",
         [
           "bob/myext/ext/file1.cpp",
           "bob/myext/ext/file2.cpp",
           "bob/myext/ext/main.cpp",
         ],
-        bob_packages = [ #packages of bob to compile and link against
-          'bob.core',
-          'bob.math',
-        ],
-        packages = [ #other c/c++ api dependencies
-          'boost',
-        ],
-        boost_modules = [ # list of boost modules that should be linked
-          'filesystem'
-        ]
+        version = "1.0.0",
+        bob_packages = bob_packages
       ),
       ... #add more extensions if you wish
     ],
+    ...
+  )
+
+These modifications will allow you to compile extensions that are linked against our core Python-C++ bridge ``bob.blitz`` (be default).
+You can specify any other ``pkg-config`` module and that will be linked in (for example, ``boost`` or ``opencv``) using the ``packages`` parameter.
+For ``boost`` packages, you might need to define, which boost modules are required.
+By default, when using boost you should at least add the ``system`` module, i.e., by:
 
+.. code-block:: python
+
+  setup(
+    ...
+    ext_modules = [
+      Extension(
+        ...
+        packages = ['boost'],
+        boost_modules = ['system'],
+      ),
+      ...
+    ],
     ...
   )
 
-These modifications will allow you to compile extensions that are linked against our core Python-C++ bridge ``bob.blitz`` (be default), as well as ``bob.core`` and ``bob.math``.
-You can specify any other ``pkg-config`` module and that will be linked in (for example, ``boost`` or ``opencv``) using the ``packages`` setting as shown above.
 Other modules and options can be set manually using `the standard options for python extensions <http://docs.python.org/2/extending/building.html>`_.
 
 Most of the bob packages come with pure C++ code and python bindings.
@@ -226,47 +308,88 @@ When your library compiles and links against the pure C++ code, you can simply u
 This will automatically add the desired include and library directories, as well as the libraries and the required preprocessor options.
 
 .. note::
-  All ``bob_packages`` that you list have to be listed in the ``setup_requires`` line as in the second line of the above example.
+   Usually we provide one extension ``version`` that deals with versioning.
+   One example of such a ``version`` extension can be found in our example.
+
+In our example, we have defined a small C++ function, which also shows the basic bridge between ``numpy.ndarray`` and our C++ pendant ``Blitz++``.
+Basically, there are two C++ files for our extension.
+``bob/example/extension/Function.cpp`` contains the pure C++ implementation of the function.
+In ``bob/example/extension/main.cpp``, we define the Python bindings to that function, including the creation of a complete Python module called ``_library``.
+Additionally, we give a short example of how to use our documentation classes provided in this module (see below for more details).
+Finally, the function ``reverse`` from the module ``_library`` is imported into our module in the ``bob/example/extension/__init__.py`` file.
+
+To compile your C++ Python bindings and the pure C++ libraries, you can follow the same instructions as shown above:
+
+.. code-block:: sh
+
+  $ python bootstrap.py
+  ...
+  $ ./bin/buildout
+  ...
+
+.. note::
 
+   By default, we compile the source code (of this and all dependent packages) in debug mode.
+   If you want to change that, switch the according flag in the ``buildout.cfg`` to ``debug = False``, and the compilation will be done with optimization flags enabled.
 
-Pure C++ Libraries Inside your Package
-======================================
+Now, we can use the script ``./bin/reverse.py`` (that we have registered in the ``setup.py``) to reverse a list of floats, using the C++ implementation of the ``reverse`` function:
+
+.. code-block:: sh
+
+  $ ./bin/reverse.py 1 2 3 4 5
+  [1.0, 2.0, 3.0, 4.0, 5.0] reversed is [ 5.  4.  3.  2.  1.]
+
+We can also see that the function documentation has made it into the module, too:
+
+.. code-block:: sh
+
+  $ ./bin/python
+  >>> import bob.example.extension
+  >>> help(bob.example.extension)
+
+and that we can list version and the dependencies of our package:
+
+.. code-block:: sh
+
+  >>> print (bob.example.extension.version)
+  0.0.1a0
+  >>> print (bob.example.extension.get_config())
+  ...
+
+
+Pure C/C++ Libraries Inside your Package
+========================================
 
 If you want to provide a library with pure C++ code in your package as well, you can use the :py:class:`bob.extension.Library` class.
-It will automatically compile your C++ code using `CMake <http://www.cmake.org>`_ into a shared library that you can import in your own C++/Python bindings, as well as in other packages.
+It will automatically compile your C/C++ code using `CMake <http://www.cmake.org>`_ into a shared library that you can import in your own C/C++-Python bindings, as well as in other packages.
+Again, a complete example can be downloaded via:
+
+.. code-block:: sh
+
+  $ wget https://github.com/bioidiap/bob.extension/raw/master/examples/bob.example.library.tar.bz2
+  $ tar -xjf bob.example.library.tar.bz2
+  $ cd bob.example.library
 
 To generate a Library, simply add it in the list of ``ext_modules``:
 
 .. code-block:: python
 
-  from setuptools import setup, find_packages, dist
-  dist.Distribution(dict(setup_requires=['bob.blitz', 'bob.core', 'bob.math']))
+  ...
+  # import the Extension and Library classes and the build_ext function from bob.blitz
   from bob.blitz.extension import Extension, Library, build_ext
   ...
 
   setup(
 
-    name="bob.myext",
-    version="1.0.0",
-    ...
-    install_requires=[
-      'setuptools',
-      'bob.blitz',
-    ],
-    ...
-    namespace_packages=[
-      'bob',
-    ],
-    ...
-    ext_modules=[
+    ext_modules = [
+      # declare a pure C/C++ library just the same way as an extension
       Library("bob.myext.bob_myext",
         [
           "bob/myext/cpp/pure_cpp_file1.cpp",
           "bob/myext/cpp/pure_cpp_file2.cpp",
         ],
         version = "1.0.0",
-        bob_packages = [...],
-        packages = [...],
+        bob_packages = bob_packages,
       ),
       ... #add more Extensions if you wish
     ],
@@ -278,21 +401,24 @@ To generate a Library, simply add it in the list of ``ext_modules``:
     ...
   )
 
-
-The :py:class:`bob.extension.Library` class has mostly the same parameters as the :py:class:`bob.extension.Extension` class.
-To avoid later complications, you should follow two guidelines for bob packages:
+Again, we use the overloaded library class :py:class:`bob.blitz.extension.Library` instead of the :py:class:`bob.extension.Library`, but the parameters are identical, and identical to the ones of the :py:class:`bob.extension.Extension`.
+To avoid later complications, you should follow the guidelines for libraries in bob packages:
 
 1. The name of the C++ library need to be identical to the name of your package (replacing the '.' by '_').
    Also, the package name need to be part of it.
-   For example, to create a library for the ``bob.core`` package, it should be called ``bob.core.bob_core``.
+   For example, to create a library for the ``bob.myext`` package, it should be called ``bob.myext.bob_myext``.
    In this way it is assured that the libraries are found by the ``bob_packages`` parameter (see above).
 
 2. All header files that your C++ library should export need to be placed in the directory ``bob/myext/include/bob.myext``.
    Again, this is the default directory, where the ``bob_packages`` expect the includes to be.
+   This is also the directory that is added to your own library and to your extensions, so you don't need to specify that by hand.
 
-.. note::
-  Please note that we import both the :py:class:`bob.extension.Library` and the :py:class:`bob.extension.build_ext` classes from ``bob.extension``.
-  When a :py:class:`bob.extension.Library` is inside the list of ``ext_modules``, the ``cmd_class = {'build_ext': build_ext}`` parameter to the ``setup.py`` is required to be added.
+3. The include directory should contain a ``config.h`` file, which contains C/C++ preprocessor directives that contains the current version of your C/C++ API.
+   With this, we make sure that the version of the library that is linked into other packages is the expected one.
+   One such file is again given in our ``bob.example.library`` example.
+
+4. To avoid conflicts with other functions, you should put all your exported C++ functions into an appropriate namespace.
+   In our example, this should be something like ``bob::example::library``.
 
 The newly generated Library will be automatically linked to **all other** Extensions in the package.
 No worries, if the library is not used in the extension, the linker should be able to figure that out...
@@ -300,11 +426,40 @@ No worries, if the library is not used in the extension, the linker should be ab
 .. note:
   The clang linker seems not to be smart enough to detect unused libraries...
 
+You can also export your Python bindings to be used in other libraries.
+Unfortunately, this is an extremely tedious process and is not explained in detail here.
+As an example, you might want (or maybe not) to have a look into ``bob.blitz/bob/blitz/include/bob.blitz/capi.h``.
+
+
+Using boost modules
+===================
+
+If your C++ code relies on boost packages, you might need to tell, which boost libraries you are using.
+To enable one or several boost packages, the ``Extension`` and ``Library`` classes have a special set of
+To use boost modules package at your ``setup.py`` file, you will also need the same trick as with ``pkgconfig``::
+
+  from setuptools import dist
+  dist.Distribution(dict(setup_requires='bob.extension'))
+  from bob.extension.boost import boost
+
+After inclusion, you can just instantiate an object of type ``boost``::
+
+  >>> boost_pkg = boost('>= 1.47')
+  >>> boost.version # doctest: SKIP
+  1.50.0
+  >>> boost.include_directory # doctest: SKIP
+  '/usr/include'
+  >>> libpaths, libnames = boost.libconfig(['system', 'python'])
+  >>> print(libpaths) # doctest: SKIP
+  ['/usr/lib']
+  >>> print(libnames) # doctest: SKIP
+  ['boost_system-mt', 'boost_python-mt-py27']
+
 
 Compiling your Library and Extension
 ====================================
 
-To compile your C++ Python bindings and the pure C++ libraries, you can follow the same instructions as shown above:
+As shown above, to compile your C++ Python bindings and the pure C++ libraries, you can follow the simple instructions:
 
 .. code-block:: sh
 
@@ -332,21 +487,19 @@ Again, after compilation this directory can be safely removed.
 Another environment variable enables parallel compilation of C or C++ code.
 Use ``BOB_BUILD_PARALLEL=X`` (where x is the number of parallel processes you want) to enable parallel building.
 
-.. warning:: This option is BETA and might not work on your system.
-
 
 Documenting your C/C++ Python Extension
 =======================================
 
-One part of this package are some functions that makes it easy to generate a
-proper python documentation for your bound C/C++ functions.  This documentation
-can be used after:
+One part of this package are some functions that makes it easy to generate a proper python documentation for your bound C/C++ functions.
+This documentation can be used after:
 
 .. code-block:: c++
 
    #include <bob.extension/documentation.h>
 
 **Function documentation**
+++++++++++++++++++++++++++
 
 To generate a properly aligned function documentation, you can use:
 
@@ -358,16 +511,11 @@ To generate a properly aligned function documentation, you can use:
      "Optional long function description"
    );
 
-.. note::
-
-   Please assure that you define this variable as ``static``.
 
 .. note::
 
-   If you want to document a member function of a class, you should use set
-   fourth boolean option to true.  This is required since the default python
-   class member documentation is indented four more spaces, which we need to
-   balance:
+   If you want to document a member function of a class, you should use set fourth boolean option to true.
+   This is required since the default python class member documentation is indented four more spaces, which we need to balance:
 
    .. code-block:: c++
 
@@ -378,27 +526,19 @@ To generate a properly aligned function documentation, you can use:
         true
       );
 
-Using this object, you can add several parts of the function that need
-documentation:
+Using this object, you can add several parts of the function that need documentation:
 
-1. ``description.add_prototype("variable1, variable2", "return1, return2");``
-   can be used to add function definitions (i.e., ways how to use your
-   function).  This function needs to be called at least once.  If the function
-   does not define a return value, it can be left out (in which case the
-   default ``"None"`` is used).
+1. ``description.add_prototype("variable1, variable2", "return1, return2");`` can be used to add function definitions (i.e., ways how to use yourfunction).
+   This function needs to be called at least once.
+   If the function does not define a return value, it can be left out (in which case the default ``"None"`` is used).
 
-2. ``description.add_parameter("variable1, variable2", "datatype", "Variable
-   description");`` should be defined for each variable that you have used in
-   the prototypes.
+2. ``description.add_parameter("variable1, variable2", "datatype", "Variable description");`` should be defined for each variable that you have used in the prototypes.
 
-3. ``description.add_return("return1", "datatype", "Return value
-   description");`` should be defined for each return value that you have used
-   in the prototypes.
+3. ``description.add_return("return1", "datatype", "Return value description");`` should be defined for each return value that you have used in the prototypes.
 
 .. note::
 
-   All these functions return a reference to the object, so that you can use
-   them in line, e.g.:
+   All these functions return a reference to the object, so that you can use them in line, e.g.:
 
    .. code-block:: c++
 
@@ -412,22 +552,16 @@ Finally, when binding you function, you can use:
 
 a. ``description.name()`` to get the name of the function
 
-b. ``description.doc()`` to get the aligned documentation of the function,
-   properly indented and broken at 80 characters (by default).  This call will
-   check that all parameters and return values are documented, and add a ``..
-   todo`` directive if not.
+b. ``description.doc()`` to get the aligned documentation of the function, properly indented and broken at 80 characters (by default).
+   This call will check that all parameters and return values are documented, and add a ``.. todo::`` directive if not.
 
-Sphinx directives like ``.. note::``, ``.. warning::`` or ``.. math::`` will be
-automatically detected and aligned, when they are used as one-line directive,
-e.g.:
+Sphinx directives like ``.. note::``, ``.. warning::`` or ``.. math::`` will be automatically detected and aligned, when they are used as one-line directive, e.g.:
 
 .. code-block:: c++
 
    "(more text)\n\n.. note:: This is a note\n\n(more text)"
 
-Also, enumerations and listings (using the ``*`` character to define a list
-element) are handled automatically:
-
+Also, enumerations and listings (using the ``*`` character to define a list element) are handled automatically:
 
 .. code-block:: c++
 
@@ -435,20 +569,17 @@ element) are handled automatically:
 
 .. note::
 
-   Please assure that directives are surrounded by double ``\n`` characters
-   (see example above) so that they are put as paragraphs.  Otherwise, they
-   will not be displayed correctly.
+   Please assure that directives are surrounded by double ``\n`` characters (see example above) so that they are put as paragraphs.
+   Otherwise, they will not be displayed correctly.
 
 .. note::
 
    The ``.. todo::`` directive seems not to like being broken at 80 characters.
-   If you want to use ``.. todo::``, please call, e.g.,
-   ``description.doc(10000)`` to avoid line breaking.
+   If you want to use ``.. todo::``, please call, e.g., ``description.doc(10000)`` to avoid line breaking.
 
 .. note::
 
-   To increase readability, you might want to split your documentation lines,
-   e.g.:
+   To increase readability, you might want to split your documentation lines, e.g.:
 
    .. code-block:: c++
 
@@ -459,102 +590,73 @@ element) are handled automatically:
       "\n"
       "(more text)"
 
-Leading white-spaces in the documentation string are handled correctly, so you
-can use several layers of indentation.
+Leading white-spaces in the documentation string are handled correctly, so you can use several layers of indentation.
 
 **Class documentation**
++++++++++++++++++++++++
 
-To document a bound class, you can use the
-``bob::extension::ClassDoc("class_name", "Short class description", "Optional
-long class description")`` function to align and wrap your documentation.
-Again, during binding you can use the functions ``description.name()`` and
-``description.doc()`` as above.
+To document a bound class, you can use the ``bob::extension::ClassDoc("class_name", "Short class description", "Optional long class description")`` function to align and wrap your documentation.
+Again, during binding you can use the functions ``description.name()`` and ``description.doc()`` as above.
 
-Additionally, the class documentation has a function to add constructor
-definitions, which takes an ``bob::extension::FunctionDoc`` object.  The
-shortest way to get a proper class documentation is:
+Additionally, the class documentation has a function to add constructor definitions, which takes an ``bob::extension::FunctionDoc`` object.
+The shortest way to get a proper class documentation is:
 
 .. code-block:: c++
 
-   static auto my_class_doc =
-       bob::extension::ClassDoc("class_name", "Short description", "Long Description")
-         .add_constructor(
-           bob::extension::FunctionDoc("class_name", "Constructor Description")
-            .add_prototype("param1", "")
-            .add_parameter("param1", "type1", "Description of param1")
-         )
+   auto my_class_doc =
+     bob::extension::ClassDoc("class_name", "Short description", "Long Description")
+       .add_constructor(
+         bob::extension::FunctionDoc("class_name", "Constructor Description")
+          .add_prototype("param1", "")
+          .add_parameter("param1", "type1", "Description of param1")
+       )
    ;
 
 .. note::
 
-   The second parameter ``""`` in ``add_prototype`` prevents the output type
-   (which otherwise defaults to ``"None"``) to be written.
+   The second parameter ``""`` in ``add_prototype`` prevents the output type (which otherwise defaults to ``"None"``) to be written.
 
 .. note::
 
-   For constructor documentations, there is no need to declare them as member
-   functions. This is done automatically for you.
+   For constructor documentations, there is no need to declare them as member functions.
+   This is done automatically for you.
+
+Currently, the ``ClassDoc`` allows to highlight member functions or variables at the beginning of the class documentation.
+This highlighting is still under development and might not work as expected.
 
-Currently, the ClassDoc allows to highlight member functions or variables at
-the beginning of the class documentation.  This highlighting is still under
-development and might not work as expected.
 
 Possible speed issues
 =====================
 
-In order to speed up the loading time of the modules, you might want to reduce
-the amount of documentation that is generated (though I haven't experienced any
-speed differences).  For this purpose, just compile your bindings using the
-"-DBOB_SHORT_DOCSTRINGS" compiler option, e.g. by adding it to the setup.py as
-follows (see also above):
+In order to speed up the loading time of the modules, you might want to reduce the amount of documentation that is generated (though I haven't experienced any speed differences).
+For this purpose, just compile your bindings using the ``"-DBOB_SHORT_DOCSTRINGS"`` compiler option, e.g. by simply define an environment variable ``BOB_SHORT_DOCSTRINGS=1`` before invoking ``buildout``.
 
-.. code-block:: python
+In any of these cases, only the short descriptions will be returned as the doc string.
 
-   ...
-   ext_modules=[
-     Extension("bob.myext._myext",
-       [
-         ...
-       ],
-       ...
-       define_macros = [('BOB_SHORT_DOCSTRINGS',1)],
-       ),
-   ],
-   ...
-
-or simply define an environment variable ``BOB_SHORT_DOCSTRINGS=1`` before
-invoking buildout.
-
-In any of these cases, only the short descriptions will be returned as the doc
-string.
-
-Document Generation and Unit Testing
-------------------------------------
 
-If you intend to distribute your newly created package, please consider
-carefully documenting and creating unit tests for your package. Documentation
-is a great starting point for users and unit tests can be used to check
-functionality in unexpected circumstances such as variations in package
-versions.
+Documentation Generation and Unit Testing
+-----------------------------------------
+
+If you intend to distribute your newly created package, please consider carefully documenting and creating unit tests for your package.
+Documentation is a great starting point for users and unit tests can be used to check functionality in unexpected circumstances such as variations in package versions.
+
 
 Documentation
 =============
 
-To write documentation, use the `Sphinx`_ Document Generator. A template has
-been setup for you under the ``docs`` directory. Get familiar with Sphinx and
-then unleash the writer in you.
+To write documentation, use the `Sphinx`_ Documentation Generator.
+A template has been setup for you under the ``docs`` directory.
+Get familiar with Sphinx and then unleash the writer in you.
 
-Once you have edited both ``docs/conf.py`` and ``docs/index.rst`` you can run
-the document generator executing:
+Once you have edited both ``doc/conf.py`` and ``doc/index.rst`` you can run the documentation generator executing:
 
 .. code-block:: sh
 
-  $ ./bin/sphinx-build docs sphinx
+  $ ./bin/sphinx-build doc sphinx
   ...
 
-This example generates the output of the sphinx processing in the directory
-``sphinx``. You can find more options for ``sphinx-build`` using the ``-h``
-flag:
+This example generates the output of the sphinx processing in the directory ``sphinx``.
+You can find more options for ``sphinx-build`` using the ``-h`` flag:
 
 .. code-block:: sh
 
@@ -563,139 +665,83 @@ flag:
 
 .. note::
 
-  If the code you are distributing corresponds to the work described in a
-  publication, don't forget to mention it in your ``README.rst`` file.
+  If the code you are distributing corresponds to the work described in a publication, don't forget to mention it in your ``README.rst`` file.
+
 
 Unit Tests
 ==========
 
-Writing unit tests is an important asset on code that needs to run in different
-platforms and a great way to make sure all is OK. Test units are run with
-`nose`_. To run the test units on your package:
+Writing unit tests is an important asset on code that needs to run in different platforms and a great way to make sure all is OK.
+Test units are run with nose_.
+To run the test units on your package call:
 
 .. code-block:: sh
 
   $ ./bin/nosetests -v
-  test_version (bob.example.test.MyTests) ... ok
+  bob.example.library.test.test_reverse ... ok
 
   ----------------------------------------------------------------------
-  Ran 1 test in 0.001s
+  Ran 1 test in 0.253s
 
   OK
 
 
-Creating Database Satellite Packages
-------------------------------------
-
-Database satellite packages are special satellite packages that can hook-in
-|project|'s database manager ``bob_dbmanage.py``. Except for this detail, they
-should look exactly like a normal package.
-
-To allow the database to be hooked to the ``bob_dbmanage.py`` you must
-implement a non-virtual python class that inherits from
-:py:class:`bob.db.driver.Interface`. Your concrete implementation should then
-be described at the ``setup.py`` file with a special ``bob.db`` entry point:
-
-.. code-block:: python
-
-    # bob database declaration
-    'bob.db': [
-      'replay = bob.db.replay.driver:Interface',
-      ],
-
-At present, there is no formal design guide for databases. Nevertheless, it is
-considered a good practice to follow the design of currently existing database
-`satellite packages`_. This should ease migration in case of future changes.
-
-Python Package Namespace
-------------------------
-
-We like to make use of namespaces to define combined sets of functionality that
-go well together. Python package namespaces are `explained in details here
-<http://peak.telecommunity.com/DevCenter/setuptools#namespace-package>`_
-together with implementation details. Two basic namespaces are available when
-you are operating with |project| or add-ons, such as database access APIs
-(shipped separately): the ``bob`` namespace is reserved for utilities built and
-shiped with |project|. The namespace ``bob`` (as for *external* |project|
-packages) should be used for all other applications that are meant to be
-distributed and augment |project|'s features.
-
-The example package you downloaded creates package inside the ``bob``
-namespace called ``example``. Examine this example in details and understand
-how to distributed namespace'd packages in the URL above.
-
-In particular, if you are creating a database access API, please consider
-putting all of your package contents *inside* the namespace
-``bob.db.<package>``, therefore declaring two namespaces: ``bob`` and
-``bob.db``. All standard database access APIs follow this strategy. Just look
-at our currently existing database `satellite packages`_ for examples.
-
 Distributing Your Work
 ----------------------
 
-To distribute a package, we recommend you use PyPI. The `The Hitchhiker’s Guide
-to Packaging <http://guide.python-distribute.org/>`_ contains details and good
-examples on how to achieve this.
+To distribute a package, we recommend you use PyPI.
+`The Hitchhiker’s Guide to Packaging <http://guide.python-distribute.org/>`_ contains details and good examples on how to achieve this.
 
-Version Numbering Scheme
-------------------------
 
-We recommend you follow |project|'s version numbering scheme using a 3-tier
-string: ``M.m.p``. The value of ``M`` is a number starting at 1. This number is
-changed in case of a major release that brings new APIs and concepts to the
-table. The value of ``m`` is a number starting at 0 (zero). Every time a new
-API is available (but no conceptual modifications are done to the platform)
-that number is increased. Finally, the value of p represents the patch level,
-starting at 0 (zero). Every time we need to post a new version of |project|
-that does **not** bring incompatible API modifications, that number is
-increased. For example, version 1.0.0 is the first release of |project|.
+Version Numbering Scheme
+========================
+
+We recommend you follow |project|'s version numbering scheme using a 3-tier string: ``M.m.p``.
+The value of ``M`` is a number starting at 1.
+This number is changed in case of a major release that brings new APIs and concepts to the table.
+The value of ``m`` is a number starting at 0.
+Every time a new API is available (but no conceptual modifications are done to the platform)
+that number is increased.
+Finally, the value of p represents the patch level, starting at 0.
+Every time we need to post a new version of |project| that does **not** bring incompatible API modifications, that number is increased.
+For example, version 1.0.0 is the first release of |project|.
 Version 1.0.1 would be the first patch release.
 
 .. note::
 
-  The numbering scheme for your package and |project|'s may look the same, but
-  should be totally independent of each other. |project| may be on version
-  3.4.2 while your package, still compatible with that release could be on
-  1.4.5. You should state on your ``setup.py`` file which version of |project|
-  your package is compatible with, using the standard notation defined for
-  setuptools installation requirements for packages.
+  The numbering scheme for your package and |project|'s may look the same, but should be totally independent of each other.
+  |project| may be on version 3.4.2 while your package, still compatible with that release could be on 1.4.5.
+  You should state on your ``setup.py`` file which version of |project| your package is compatible with, using the standard notation defined for setuptools installation requirements for packages.
 
-You may use version number extenders for alpha, beta, and candidate releases
-with the above scheme, by appending ``aN``, ``bN`` or ``cN`` to the version
-number. The value of ``N`` should be an integer starting at zero. Python's
-setuptools package will correctly classifier package versions following this
-simple scheme. For more information on package numbers, consult Python's `PEP
-386`_. Here are lists of valid python version numbers following this scheme::
+You may use version number extenders for alpha, beta, and candidate releases with the above scheme, by appending ``aN``, ``bN`` or ``cN`` to the version number.
+The value of ``N`` should be an integer starting at zero.
+Python's setuptools package will correctly classifier package versions following this simple scheme.
+For more information on package numbers, consult Python's `PEP 386`_.
+Here are lists of valid python version numbers following this scheme::
 
   0.0.1
   0.1.0a35
   1.2.3b44
   2.4.99c32
 
+
 Release Methodology for Satellite Packages
-------------------------------------------
-
-Here is a set of steps we recommend you follow when releasing a new version of
-your satellite package:
-
-1. First decide on the new version number your package will get. If you are
-   making a minor, API preserving, modification on an existing stable package
-   (already published on PyPI), just increment the last digit on the version.
-   Bigger changes may require that you signal them to users by changing the
-   first digits of the package. Alpha, beta or candidate releases don't need to
-   have their main components of the version changed, just bump-up the last
-   digit. For example ``1.0.3a3`` would become ``1.0.3a4``;
-
-2. In case you are making an API modification to your package, you should think
-   if you would like to branch your repository at this position. You don't have
-   to care about this detail with new packages, naturally.
-
-   If required, branching will allow you to still make modifications (patches)
-   on the old version of the code and develop on the ``master`` branch for the
-   new release, in parallel.  It is important to branch when you break
-   functionality on existing code - for example to reach compatibility with an
-   upcoming version of |project|.  After a few major releases, your repository
-   should look somewhat like this::
+==========================================
+
+Here is a set of steps we recommend you follow when releasing a new version of your satellite package:
+
+1. First decide on the new version number your package will get.
+   If you are  making a minor, API preserving, modification on an existing stable package (already published on PyPI), just increment the last digit on the version.
+   Bigger changes may require that you signal them to users by changing the first digits of the package.
+   Alpha, beta or candidate releases don't need to have their main components of the version changed, just bump-up the last digit.
+   For example ``1.0.3a3`` would become ``1.0.3a4``;
+
+2. In case you are making an API modification to your package, you should think if you would like to branch your repository at this position.
+   You don't have to care about this detail with new packages, naturally.
+
+   If required, branching will allow you to still make modifications (patches) on the old version of the code and develop on the ``master`` branch for the new release, in parallel.
+   It is important to branch when you break functionality on existing code - for example to reach compatibility with an upcoming version of |project|.
+   After a few major releases, your repository should look somewhat like this::
 
       ----> time
 
@@ -712,42 +758,38 @@ your satellite package:
                       +---x-------x-------> 1.0
 
    The ``o``'s mark the points in which you decided to branch your project.
-   The ``x``'s mark places where you decided to release a new version of your
-   satellite package on PyPI. The ``-``'s mark commits on your repository. Time
-   flies from left to right.
+   The ``x``'s mark places where you decided to release a new version of your satellite package on PyPI.
+   The ``-``'s mark commits on your repository.
+   Time flies from left to right.
 
-   In this ficticious representation, the ``master`` branch continue under
-   development, but one can see older branches don't receive much attention
-   anymore.
+   In this ficticious representation, the ``master`` branch continue under development, but one can see older branches don't receive much attention anymore.
 
-   Here is an example for creating a branch at github (many of our satellite
-   packages are hosted there). Let's create a branch called ``1.1``::
+   Here is an example for creating a branch at github (many of our satellite packages are hosted there).
+   Let's create a branch called ``1.1``::
 
-    $ git branch 1.1
-    $ git checkout 1.1
-    $ git push origin 1.1
+     $ git branch 1.1
+     $ git checkout 1.1
+     $ git push origin 1.1
 
-3. When you decide to release something publicly, we recommend you **tag** the
-   version of the package on your repository, so you have a marker to what code
-   you actually published on PyPI. Tagging on github would go like this::
+3. When you decide to release something publicly, we recommend you **tag** the version of the package on your repository, so you have a marker to what code you actually published on PyPI.
+   Tagging on github would go like this::
 
-    $ git tag v1.1.0
-    $ git push && git push --tags
+     $ git tag v1.1.0
+     $ git push && git push --tags
 
    Notice use prefix tag names with ``v``.
 
-4. Finally, after branching and tagging, it is time for you to publish your new
-   package on PyPI. When the package is ready and you have tested it, just do
-   the following::
+4. Finally, after branching and tagging, it is time for you to publish your new package on PyPI.
+   When the package is ready and you have tested it, just do the following::
 
-    $ python setup.py register #if you modified your setup.py or README.rst
-    $ python setup.py sdist --formats=zip upload
+     $ python setup.py register #if you modified your setup.py or README.rst
+     $ python setup.py sdist --formats zip upload
 
     .. note::
-      You can also check the .zip file that will be uploaded to PyPI before
-      actually uploading it. Just call::
+      You can also check the .zip file that will be uploaded to PyPI before actually uploading it.
+      Just call::
 
-        $ python setup.py sdist --formats=zip upload
+        $ python setup.py sdist --formats zip
 
       and check what was put into the ``dist`` directory.
 
@@ -755,14 +797,10 @@ your satellite package:
 
 
 Upload Additional Documentation to PythonHosted.org
----------------------------------------------------
+===================================================
 
-In case you have written additional sphinx documentation in your satellite
-package that you want to share with the world, there is an easy way to push the
-documentation to `PythonHosted.org <http://pythonhosted.org>`_.  More detailed
-information are given `here
-<http://pythonhosted.org/an_example_pypi_project/buildanduploadsphinx.html>`_,
-which translates roughly into:
+In case you have written additional sphinx documentation in your satellite package that you want to share with the world, there is an easy way to push the documentation to `PythonHosted.org <http://pythonhosted.org>`_.
+More detailed information are given `here <http://pythonhosted.org/an_example_pypi_project/buildanduploadsphinx.html>`__, which translates roughly into:
 
 1. Edit your setup.py and add the required package ``sphinx-pypi-upload``:
 
@@ -790,23 +828,23 @@ which translates roughly into:
 
     [build_sphinx]
     source-dir = docs
-    build-dir  = build/sphinx
+    build-dir  = sphinx
     all_files  = 1
 
     [upload_sphinx]
-    upload-dir = build/sphinx/html
+    upload-dir = sphinx/html
 
 3. Create and upload the documentation::
 
     $ ./bin/python setup.py build_sphinx
     $ ./bin/python setup.py upload_sphinx
 
-The link to the documentation will automatically be added to the PyPI page of
-your package. Usually it is a good idea to check the documentation after
-building and before uploading.
+The link to the documentation will automatically be added to the PyPI page of your package.
+Usually it is a good idea to check the documentation after building and before uploading.
+
 
 Satellite Packages Available
-----------------------------
+============================
 
 Look here for our growing list of `Satellite Packages`_.
 
diff --git a/doc/index.rst b/doc/index.rst
index 719e59f..3925113 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -20,6 +20,7 @@ Documentation
    :maxdepth: 2
 
    guide
+   cpp_api
    py_api
 
 Indices and tables
diff --git a/doc/links.rst b/doc/links.rst
index c40ae9b..4884a0e 100644
--- a/doc/links.rst
+++ b/doc/links.rst
@@ -5,6 +5,7 @@
 .. Copyright (C) 2011-2014 Idiap Research Institute, Martigny, Switzerland
 
 .. _bob's website: https://www.idiap.ch/software/bob
+.. _bob: https://www.idiap.ch/software/bob
 .. _c++: http://www2.research.att.com/~bs/C++.html
 .. _distutils: http://docs.python.org/distutils/
 .. _git: http://git-scm.com/
diff --git a/examples/bob.example.extension.tar.bz2 b/examples/bob.example.extension.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..e77836864d0086140a3f640a03f57096d863ba39
GIT binary patch
literal 22898
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
OlOhkD9N#^4aR2~^t7o_X

literal 0
HcmV?d00001

diff --git a/examples/bob.example.library.tar.bz2 b/examples/bob.example.library.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..5303ad10f44f65dc744d6cd61a1a4e8aeeaeaa95
GIT binary patch
literal 23328
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%0DAPbqD)IbFF)B{+@k
zt8<2E$L8|Pi7q0hQdw^&eac+!Y;xG=l56RdHk}Q3wdZgbYjwFedunKe9OQN4$h*7b
zbfoY^x2;`4W}i%~gd?RF_)NUR#y|0{bd|ueol0wZ+7%2nT}8c06>Vz#H!tBl#I%^>
z+dT)DrU`8ZGujVob9RcDv>ajDa6~mhNYO{=h-C4_X%>m6_I&bRy<f)dPj*MeLyx|G
zg-B)nZf4i1pAt63-D$8?oM6GF^5eIEd(gt0lM4)0t@ejGST34m9lY(d&*w>kOHcLm
z2}tb_U79m{*SXW7E0zWJo@bI}vz~QI<h<X-nM>oljz!9|rzH6{EPIx<&S|TGn89O~
z#!P`H&0UABeN<M=yfr5+rc!abWtqdpWj~vOGOP_wY47Qh$mBHK)a=%gazb@Nb%RHa
z<!R<KkEiFo`Eb~9$*NA*Fk{0rr-k06WiJ1<;;~Vv-g1r;U96L@x=n1T>3+oTvoXm1
z>#d{P6Bh+fkoRhQ6kQguW$EV(rjNE}E{`0ZEULMf!`Pau>vSL`W$C?lp}!(T^CZ>s
z&Mrue-^CI*K`d>-ZJ9OSIB%(C?7k9varZUJBQ{e+uO3o=w4gHoR!2(f2j#>o&z0uZ
z+@4^!abicY2mgYD{w5CAPx_Dl`o-=3bcxxH(;0E>;r!)nA0D|s6j#1(@atXl5mt>@
zI}e_Y<&}8{bTmXCBnN$U-WAM~m^YXC{&rP%$0KjgO%96N&3A(}apL`aPr3d5<+IyU
z;%$PZFL`|EU3m19m(Qa(hMcA=epW%&li8p8EA7{rRQ6BHKaP2^+(zZB1-F&IK0TSV
zA+S)JnT?xs!-*wgrQaEDnj4?;&sUUd`u8KJEQ58K)^DYt$qXNlyfIwY_dCQ+qvSlx
z=b!t&S)|^#*G$@c@Wi$c1;RPu@63IcosbP)Fq`>pl}3-K70*4%DPBicG)9SCJr%&?
z@I!Iq4VP|~SufLD%md5rZrGx4{ON&5O3Tmri;J&p;p3?nzx!LbIAfv7q`!{u&!w1V
zbFJ(#ekJ4?s`N|KXF<)M=8}j0_n*vJ*s#*|mye5q%-J7_Wv@d#-A>$jE-Tb6xlD1n
zciTLL6FZ6or))_M@-pV0DNrBNda=bhLbgGD&;1mcgq+DvQ;dDO%5SZ^aN)hDxzUVZ
z1=+c~VwW)ca-N#7p{*lp;Z;`Kja!1hna%rhqfmi$j?u3!=A3J+4%#ZW{GO~cQ*_%D
z(ikA>@UcTo(Zo+Lxp&v`?87}}0xz6%t($kfdbi5*aF~edB$>LJV~2}OZnRlVzxgfw
z_OBz(cZ6JBS|nM1xR~a8#{ACFcbVv}*wJvzspgFA{Eqhe_|tE8d$%51zxj67?#Txh
z8?gA=+_m1lIM_%uLSce{#&P+yf)7^=^UlfgoZ^c!PJDDjU?bmY)|qj#@6R4M<Wcw2
zpjO%=PVPzAx@Q>@Dn~YDD?M4^Iqy(2!<E|?dMyPN=d(RXa?)dQ$W-HCNXnWu<3gs+
zQSZ(+L4{L3lM;)V`1Jbbr8a9H3k$5+bD{E4@$=%{Ax{?@i1JJm$(QV4*}3Rb??d+D
z?x`$-e{42ymvZoIdcT~rNn6t3AbW=>ONXmgv$THNTtf@<AJ?v~l9|l4F<OE%bE!c>
ziD!>XB-5k`f=ZQY#@b76t^YhXymM;Y&L=WY-E&tO-mQ_I9d)?wInQ>%E1@3`+DwdU
zYTu?1;xch!Rp+{^zdSDTRfU+%K5{2OB(^H|Mbdko_BqPROm3DlU&!g|r=$igHF)c%
z_W60c^vWi;lYfic91ABE_wfFEb@SEJgsb+vf(x`Se-6y8O1Sl%zx1l}|D$&%`iZF6
J8|z$l004w9G2;LL

literal 0
HcmV?d00001

diff --git a/examples/bob.example.project.tar.bz2 b/examples/bob.example.project.tar.bz2
index 4269e2d06c3bfb1e6aa64a4e3bb791aa87c06504..7a1b686e0e92e1c74f9ce605d225e2cd3906f3da 100644
GIT binary patch
delta 19572
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

delta 19700
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
Ozj%?WMZg5m@n!%53JyI0

diff --git a/setup.py b/setup.py
index c92783c..7963503 100644
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@ from setuptools import setup, find_packages
 setup(
 
     name="bob.extension",
-    version="0.3.0a0",
+    version="2.0.0a0",
     description="Helps projects building Python/C++ extensions for Bob",
     url='http://github.com/bioidiap/bob.extension',
     license="BSD",
@@ -32,6 +32,7 @@ setup(
       ],
 
     classifiers = [
+      'Framework :: Bob',
       'Development Status :: 3 - Alpha',
       'Intended Audience :: Developers',
       'License :: OSI Approved :: BSD License',
-- 
GitLab