From 6cada9ab9e87711d2493684577809c7c26da1acc Mon Sep 17 00:00:00 2001
From: Amir MOHAMMADI <amir.mohammadi@idiap.ch>
Date: Thu, 7 Nov 2019 15:41:49 +0100
Subject: [PATCH] Clean up and improve the docs Add bob.devtools Fix mistakes
 in the docs Sort the list of packages as they are supposed to be sorted
 Mention bob.paper packages as examples of Bob

---
 .gitignore           | 111 -------------------------------------------
 README.rst           |  29 +++++++----
 conda/meta.yaml      |  29 +++++------
 doc/index.rst        |  89 ++++++++++++++++++++++++----------
 doc/readme_index.rst |  29 ++++++-----
 packages.txt         |  25 +++++-----
 6 files changed, 128 insertions(+), 184 deletions(-)

diff --git a/.gitignore b/.gitignore
index d1a2ad6..ab031ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,118 +1,7 @@
 *.swo
 *.swp
 *~
-doc/bob.ap/
-doc/bob.bio.base/
-doc/bob.bio.caffe_face/
-doc/bob.bio.face/
-doc/bob.bio.face_ongoing/
-doc/bob.bio.htface/
-doc/bob.bio.gmm/
-doc/bob.bio.spear/
-doc/bob.bio.vein/
-doc/bob.bio.video/
-doc/bob.blitz/
-doc/bob.buildout/
-doc/bob.core/
-doc/bob.db.arface/
-doc/bob.db.asvspoof/
-doc/bob.db.asvspoof2017/
-doc/bob.db.atnt/
-doc/bob.db.atvskeystroke/
-doc/bob.db.avspoof/
-doc/bob.db.banca/
-doc/bob.db.base/
-doc/bob.db.biosecure/
-doc/bob.db.biosecurid.face/
-doc/bob.db.casme2/
-doc/bob.db.caspeal/
-doc/bob.db.cbsr_nir_vis_2/
-doc/bob.db.cohface/
-doc/bob.db.cuhk_cufs/
-doc/bob.db.cuhk_cufsf/
-doc/bob.db.fargo/
-doc/bob.db.frgc/
-doc/bob.db.fv3d/
-doc/bob.db.gbu/
-doc/bob.db.hci_tagging/
-doc/bob.db.ijba/
-doc/bob.db.ijbc/
-doc/bob.db.iris/
-doc/bob.db.kboc16/
-doc/bob.db.lfw/
-doc/bob.db.livdet2013/
-doc/bob.db.maskattack/
-doc/bob.db.mnist/
-doc/bob.db.mobio/
-doc/bob.db.msu_mfsd_mod/
-doc/bob.db.multipie/
-doc/bob.db.nist_sre12/
-doc/bob.db.nivl/
-doc/bob.db.oulunpu/
-doc/bob.db.pericrosseye/
-doc/bob.db.pola_thermal/
-doc/bob.db.putvein/
-doc/bob.db.replay/
-doc/bob.db.replaymobile/
-doc/bob.db.scface/
-doc/bob.db.utfvp/
-doc/bob.db.uvad/
-doc/bob.db.verafinger/
-doc/bob.db.voicepa/
-doc/bob.db.voxforge/
-doc/bob.db.wine/
-doc/bob.db.xm2vts/
-doc/bob.db.youtube/
-doc/bob.extension/
-doc/bob.fusion.base/
-doc/bob.io.audio/
-doc/bob.io.base/
-doc/bob.io.image/
-doc/bob.io.matlab/
-doc/bob.io.video/
-doc/bob.ip.base/
-doc/bob.ip.caffe_extractor/
-doc/bob.ip.color/
-doc/bob.ip.dlib
-doc/bob.ip.draw/
-doc/bob.ip.facedetect/
-doc/bob.ip.facelandmarks/
-doc/bob.ip.flandmark/
-doc/bob.ip.gabor/
-doc/bob.ip.mtcnn/
-doc/bob.ip.optflow.hornschunck/
-doc/bob.ip.optflow.liu/
-doc/bob.ip.qualitymeasure/
-doc/bob.ip.skincolorfilter/
-doc/bob.ip.tensorflow_extractor/
-doc/bob.learn.activation/
-doc/bob.learn.boosting/
-doc/bob.learn.em/
-doc/bob.learn.libsvm/
-doc/bob.learn.linear/
-doc/bob.learn.mlp/
-doc/bob.learn.pytorch/
-doc/bob.learn.tensorflow/
-doc/bob.math/
-doc/bob.measure/
-doc/bob.pad.base/
-doc/bob.pad.face/
-doc/bob.pad.vein/
-doc/bob.pad.voice/
-doc/bob.rppg.base/
-doc/bob.sp/
 doc/bob/
 doc/extra-intersphinx.txt
-doc/gridtk/
 doc/nitpick-exceptions.txt
-doc/bob.db.drive
-doc/bob.db.stare
-doc/bob.db.chasedb1
-doc/bob.db.iostar
-doc/bob.db.hrf
-doc/bob.db.rimoner3
-doc/bob.db.drionsdb
-doc/bob.db.refuge
-doc/bob.db.drishtigs1
-doc/bob.ip.binseg
 sphinx/
diff --git a/README.rst b/README.rst
index fc06fdc..da5902d 100644
--- a/README.rst
+++ b/README.rst
@@ -4,6 +4,7 @@ Bob's Documentation Aggregation Repository
 
 This repository will build the documentation of all Bob packages at the same
 time.
+The built documentation is served at: https://www.idiap.ch/software/bob/documentation
 
 Adding a new package
 ====================
@@ -12,23 +13,31 @@ To add a new package:
 
 * Make sure the package is **public** first. Do not add private packages here.
 * Make sure the package is in https://gitlab.idiap.ch/bob/bob first.
-* Add it in ``conda/meta.yaml`` and ``requirements.txt``.
+* Add it in ``conda/meta.yaml`` and ``packages.txt``.
 * Add it in ``doc/index.rst`` (you need to add it in several places in this file).
 * Add it in ``doc/readme_index.rst``.
-* Add it in ``.gitignore``.
 * If it plots something using matplotlib during its documentation generation,
   make sure you add a symlink for it in the docs folder.
 
 Test this package (build the documentation)
 ===========================================
 
-The steps to test this package is similar to other bob packages except that you
-need to run the `before_build.sh` script before testing. Checkout bob.admin in
-an upper folder and make sure its repository is up-to-date. Then, run::
+To build and test this package, you can use bob.devtools.
+After installing bob.devtools, run::
 
-    $ ./before_build.sh
-    $ conda activate base
-    $ ../bob.admin/conda/conda-build.sh --python=3 conda
+    $ bdt local docs -vv packages.txt
 
-See https://gitlab.idiap.ch/bob/bob/wikis/Save-the-CI-time for up-to-date
-instructions.
+This will setup everything and build the documentation.
+
+However, if you want to iterate on the documentation and keep building it, it's faster
+to create a conda environment and build the docs manually::
+
+    $ bdt local docs -vv packages.txt  # run this once so it setups everything for you
+    $ bdt create -vv bob_docs  # create a conda environment named ``bob_docs``
+    $ conda activate bob_docs
+
+Then, to build the documentation, run::
+
+    $ sphinx-build doc sphinx
+
+Pay attention to warning messages and carefully inspect the built documentation.
diff --git a/conda/meta.yaml b/conda/meta.yaml
index 3336650..c133e8e 100644
--- a/conda/meta.yaml
+++ b/conda/meta.yaml
@@ -12,13 +12,15 @@ requirements:
   run:
     - python
     - setuptools
-    # this should be the same as requirements.txt
+    # this should be the same as packages.txt
     - bob
     - bob.ap
     - bob.bio.base
     - bob.bio.caffe_face
     - bob.bio.face
+    - bob.bio.face_ongoing
     - bob.bio.gmm
+    - bob.bio.htface
     - bob.bio.spear
     - bob.bio.vein
     - bob.bio.video
@@ -38,15 +40,22 @@ requirements:
     - bob.db.casme2
     - bob.db.caspeal
     - bob.db.cbsr_nir_vis_2
+    - bob.db.chasedb1
     - bob.db.cohface
     - bob.db.cuhk_cufs
     - bob.db.cuhk_cufsf
+    - bob.db.drionsdb
+    - bob.db.drishtigs1
+    - bob.db.drive
+    - bob.db.fargo
     - bob.db.frgc
     - bob.db.fv3d
     - bob.db.gbu
     - bob.db.hci_tagging
+    - bob.db.hrf
     - bob.db.ijba
     - bob.db.ijbc
+    - bob.db.iostar
     - bob.db.iris
     - bob.db.kboc16
     - bob.db.lfw
@@ -62,9 +71,12 @@ requirements:
     - bob.db.pericrosseye
     - bob.db.pola_thermal
     - bob.db.putvein
+    - bob.db.refuge
     - bob.db.replay
     - bob.db.replaymobile
+    - bob.db.rimoner3
     - bob.db.scface
+    - bob.db.stare
     - bob.db.utfvp
     - bob.db.uvad
     - bob.db.verafinger
@@ -73,7 +85,7 @@ requirements:
     - bob.db.wine
     - bob.db.xm2vts
     - bob.db.youtube
-    - bob.db.fargo
+    - bob.devtools
     - bob.extension
     - bob.fusion.base
     - bob.io.audio
@@ -82,6 +94,7 @@ requirements:
     - bob.io.matlab
     - bob.io.video
     - bob.ip.base
+    - bob.ip.binseg
     - bob.ip.caffe_extractor
     - bob.ip.color
     - bob.ip.dlib
@@ -113,18 +126,6 @@ requirements:
     - bob.rppg.base
     - bob.sp
     - gridtk
-    - bob.bio.htface
-    - bob.bio.face_ongoing
-    - bob.db.drive
-    - bob.db.stare
-    - bob.db.chasedb1
-    - bob.db.iostar
-    - bob.db.hrf
-    - bob.db.rimoner3
-    - bob.db.drionsdb
-    - bob.db.refuge
-    - bob.db.drishtigs1
-    - bob.ip.binseg
 test:
   commands:
     - sphinx-build {{ project_dir }}/doc {{ project_dir }}/sphinx
diff --git a/doc/index.rst b/doc/index.rst
index b21902b..ee8f7d9 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -9,6 +9,36 @@ Start here
 
 * :ref:`bob_main_page`
 
+.. note::
+   Bob paper packages can serve as good examples of how to use Bob. Search for
+   ``bob.paper`` in our Gitlab: https://gitlab.idiap.ch/bob?filter=bob.paper **AND** in
+   PyPI: https://pypi.org/search/?q=bob.paper&c=Framework+::+Bob for paper packages.
+   Please note that the older a ``bob.paper`` package is, it is more likely that it uses
+   some deprecated practices.
+
+   For example, you can look at:
+
+   * https://gitlab.idiap.ch/bob/bob.paper.icml2017 on how to evaluate a new CNN-based
+     face recognition algorithm on face recognition databases. (Note that the
+     ``evaluate.py`` command is replaced by ``bob bio evaluate`` in recent versions of
+     Bob.)
+   * https://gitlab.idiap.ch/bob/bob.paper.btas2018_siliconemask/tree/master/bob/paper/btas2018_siliconemask/database
+     and https://gitlab.idiap.ch/bob/bob.db.oulunpu/ for good examples of how to create
+     new database interfaces for the ``bob.bio`` and ``bob.pad`` frameworks.
+
+.. note::
+   Use :ref:`bob.devtools <bob.devtools>` if you want to develop Bob packages or create
+   a new package. **DO NOT** modify (including adding extra files) the source code of
+   Bob packages in your Conda environments. Typically, Bob packages can be extended
+   without modifying the original package. So you may want to put your new code in a new
+   package instead of modifying the original package. Also, Conda uses hard links to
+   create new environments from a cache folder. Editing a file in one of the
+   environments will edit that file in **ALL** of your environments. The only safe way
+   to recover from this is to delete your Conda installation completely and installing
+   everything again from scratch.
+
+Please find the documentation of all Bob packages below.
+
 Basic Functionality
 -------------------
 
@@ -63,6 +93,7 @@ Machine Learning
 Modules for Developers
 ----------------------
 
+* :ref:`bob.devtools`
 * :ref:`bob.extension`
 * :ref:`bob.blitz`
 * :ref:`bob.buildout`
@@ -108,7 +139,16 @@ Remote Heart Rate Measurement
 Database Interfaces
 -------------------
 
+Base Database Packages
+^^^^^^^^^^^^^^^^^^^^^^
+
 * :ref:`bob.db.base`
+* :ref:`bob.bio.base`
+* :ref:`bob.pad.base`
+
+Interfaces
+^^^^^^^^^^
+
 * :ref:`bob.db.arface`
 * :ref:`bob.db.asvspoof2017`
 * :ref:`bob.db.asvspoof`
@@ -121,15 +161,22 @@ Database Interfaces
 * :ref:`bob.db.casme2`
 * :ref:`bob.db.caspeal`
 * :ref:`bob.db.cbsr_nir_vis_2`
+* :ref:`bob.db.chasedb1`
 * :ref:`bob.db.cohface`
 * :ref:`bob.db.cuhk_cufs`
 * :ref:`bob.db.cuhk_cufsf`
+* :ref:`bob.db.drionsdb`
+* :ref:`bob.db.drishtigs1`
+* :ref:`bob.db.drive`
+* :ref:`bob.db.fargo`
 * :ref:`bob.db.frgc`
 * :ref:`bob.db.fv3d`
 * :ref:`bob.db.gbu`
 * :ref:`bob.db.hci_tagging`
+* :ref:`bob.db.hrf`
 * :ref:`bob.db.ijba`
 * :ref:`bob.db.ijbc`
+* :ref:`bob.db.iostar`
 * :ref:`bob.db.iris`
 * :ref:`bob.db.kboc16`
 * :ref:`bob.db.lfw`
@@ -145,9 +192,12 @@ Database Interfaces
 * :ref:`bob.db.pericrosseye`
 * :ref:`bob.db.pola_thermal`
 * :ref:`bob.db.putvein`
+* :ref:`bob.db.refuge`
 * :ref:`bob.db.replay`
 * :ref:`bob.db.replaymobile`
+* :ref:`bob.db.rimoner3`
 * :ref:`bob.db.scface`
+* :ref:`bob.db.stare`
 * :ref:`bob.db.utfvp`
 * :ref:`bob.db.uvad`
 * :ref:`bob.db.verafinger`
@@ -156,16 +206,6 @@ Database Interfaces
 * :ref:`bob.db.wine`
 * :ref:`bob.db.xm2vts`
 * :ref:`bob.db.youtube`
-* :ref:`bob.db.fargo`
-* :ref:`bob.db.drive`
-* :ref:`bob.db.stare`
-* :ref:`bob.db.chasedb1`
-* :ref:`bob.db.iostar`
-* :ref:`bob.db.hrf`
-* :ref:`bob.db.rimoner3`
-* :ref:`bob.db.drionsdb`
-* :ref:`bob.db.refuge`
-* :ref:`bob.db.drishtigs1`
 
 
 
@@ -182,8 +222,8 @@ Index of all Packages
    bob.bio.caffe_face <bob/bob.bio.caffe_face/doc/index.rst>
    bob.bio.face <bob/bob.bio.face/doc/index.rst>
    bob.bio.face_ongoing <bob/bob.bio.face_ongoing/doc/index.rst>
-   bob.bio.htface <bob/bob.bio.htface/doc/index.rst>
    bob.bio.gmm <bob/bob.bio.gmm/doc/index.rst>
+   bob.bio.htface <bob/bob.bio.htface/doc/index.rst>
    bob.bio.spear <bob/bob.bio.spear/doc/index.rst>
    bob.bio.vein <bob/bob.bio.vein/doc/index.rst>
    bob.bio.video <bob/bob.bio.video/doc/index.rst>
@@ -203,15 +243,22 @@ Index of all Packages
    bob.db.casme2 <bob/bob.db.casme2/doc/index.rst>
    bob.db.caspeal <bob/bob.db.caspeal/doc/index.rst>
    bob.db.cbsr_nir_vis_2 <bob/bob.db.cbsr_nir_vis_2/doc/index.rst>
+   bob.db.chasedb1 <bob/bob.db.chasedb1/doc/index.rst>
    bob.db.cohface <bob/bob.db.cohface/doc/index.rst>
    bob.db.cuhk_cufs <bob/bob.db.cuhk_cufs/doc/index.rst>
    bob.db.cuhk_cufsf <bob/bob.db.cuhk_cufsf/doc/index.rst>
+   bob.db.drionsdb <bob/bob.db.drionsdb/doc/index.rst>
+   bob.db.drishtigs1 <bob/bob.db.drishtigs1/doc/index.rst>
+   bob.db.drive <bob/bob.db.drive/doc/index.rst>
+   bob.db.fargo <bob/bob.db.fargo/doc/index.rst>
    bob.db.frgc <bob/bob.db.frgc/doc/index.rst>
    bob.db.fv3d <bob/bob.db.fv3d/doc/index.rst>
    bob.db.gbu <bob/bob.db.gbu/doc/index.rst>
    bob.db.hci_tagging <bob/bob.db.hci_tagging/doc/index.rst>
+   bob.db.hrf <bob/bob.db.hrf/doc/index.rst>
    bob.db.ijba <bob/bob.db.ijba/doc/index.rst>
    bob.db.ijbc <bob/bob.db.ijbc/doc/index.rst>
+   bob.db.iostar <bob/bob.db.iostar/doc/index.rst>
    bob.db.iris <bob/bob.db.iris/doc/index.rst>
    bob.db.kboc16 <bob/bob.db.kboc16/doc/index.rst>
    bob.db.lfw <bob/bob.db.lfw/doc/index.rst>
@@ -227,9 +274,12 @@ Index of all Packages
    bob.db.pericrosseye <bob/bob.db.pericrosseye/doc/index.rst>
    bob.db.pola_thermal<bob/bob.db.pola_thermal/doc/index.rst>
    bob.db.putvein <bob/bob.db.putvein/doc/index.rst>
+   bob.db.refuge <bob/bob.db.refuge/doc/index.rst>
    bob.db.replay <bob/bob.db.replay/doc/index.rst>
    bob.db.replaymobile <bob/bob.db.replaymobile/doc/index.rst>
+   bob.db.rimoner3 <bob/bob.db.rimoner3/doc/index.rst>
    bob.db.scface <bob/bob.db.scface/doc/index.rst>
+   bob.db.stare <bob/bob.db.stare/doc/index.rst>
    bob.db.utfvp <bob/bob.db.utfvp/doc/index.rst>
    bob.db.uvad <bob/bob.db.uvad/doc/index.rst>
    bob.db.verafinger <bob/bob.db.verafinger/doc/index.rst>
@@ -238,7 +288,7 @@ Index of all Packages
    bob.db.wine <bob/bob.db.wine/doc/index.rst>
    bob.db.xm2vts <bob/bob.db.xm2vts/doc/index.rst>
    bob.db.youtube <bob/bob.db.youtube/doc/index.rst>
-   bob.db.fargo <bob/bob.db.fargo/doc/index.rst>
+   bob.devtools <bob/bob.devtools/doc/index.rst>
    bob.extension <bob/bob.extension/doc/index.rst>
    bob.fusion.base <bob/bob.fusion.base/doc/index.rst>
    bob.io.audio <bob/bob.io.audio/doc/index.rst>
@@ -247,6 +297,7 @@ Index of all Packages
    bob.io.matlab <bob/bob.io.matlab/doc/index.rst>
    bob.io.video <bob/bob.io.video/doc/index.rst>
    bob.ip.base <bob/bob.ip.base/doc/index.rst>
+   bob.ip.binseg <bob/bob.ip.binseg/doc/index.rst>
    bob.ip.caffe_extractor <bob/bob.ip.caffe_extractor/doc/index.rst>
    bob.ip.color <bob/bob.ip.color/doc/index.rst>
    bob.ip.dlib <bob/bob.ip.dlib/doc/index.rst>
@@ -259,8 +310,8 @@ Index of all Packages
    bob.ip.optflow.hornschunck <bob/bob.ip.optflow.hornschunck/doc/index.rst>
    bob.ip.optflow.liu <bob/bob.ip.optflow.liu/doc/index.rst>
    bob.ip.qualitymeasure <bob/bob.ip.qualitymeasure/doc/index.rst>
-   bob.ip.tensorflow_extractor <bob/bob.ip.tensorflow_extractor/doc/index.rst>
    bob.ip.skincolorfilter <bob/bob.ip.skincolorfilter/doc/index.rst>
+   bob.ip.tensorflow_extractor <bob/bob.ip.tensorflow_extractor/doc/index.rst>
    bob.learn.activation <bob/bob.learn.activation/doc/index.rst>
    bob.learn.boosting <bob/bob.learn.boosting/doc/index.rst>
    bob.learn.em <bob/bob.learn.em/doc/index.rst>
@@ -275,17 +326,7 @@ Index of all Packages
    bob.pad.face <bob/bob.pad.face/doc/index.rst>
    bob.pad.vein <bob/bob.pad.vein/doc/index.rst>
    bob.pad.voice <bob/bob.pad.voice/doc/index.rst>
-   bob.sp <bob/bob.sp/doc/index.rst>
    bob.rppg.base <bob/bob.rppg.base/doc/index.rst>
-   bob.db.drive <bob/bob.db.drive/doc/index.rst>
-   bob.db.stare <bob/bob.db.stare/doc/index.rst>
-   bob.db.chasedb1 <bob/bob.db.chasedb1/doc/index.rst>
-   bob.db.iostar <bob/bob.db.iostar/doc/index.rst>
-   bob.db.hrf <bob/bob.db.hrf/doc/index.rst>
-   bob.db.rimoner3 <bob/bob.db.rimoner3/doc/index.rst>
-   bob.db.drionsdb <bob/bob.rppg.base/doc/index.rst>
-   bob.db.refuge <bob/bob.db.drionsdb/doc/index.rst>
-   bob.db.drishtigs1 <bob/bob.db.drishtigs1/doc/index.rst>
-   bob.ip.binseg <bob/bob.ip.binseg/doc/index.rst>
+   bob.sp <bob/bob.sp/doc/index.rst>
    gridtk <bob/gridtk/doc/index.rst>
    readme_index.rst
diff --git a/doc/readme_index.rst b/doc/readme_index.rst
index bff9db7..8762a26 100644
--- a/doc/readme_index.rst
+++ b/doc/readme_index.rst
@@ -13,8 +13,8 @@ README of all Packages
    bob.bio.caffe_face <bob/bob.bio.caffe_face/README.rst>
    bob.bio.face <bob/bob.bio.face/README.rst>
    bob.bio.face_ongoing <bob/bob.bio.face_ongoing/README.rst>
-   bob.bio.htface <bob/bob.bio.htface/README.rst>
    bob.bio.gmm <bob/bob.bio.gmm/README.rst>
+   bob.bio.htface <bob/bob.bio.htface/README.rst>
    bob.bio.spear <bob/bob.bio.spear/README.rst>
    bob.bio.vein <bob/bob.bio.vein/README.rst>
    bob.bio.video <bob/bob.bio.video/README.rst>
@@ -34,15 +34,22 @@ README of all Packages
    bob.db.casme2 <bob/bob.db.casme2/README.rst>
    bob.db.caspeal <bob/bob.db.caspeal/README.rst>
    bob.db.cbsr_nir_vis_2 <bob/bob.db.cbsr_nir_vis_2/README.rst>
+   bob.db.chasedb1 <bob/bob.db.chasedb1/README.rst>
    bob.db.cohface <bob/bob.db.cohface/README.rst>
    bob.db.cuhk_cufs <bob/bob.db.cuhk_cufs/README.rst>
    bob.db.cuhk_cufsf <bob/bob.db.cuhk_cufsf/README.rst>
+   bob.db.drionsdb <bob/bob.db.drionsdb/README.rst>
+   bob.db.drishtigs1 <bob/bob.db.drishtigs1/README.rst>
+   bob.db.drive <bob/bob.db.drive/README.rst>
+   bob.db.fargo <bob/bob.db.fargo/README.rst>
    bob.db.frgc <bob/bob.db.frgc/README.rst>
    bob.db.fv3d <bob/bob.db.fv3d/README.rst>
    bob.db.gbu <bob/bob.db.gbu/README.rst>
    bob.db.hci_tagging <bob/bob.db.hci_tagging/README.rst>
+   bob.db.hrf <bob/bob.db.hrf/README.rst>
    bob.db.ijba <bob/bob.db.ijba/README.rst>
    bob.db.ijbc <bob/bob.db.ijbc/README.rst>
+   bob.db.iostar <bob/bob.db.iostar/README.rst>
    bob.db.iris <bob/bob.db.iris/README.rst>
    bob.db.kboc16 <bob/bob.db.kboc16/README.rst>
    bob.db.lfw <bob/bob.db.lfw/README.rst>
@@ -58,9 +65,12 @@ README of all Packages
    bob.db.pericrosseye <bob/bob.db.pericrosseye/README.rst>
    bob.db.pola_thermal <bob/bob.db.pola_thermal/README.rst>
    bob.db.putvein <bob/bob.db.putvein/README.rst>
+   bob.db.refuge <bob/bob.db.refuge/README.rst>
    bob.db.replay <bob/bob.db.replay/README.rst>
    bob.db.replaymobile <bob/bob.db.replaymobile/README.rst>
+   bob.db.rimoner3 <bob/bob.db.rimoner3/README.rst>
    bob.db.scface <bob/bob.db.scface/README.rst>
+   bob.db.stare <bob/bob.db.stare/README.rst>
    bob.db.utfvp <bob/bob.db.utfvp/README.rst>
    bob.db.uvad <bob/bob.db.uvad/README.rst>
    bob.db.verafinger <bob/bob.db.verafinger/README.rst>
@@ -69,7 +79,7 @@ README of all Packages
    bob.db.wine <bob/bob.db.wine/README.rst>
    bob.db.xm2vts <bob/bob.db.xm2vts/README.rst>
    bob.db.youtube <bob/bob.db.youtube/README.rst>
-   bob.db.fargo <bob/bob.db.fargo/README.rst>
+   bob.devtools <bob/bob.devtools/README.rst>
    bob.extension <bob/bob.extension/README.rst>
    bob.fusion.base <bob/bob.fusion.base/README.rst>
    bob.io.audio <bob/bob.io.audio/README.rst>
@@ -78,6 +88,7 @@ README of all Packages
    bob.io.matlab <bob/bob.io.matlab/README.rst>
    bob.io.video <bob/bob.io.video/README.rst>
    bob.ip.base <bob/bob.ip.base/README.rst>
+   bob.ip.binseg <bob/bob.ip.binseg/README.rst>
    bob.ip.caffe_extractor <bob/bob.ip.caffe_extractor/README.rst>
    bob.ip.color <bob/bob.ip.color/README.rst>
    bob.ip.dlib <bob/bob.ip.dlib/README.rst>
@@ -98,6 +109,8 @@ README of all Packages
    bob.learn.libsvm <bob/bob.learn.libsvm/README.rst>
    bob.learn.linear <bob/bob.learn.linear/README.rst>
    bob.learn.mlp <bob/bob.learn.mlp/README.rst>
+   bob.learn.pytorch <bob/bob.learn.pytorch/README.rst>
+   bob.learn.tensorflow <bob/bob.learn.tensorflow/README.rst>
    bob.math <bob/bob.math/README.rst>
    bob.measure <bob/bob.measure/README.rst>
    bob.pad.base <bob/bob.pad.base/README.rst>
@@ -106,15 +119,5 @@ README of all Packages
    bob.pad.voice <bob/bob.pad.voice/README.rst>
    bob.rppg.base <bob/bob.rppg.base/README.rst>
    bob.sp <bob/bob.sp/README.rst>
-   bob.db.drive <bob/bob.db.drive/README.rst>
-   bob.db.stare <bob/bob.db.stare/README.rst>
-   bob.db.chasedb1 <bob/bob.db.chasedb1/README.rst>
-   bob.db.iostar <bob/bob.db.iostar/README.rst>
-   bob.db.hrf <bob/bob.db.hrf/README.rst>
-   bob.db.rimoner3 <bob/bob.db.rimoner3/README.rst>
-   bob.db.drionsdb <bob/bob.rppg.base/README.rst>
-   bob.db.refuge <bob/bob.db.drionsdb/README.rst>
-   bob.db.drishtigs1 <bob/bob.db.drishtigs1/README.rst>
-   bob.ip.binseg <bob/bob.ip.binseg/index.rst>
    gridtk <bob/gridtk/README.rst>
-  
+
diff --git a/packages.txt b/packages.txt
index 4b1f33b..422bf94 100644
--- a/packages.txt
+++ b/packages.txt
@@ -3,7 +3,9 @@ bob/bob.ap
 bob/bob.bio.base
 bob/bob.bio.caffe_face
 bob/bob.bio.face
+bob/bob.bio.face_ongoing
 bob/bob.bio.gmm
+bob/bob.bio.htface
 bob/bob.bio.spear
 bob/bob.bio.vein
 bob/bob.bio.video
@@ -23,16 +25,22 @@ bob/bob.db.biosecurid.face
 bob/bob.db.casme2
 bob/bob.db.caspeal
 bob/bob.db.cbsr_nir_vis_2
+bob/bob.db.chasedb1
 bob/bob.db.cohface
 bob/bob.db.cuhk_cufs
 bob/bob.db.cuhk_cufsf
+bob/bob.db.drionsdb
+bob/bob.db.drishtigs1
+bob/bob.db.drive
 bob/bob.db.fargo
 bob/bob.db.frgc
 bob/bob.db.fv3d
 bob/bob.db.gbu
 bob/bob.db.hci_tagging
+bob/bob.db.hrf
 bob/bob.db.ijba
 bob/bob.db.ijbc
+bob/bob.db.iostar
 bob/bob.db.iris
 bob/bob.db.kboc16
 bob/bob.db.lfw
@@ -48,9 +56,12 @@ bob/bob.db.oulunpu
 bob/bob.db.pericrosseye
 bob/bob.db.pola_thermal
 bob/bob.db.putvein
+bob/bob.db.refuge
 bob/bob.db.replay
 bob/bob.db.replaymobile
+bob/bob.db.rimoner3
 bob/bob.db.scface
+bob/bob.db.stare
 bob/bob.db.utfvp
 bob/bob.db.uvad
 bob/bob.db.verafinger
@@ -59,6 +70,7 @@ bob/bob.db.voxforge
 bob/bob.db.wine
 bob/bob.db.xm2vts
 bob/bob.db.youtube
+bob/bob.devtools
 bob/bob.extension
 bob/bob.fusion.base
 bob/bob.io.audio
@@ -67,6 +79,7 @@ bob/bob.io.image
 bob/bob.io.matlab
 bob/bob.io.video
 bob/bob.ip.base
+bob/bob.ip.binseg
 bob/bob.ip.caffe_extractor
 bob/bob.ip.color
 bob/bob.ip.dlib
@@ -98,15 +111,3 @@ bob/bob.pad.voice
 bob/bob.rppg.base
 bob/bob.sp
 bob/gridtk
-bob/bob.bio.htface
-bob/bob.bio.face_ongoing
-bob/bob.db.drive
-bob/bob.db.stare
-bob/bob.db.chasedb1
-bob/bob.db.iostar
-bob/bob.db.hrf
-bob/bob.db.rimoner3
-bob/bob.db.drionsdb
-bob/bob.db.refuge
-bob/bob.db.drishtigs1
-bob/bob.ip.binseg
-- 
GitLab