From 567cf5ff5ece14b9a293b52300801ecada954691 Mon Sep 17 00:00:00 2001
From: Amir MOHAMMADI <amir.mohammadi@idiap.ch>
Date: Tue, 9 May 2017 14:43:38 +0200
Subject: [PATCH] Improve the installation instructions Fix #72

---
 doc/installation.rst | 146 +++++++++++++++++++++++++------------------
 doc/links.rst        |   9 ++-
 2 files changed, 91 insertions(+), 64 deletions(-)

diff --git a/doc/installation.rst b/doc/installation.rst
index 07c77b3b..ed088f33 100644
--- a/doc/installation.rst
+++ b/doc/installation.rst
@@ -8,126 +8,152 @@
 Installation Instructions
 =========================
 
-As noted before, this package is part of the ``bob.bio`` packages, which in turn are part of the signal-processing and machine learning toolbox Bob_.
-To install `Packages of Bob <https://www.idiap.ch/software/bob/packages>`_, please read the `Installation Instructions <https://www.idiap.ch/software/bob/install>`_.
-For Bob_ to be able to work properly, some dependent packages are required to be installed.
-Please make sure that you have read the `Dependencies <https://gitlab.idiap.ch/bob/bob/wikis/Dependencies>`_ for your operating system.
+As noted before, this package is part of the ``bob.bio`` packages, which in
+turn are part of the signal-processing and machine learning toolbox Bob_. To
+install Bob_, please read the `Installation Instructions <bobinstall_>`_.
 
 .. note::
-  Currently, running Bob_ under MS Windows in not yet supported.
-  However, we found that running Bob_ in a virtual Unix environment such as the one provided by VirtualBox_ is a good alternative.
+  Currently, running Bob_ under MS Windows in not yet supported. However, we
+  found that running Bob_ in a virtual Unix environment such as the one
+  provided by VirtualBox_ is a good alternative.
 
-Installation via pip
-----------------------
-
-The most simple and most convenient way to use the ``bob.bio`` tools is to install it using `pip`.
-After setting up your python environment (you can find the instructions `here <https://www.idiap.ch/software/bob/install>`_), use the sequence of commands to
-first search the ``bob.bio`` packages and then install it.
+Then, to install the ``bob.bio`` packages and in turn maybe the database
+packages that you want to use, use conda_ to install them:
 
 .. code-block:: sh
 
-   $ pip search bob.bio # searching
-   $ pip install bob.bio.base # Install the base package
-
-
-Installation via zc.buildout
-----------------------------
-
-Another convenient way to use the ``bob.bio`` tools is to use a ``zc.buildout`` package, as explained in more detail `here <https://www.idiap.ch/software/bob/install#using-zcbuildout-for-production>`__.
-There, in the ``eggs`` section of the ``buildout.cfg`` file, simply list the ``bob.bio`` packages that you want, like:
+    $ conda search bob.bio  # searching
+    $ conda search bob.db  # searching
+    $ conda install bob.bio.base bob.bio.<bioname> bob.db.<dbname>
 
-.. code-block:: python
+where you would replace ``<bioname>`` and ``<dbname>`` with the name of
+packages that you want to use.
 
-   eggs = bob.bio.base
-          bob.bio.face
-          bob.bio.gmm
-          bob.bio.video
-          bob.db.youtube
-          gridtk
+An example installation
+-----------------------
 
-in order to download and install all packages that are required for your experiments.
-In the example above, you might want to run a video face recognition experiments using the :py:class:`bob.bio.face.preprocessor.FaceDetect` and the :py:class:`bob.bio.face.extractor.DCTBlocks` feature extractor defined in :ref:`bob.bio.face <bob.bio.face>`, the :py:class:`bob.bio.gmm.algorithm.IVector` algorithm defined in :ref:`bob.bio.gmm <bob.bio.gmm>` and the video extensions defined in :ref:`bob.bio.video <bob.bio.video>`, using the YouTube faces database interface defined in :ref:`bob.db.youtube <bob.db.youtube>`.
-Running the simple command line:
+For example, you might want to run a video face recognition experiments using
+the :py:class:`bob.bio.face.preprocessor.FaceDetect` and the
+:py:class:`bob.bio.face.extractor.DCTBlocks` feature extractor defined in
+:ref:`bob.bio.face <bob.bio.face>`, the
+:py:class:`bob.bio.gmm.algorithm.IVector` algorithm defined in
+:ref:`bob.bio.gmm <bob.bio.gmm>` and the video extensions defined in
+:ref:`bob.bio.video <bob.bio.video>`, using the YouTube faces database
+interface defined in :ref:`bob.db.youtube <bob.db.youtube>`. Running the
+command line below will install all the required packages:
 
 .. code-block:: sh
 
-   $ buildout
-
-will the download and install all dependent packages locally (relative to your current working directory), and add them to your environment.
+    $ source activate <bob_conda_environment>
+    $ conda install bob.bio.base \
+                    bob.bio.face \
+                    bob.bio.gmm \
+                    bob.bio.video \
+                    bob.db.youtube \
+                    gridtk
 
 
 Databases
 ---------
 
-With ``bob.bio`` you will run biometric recognition experiments using some default biometric recognition databases.
-Though the verification protocols are implemented in ``bob.bio``, the original data are **not included**.
-To download the original data of the databases, please refer to the according Web-pages.
-For a list of supported databases including their download URLs, please refer to the `verification_databases <https://www.idiap.ch/software/bob/packages>`_.
+With ``bob.bio`` you will run biometric recognition experiments using some
+default biometric recognition databases. Though the verification protocols are
+implemented in ``bob.bio``, the original data are **not included**. To download
+the original data of the databases, please refer to the according Web-pages.
+For a list of supported databases including their download URLs, please refer
+to the `verification_databases <packages_>`_.
 
-After downloading the original data for the databases, you will need to tell ``bob.bio``, where these databases can be found.
-For this purpose, we have decided to implement a special file, where you can set your directories.
-By default, this file is located in ``~/.bob_bio_databases.txt``, and it contains several lines, each line looking somewhat like:
+After downloading the original data for the databases, you will need to tell
+``bob.bio``, where these databases can be found. For this purpose, we have
+decided to implement a special file, where you can set your directories. By
+default, this file is located in ``~/.bob_bio_databases.txt``, and it contains
+several lines, each line looking somewhat like:
 
 .. code-block:: text
 
    [YOUR_ATNT_DIRECTORY] = /path/to/your/directory
 
 .. note::
-   If this file does not exist, feel free to create and populate it yourself.
 
+   If this file does not exist, feel free to create and populate it yourself.
 
-Please use ``databases.py`` for a list of known databases, where you can see the raw ``[YOUR_DATABASE_PATH]`` entries for all databases that you haven't updated, and the corrected paths for those you have.
 
+Please use ``databases.py`` for a list of known databases, where you can see
+the raw ``[YOUR_DATABASE_PATH]`` entries for all databases that you haven't
+updated, and the corrected paths for those you have.
 
 .. note::
-   If you have installed only ``bob.bio.base``, there is no database listed -- as all databases are included in other packages, such as :ref:`bob.bio.face <bob.bio.face>` or :ref:`bob.bio.spear <bob.bio.spear>`.
+
+   If you have installed only ``bob.bio.base``, there is no database listed --
+   as all databases are included in other packages, such as
+   :ref:`bob.bio.face <bob.bio.face>` or :ref:`bob.bio.spear <bob.bio.spear>`.
 
 
 Test your Installation
 ----------------------
 
-One of the scripts that were generated during the bootstrap/buildout step is a test script.
-To verify your installation, you should run the script running the nose tests for each of the ``bob.bio`` packages:
+You can also install the ``nose`` package to test your installation and use
+that to verify your installation:
 
 .. code-block:: sh
 
+  $ conda install nose  # install nose
   $ nosetests -vs bob.bio.base
   $ nosetests -vs bob.bio.gmm
   ...
 
-Some of the tests that are run require the images of the `AT&T database`_ database.
-If the database is not found on your system, it will automatically download and extract the `AT&T database`_ a temporary directory, **which will not be erased**.
+You should run the script running the nose tests for each of the ``bob.bio``
+packages separately.
+
+.. code-block:: sh
+
+  $ nosetests -vs bob.bio.base
+  $ nosetests -vs bob.bio.gmm
+  ...
+
+Some of the tests that are run require the images of the `AT&T database`_
+database. If the database is not found on your system, it will automatically
+download and extract the `AT&T database`_ a temporary directory, **which will
+not be erased**.
 
 To avoid the download to happen each time you call the nose tests, please:
 
-1. Download the `AT&T database`_ database and extract it to the directory of your choice.
-2. Set an environment variable ``ATNT_DATABASE_DIRECTORY`` to the directory, where you extracted the database to.
-   For example, in a ``bash`` you can call:
+1. Download the `AT&T database`_ database and extract it to the directory of
+   your choice.
+2. Set an environment variable ``ATNT_DATABASE_DIRECTORY`` to the directory,
+   where you extracted the database to. For example, in a ``bash`` you can
+   call:
 
 .. code-block:: sh
 
   $ export ATNT_DATABASE_DIRECTORY=/path/to/your/copy/of/atnt
 
 .. note::
-  To set the directory permanently, you can also change the ``atnt_default_directory`` in the file `bob/bio/base/test/utils.py <file:../bob/bio/base/test/utils.py>`_.
-  In this case, there is no need to set the environment variable any more.
 
-In case any of the tests fail for unexplainable reasons, please send a report through our `mailing list`_.
+  To set the directory permanently, you can also change the
+  ``atnt_default_directory`` in the file `bob/bio/base/test/utils.py
+  <file:../bob/bio/base/test/utils.py>`_. In this case, there is no need to set
+  the environment variable any more.
 
-.. note::
-  Usually, all tests should pass with the latest stable versions of the Bob_ packages.
-  In other versions, some of the tests may fail.
+In case any of the tests fail for unexplainable reasons, please send a report
+through our `mailing list`_.
 
+.. note::
+  Usually, all tests should pass with the latest stable versions of Bob_
+  packages. In other versions, some of the tests may fail.
 
 
 Generate this documentation
 ---------------------------
 
-Generally, the documentation of this package is `available online <http://pythonhosted.org/bob.bio.base>`__, and this should be your preferred resource.
-However, to generate this documentation locally, you call:
+Generally, the documentation of this package is
+`available online <http://pythonhosted.org/bob.bio.base>`__, and this should be
+your preferred resource. However, to generate this documentation locally, you
+call:
 
 .. code-block:: sh
 
+  $ conda install sphinx  # install sphinx
   $ sphinx-build doc sphinx
 
 Afterward, the documentation is available and you can read it, e.g., by using:
@@ -137,6 +163,4 @@ Afterward, the documentation is available and you can read it, e.g., by using:
   $ firefox sphinx/index.html
 
 
-.. _buildout.cfg: file:../buildout.cfg
-
 .. include:: links.rst
diff --git a/doc/links.rst b/doc/links.rst
index 00de6c9d..9d2e5d71 100644
--- a/doc/links.rst
+++ b/doc/links.rst
@@ -4,9 +4,9 @@
 
 .. This file contains all links we use for documentation in a centralized place
 
-.. _idiap: http://www.idiap.ch
-.. _bob: http://www.idiap.ch/software/bob
-.. _idiap at gitlab: http://gitlab.idiap.ch/bob
+.. _idiap: https://www.idiap.ch
+.. _bob: https://www.idiap.ch/software/bob
+.. _idiap at gitlab: https://gitlab.idiap.ch/bob
 .. _at&t database: http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html
 .. _gridtk: https://pypi.python.org/pypi/gridtk
 .. _buildout: http://www.buildout.org
@@ -19,3 +19,6 @@
 .. _virtualbox: https://www.virtualbox.org
 .. _hdf5: http://www.hdfgroup.org/HDF5
 .. _mailing list: https://www.idiap.ch/software/bob/discuss
+.. _packages: https://www.idiap.ch/software/bob/packages
+.. _bobinstall: https://www.idiap.ch/software/bob/install
+.. _conda: https://conda.io
-- 
GitLab