From 857877c80678705acdeacf00f057858efd008e30 Mon Sep 17 00:00:00 2001
From: Amir MOHAMMADI <amir.mohammadi@idiap.ch>
Date: Wed, 18 May 2022 18:51:00 +0200
Subject: [PATCH] improve installation instructions and add an updated tutorial

---
 doc/help.rst     | 10 +++-------
 doc/index.rst    | 11 ++++++-----
 doc/install.rst  | 26 ++++++++++++++++++--------
 doc/links.rst    |  5 +++++
 doc/packages.rst | 15 ++++-----------
 5 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/doc/help.rst b/doc/help.rst
index ea045c0..80f34fa 100644
--- a/doc/help.rst
+++ b/doc/help.rst
@@ -32,7 +32,7 @@ There are several ways to get help if you are facing a problem.
 First, you should search for possible existing answers in:
 
 * https://stackoverflow.com/questions/tagged/python-bob
-* https://www.idiap.ch/software/bob/discuss
+* https://www.idiap.ch/software/bob/discuss (read only mailing list)
 * https://www.idiap.ch/software/bob/wiki
 
 or you may just want to search on the Internet for possible answers.
@@ -48,11 +48,7 @@ How to contribute
 =================
 
 Bob is open source and we welcome contributions.
-If you find a bug, please let use know through our mailing list:
-https://www.idiap.ch/software/bob/discuss.
-If you want to contribute, please also get in touch with us through our mailing list
-first.
-We maintain a mirror of Bob packages on https://github.com/bioidiap/ which should allow
-you to open pull requests on Bob packages.
+We maintain a mirror of Bob packages on https://github.com/bioidiap/.
+Feel free to open issues and/or pull requests on this mirror.
 
 .. include:: links.rst
diff --git a/doc/index.rst b/doc/index.rst
index ccc7dfc..d29f191 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -10,11 +10,11 @@ Bob_ is a free signal-processing and machine learning toolbox originally develop
 the Biometrics Security and Privacy Group, the Biosignal Processing Group, and the
 Research and Development Engineers at `Idiap`_ Research Institute, Switzerland.
 
-The toolbox is written in a mix of `Python`_ and `C++`_ and is designed to be both
-efficient and reduce development time. It is composed of a reasonably large number of
-:ref:`independent packages <bob.packages>` that implement tools for image, audio &
-video processing, machine learning & pattern recognition, and a lot more task specific
-packages.
+The newest version of the toolbox is written in pure `Python`_ and is designed
+to be both efficient and reduce development time. It is composed of seveal
+:ref:`independent packages <bob.packages>` that implement tools for image, audio
+& video processing, machine learning & pattern recognition, and a lot more task
+specific packages.
 
 
 .. toctree::
@@ -23,6 +23,7 @@ packages.
    install
    help
    packages
+   tutorial
 
 
 Index of all packages
diff --git a/doc/install.rst b/doc/install.rst
index 8a20820..7ae0d8f 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -8,32 +8,35 @@ By now you should know that Bob is made of several :ref:`bob.packages`. There is
 no single package that installs all Bob packages because that would just take
 too much space. Follow the instruction below to install any Bob package.
 
-We offer pre-compiled binary installations of Bob using `conda`_ for Linux and
-MacOS 64-bit operating systems. Follow the guide below to learn to install any
-Bob package. Bob does not work on Windows.
+We offer conda_ and pip_ installations of Bob for Linux and MacOS 64-bit
+operating systems (Most packages support arm 64-bit on MacOS too). Follow the
+guide below to learn to install any Bob package. *Bob does not work on
+Windows*.
 
-#.  Install `mamba`_  (`mambaforge`_ is preferred) or `conda`_ (`miniforge`_ is
+#.  Install `mamba`_  (`mambaforge`_ is preferred) or conda_ (`miniforge`_ is
     preferred) and get familiar with it. The instructions below use ``mamba``
     because it's faster than ``conda``, but you may replace it by ``conda``.
 
-#.  Make sure you have an up-to-date `conda`_ installation (conda 4.4 and above
+#.  Make sure you have an up-to-date conda_ installation (conda 4.4 and above
     is needed) with the **correct configuration** by running the commands below:
 
     .. code:: sh
 
        # install mamba if you don't yet have it installed.
+       # mamba must be installed in your base environment.
        $ conda install -n base -c conda-forge mamba
        $ mamba update -n base -c conda-forge conda mamba
        $ conda config --set show_channel_urls True
 
 #.  Create an environment with the specific Bob packages that you need. For
-    example if you want to install ``bob.io.base`` and ``bob.bio.face``:
+    example if you want to install ``bob.io.base``, ``bob.bio.face``, and ``pytorch``:
 
     .. code:: sh
 
        $ mamba create --name bob_env1 --override-channels \
-         -c https://www.idiap.ch/software/bob/conda -c conda-forge \
-         python=3 bob.io.base bob.bio.face
+         -c https://www.idiap.ch/software/bob/conda \
+         -c conda-forge \
+         python=3 bob.io.base bob.bio.face pytorch
 
 #.  Then activate the environment and configure its channels to make sure the
     channel list is correct in the future as well:
@@ -51,6 +54,13 @@ Bob package. Bob does not work on Windows.
        $ conda activate bob_env1
        $ mamba install bob.bio.video ...
 
+#. Alternatively, you can use pip_ to install the packages but we don't test our pip packages:
+
+    .. code:: sh
+
+       $ conda activate bob_env1
+       $ pip install bob.bio.face ...
+
 For a comprehensive list of packages that are either part of |project| or use
 |project|, please visit :ref:`bob.packages`.
 
diff --git a/doc/links.rst b/doc/links.rst
index 4bd0cb3..343cffa 100644
--- a/doc/links.rst
+++ b/doc/links.rst
@@ -9,15 +9,19 @@
 .. _c++: https://isocpp.org/
 .. _CMake: http://www.cmake.org
 .. _conda: https://conda.io/
+.. _dask: https://dask.org
 .. _Dvipng: http://savannah.nongnu.org/projects/dvipng/
 .. _FFMpeg: http://ffmpeg.org
 .. _fftw: http://www.fftw.org/
 .. _giflib: http://giflib.sourceforge.net/
 .. _GPL-2.0: http://www.opensource.org/licenses/GPL-2.0
 .. _GPL-3.0: http://www.opensource.org/licenses/GPL-3.0
+.. _h5py: http://www.h5py.org/
 .. _HDF5 License: ftp://ftp.hdfgroup.org/HDF5/current/src/unpacked/COPYING
 .. _HDF5: http://www.hdfgroup.org/HDF5
 .. _idiap: http://www.idiap.ch
+.. _imageio-ffmpeg: https://github.com/imageio/imageio-ffmpeg
+.. _imageio: https://imageio.readthedocs.io
 .. _install: https://www.idiap.ch/software/bob/install
 .. _IPython: http://ipython.scipy.org
 .. _Lapack: http://www.netlib.org/lapack
@@ -41,6 +45,7 @@
 .. _NumPy: http://www.numpy.org
 .. _packages: https://www.idiap.ch/software/bob/packages
 .. _Pillow: http://python-pillow.github.io/
+.. _pip: https://pip.pypa.io/en/stable/
 .. _pkg-config: http://www.freedesktop.org/wiki/Software/pkg-config/
 .. _Python-2.0: http://www.opensource.org/licenses/Python-2.0
 .. _python: http://www.python.org
diff --git a/doc/packages.rst b/doc/packages.rst
index fc83461..ee0396d 100644
--- a/doc/packages.rst
+++ b/doc/packages.rst
@@ -21,12 +21,6 @@ Machine Learning
 * :ref:`bob.learn.em`
 * :ref:`bob.pipelines`
 
-Modules for Developers
-----------------------
-
-* :ref:`bob.devtools`
-* :ref:`bob.extension`
-
 
 Biometric Recognition
 ---------------------
@@ -47,9 +41,8 @@ Presentation Attack Detection (anti-spoofing)
 * :ref:`bob.fusion.base`
 
 
-Database Interfaces
--------------------
+Modules for Developers
+----------------------
 
-* :ref:`bob.pipelines`
-* :ref:`bob.bio.base`
-* :ref:`bob.pad.base`
+* :ref:`bob.devtools`
+* :ref:`bob.extension`
-- 
GitLab