From 7f3dbb661075e52c6bff404536b795f1b1fd48ac Mon Sep 17 00:00:00 2001
From: Flavio Tarsetti <flavio.tarsetti@idiap.ch>
Date: Mon, 26 Sep 2022 15:32:03 +0200
Subject: [PATCH] [doc] cleanup all unwanted code

---
 .gitignore                        |   6 +-
 .gitlab-ci.yml                    |   1 -
 conda/meta.yaml                   |  50 -----
 conda/yum_requirements.txt        |   1 -
 doc/_static/copybutton.js         |  64 -------
 doc/_templates/config.rst         |   2 -
 doc/conf.py                       | 272 ---------------------------
 doc/envs/v262py27.yaml            | 293 ------------------------------
 doc/envs/v262py35.yaml            | 266 ---------------------------
 doc/envs/v270py27.yaml            | 281 ----------------------------
 doc/envs/v270py35.yaml            | 262 --------------------------
 doc/envs/v300py27.yaml            | 279 ----------------------------
 doc/envs/v300py36.yaml            | 261 --------------------------
 doc/help.rst                      |  54 ------
 doc/img/favicon.ico               | Bin 4286 -> 0 bytes
 doc/img/logo.png                  | Bin 6266 -> 0 bytes
 doc/index.rst                     |  52 ------
 doc/install.rst                   | 185 -------------------
 doc/links.rst                     |  58 ------
 doc/packages.rst                  |  48 -----
 doc/plot/default_crops.py         |   1 -
 doc/plot/detect_faces_mtcnn.py    |   1 -
 doc/plot/detect_single_face.py    |   1 -
 doc/plot/disparity.py             |   1 -
 doc/plot/face_eyes_norm.py        |   1 -
 doc/plot/gaussian.py              |   1 -
 doc/plot/plot_ISV.py              |   1 -
 doc/plot/plot_JFA.py              |   1 -
 doc/plot/plot_MAP.py              |   1 -
 doc/plot/plot_ML.py               |   1 -
 doc/plot/plot_Tnorm.py            |   1 -
 doc/plot/plot_ZTnorm.py           |   1 -
 doc/plot/plot_Znorm.py            |   1 -
 doc/plot/plot_align_faces.py      |   1 -
 doc/plot/plot_iVector.py          |   1 -
 doc/plot/plot_kmeans.py           |   1 -
 doc/plot/plot_landmarks.py        |   1 -
 doc/plot/plot_multiple_faces.py   |   1 -
 doc/plot/plot_single_faces.py     |   1 -
 doc/plot/show_lena.py             |   1 -
 doc/plot/similarity.py            |   1 -
 doc/plot/single_face_lmks.py      |   1 -
 doc/plot/sobel.py                 |   1 -
 doc/plot/transform.py             |   1 -
 doc/plot/wavelet.py               |   1 -
 doc/pyplots/detect_skin_pixels.py |   1 -
 doc/readme_index.rst              |  23 ---
 doc/tutorial.rst                  | 160 ----------------
 packages.txt                      |  14 --
 version.txt                       |   1 -
 50 files changed, 1 insertion(+), 2658 deletions(-)
 delete mode 100644 .gitlab-ci.yml
 delete mode 100644 conda/meta.yaml
 delete mode 100644 conda/yum_requirements.txt
 delete mode 100644 doc/_static/copybutton.js
 delete mode 100644 doc/_templates/config.rst
 delete mode 100644 doc/conf.py
 delete mode 100644 doc/envs/v262py27.yaml
 delete mode 100644 doc/envs/v262py35.yaml
 delete mode 100644 doc/envs/v270py27.yaml
 delete mode 100644 doc/envs/v270py35.yaml
 delete mode 100644 doc/envs/v300py27.yaml
 delete mode 100644 doc/envs/v300py36.yaml
 delete mode 100644 doc/help.rst
 delete mode 100644 doc/img/favicon.ico
 delete mode 100644 doc/img/logo.png
 delete mode 100644 doc/index.rst
 delete mode 100644 doc/install.rst
 delete mode 100644 doc/links.rst
 delete mode 100644 doc/packages.rst
 delete mode 120000 doc/plot/default_crops.py
 delete mode 120000 doc/plot/detect_faces_mtcnn.py
 delete mode 120000 doc/plot/detect_single_face.py
 delete mode 120000 doc/plot/disparity.py
 delete mode 120000 doc/plot/face_eyes_norm.py
 delete mode 120000 doc/plot/gaussian.py
 delete mode 120000 doc/plot/plot_ISV.py
 delete mode 120000 doc/plot/plot_JFA.py
 delete mode 120000 doc/plot/plot_MAP.py
 delete mode 120000 doc/plot/plot_ML.py
 delete mode 120000 doc/plot/plot_Tnorm.py
 delete mode 120000 doc/plot/plot_ZTnorm.py
 delete mode 120000 doc/plot/plot_Znorm.py
 delete mode 120000 doc/plot/plot_align_faces.py
 delete mode 120000 doc/plot/plot_iVector.py
 delete mode 120000 doc/plot/plot_kmeans.py
 delete mode 120000 doc/plot/plot_landmarks.py
 delete mode 120000 doc/plot/plot_multiple_faces.py
 delete mode 120000 doc/plot/plot_single_faces.py
 delete mode 120000 doc/plot/show_lena.py
 delete mode 120000 doc/plot/similarity.py
 delete mode 120000 doc/plot/single_face_lmks.py
 delete mode 120000 doc/plot/sobel.py
 delete mode 120000 doc/plot/transform.py
 delete mode 120000 doc/plot/wavelet.py
 delete mode 120000 doc/pyplots/detect_skin_pixels.py
 delete mode 100644 doc/readme_index.rst
 delete mode 100644 doc/tutorial.rst
 delete mode 100644 packages.txt
 delete mode 100644 version.txt

diff --git a/.gitignore b/.gitignore
index ab031ac..5bc0d27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,3 @@
 *.swo
 *.swp
-*~
-doc/bob/
-doc/extra-intersphinx.txt
-doc/nitpick-exceptions.txt
-sphinx/
+*~
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index eb063ae..0000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1 +0,0 @@
-include: 'https://gitlab.idiap.ch/bob/bob.devtools/raw/master/bob/devtools/data/gitlab-ci/docs.yaml'
diff --git a/conda/meta.yaml b/conda/meta.yaml
deleted file mode 100644
index e57686e..0000000
--- a/conda/meta.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-{% set name = 'bob.docs' %}
-{% set project_dir = environ.get('RECIPE_DIR') + '/..' %}
-
-package:
-  name: {{ name }}
-  version: {{ environ.get('BOB_PACKAGE_VERSION', '0.0.1') }}
-
-build:
-  number: {{ environ.get('BOB_BUILD_NUMBER', 0) }}
-
-requirements:
-  run:
-    - python
-    - setuptools
-    # This list should be the same as packages.txt.
-    # This list should also be the same as in bob/bob conda recipe + bob and bob.devtools
-    - bob
-    - bob.devtools
-    # LIST OF BOB PACKAGES - START
-    - bob.extension
-    - bob.io.base
-    - bob.measure
-    - bob.learn.em
-    - bob.pipelines
-    - bob.bio.base
-    - bob.bio.face
-    - bob.bio.video
-    - bob.bio.vein
-    - bob.bio.spear
-    - bob.pad.base
-    - bob.pad.face
-    - bob.fusion.base
-    # LIST OF BOB PACKAGES - END
-test:
-  commands:
-    - sphinx-build {{ project_dir }}/doc {{ project_dir }}/sphinx
-  requires:
-    - nose {{ nose }}
-    - coverage {{ coverage }}
-    - sphinx {{ sphinx }}
-    - sphinx_rtd_theme {{ sphinx_rtd_theme }}
-    - sphinxcontrib-programoutput {{ sphinxcontrib_programoutput }}
-    - graphviz {{ graphviz }}
-    - font-ttf-dejavu-sans-mono {{ font_ttf_dejavu_sans_mono }}
-
-about:
-  home: https://www.idiap.ch/software/bob/
-  license: BSD-3-Clause
-  summary: Bob's documentation aggregation repository
-  license_family: BSD
diff --git a/conda/yum_requirements.txt b/conda/yum_requirements.txt
deleted file mode 100644
index 73bec64..0000000
--- a/conda/yum_requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-dejavu-sans-fonts
diff --git a/doc/_static/copybutton.js b/doc/_static/copybutton.js
deleted file mode 100644
index 16dee00..0000000
--- a/doc/_static/copybutton.js
+++ /dev/null
@@ -1,64 +0,0 @@
-$(document).ready(function() {
-    /* Add a [>>>] button on the top-right corner of code samples to hide
-     * the >>> and ... prompts and the output and thus make the code
-     * copyable. */
-    var div = $('.highlight-python .highlight,' +
-                '.highlight-python3 .highlight,' +
-                '.highlight-pycon .highlight,' +
-                '.highlight-pycon3 .highlight,' +
-                '.highlight-default .highlight');
-    var pre = div.find('pre');
-
-    // get the styles from the current theme
-    pre.parent().parent().css('position', 'relative');
-    var hide_text = 'Hide the prompts and output';
-    var show_text = 'Show the prompts and output';
-    var border_width = pre.css('border-top-width');
-    var border_style = pre.css('border-top-style');
-    var border_color = pre.css('border-top-color');
-    var button_styles = {
-        'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0',
-        'border-color': border_color, 'border-style': border_style,
-        'border-width': border_width, 'color': border_color, 'text-size': '75%',
-        'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em',
-        'border-radius': '0 3px 0 0'
-    }
-
-    // create and add the button to all the code blocks that contain >>>
-    div.each(function(index) {
-        var jthis = $(this);
-        if (jthis.find('.gp').length > 0) {
-            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
-            button.css(button_styles)
-            button.attr('title', hide_text);
-            button.data('hidden', 'false');
-            jthis.prepend(button);
-        }
-        // tracebacks (.gt) contain bare text elements that need to be
-        // wrapped in a span to work with .nextUntil() (see later)
-        jthis.find('pre:has(.gt)').contents().filter(function() {
-            return ((this.nodeType == 3) && (this.data.trim().length > 0));
-        }).wrap('<span>');
-    });
-
-    // define the behavior of the button when it's clicked
-    $('.copybutton').click(function(e){
-        e.preventDefault();
-        var button = $(this);
-        if (button.data('hidden') === 'false') {
-            // hide the code output
-            button.parent().find('.go, .gp, .gt').hide();
-            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
-            button.css('text-decoration', 'line-through');
-            button.attr('title', show_text);
-            button.data('hidden', 'true');
-        } else {
-            // show the code output
-            button.parent().find('.go, .gp, .gt').show();
-            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
-            button.css('text-decoration', 'none');
-            button.attr('title', hide_text);
-            button.data('hidden', 'false');
-        }
-    });
-});
diff --git a/doc/_templates/config.rst b/doc/_templates/config.rst
deleted file mode 100644
index a287392..0000000
--- a/doc/_templates/config.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-{% include "autosummary/module.rst" %}
-.. literalinclude:: ../../../../{{ fullname.replace(".", "/") }}.py
diff --git a/doc/conf.py b/doc/conf.py
deleted file mode 100644
index 70b4e22..0000000
--- a/doc/conf.py
+++ /dev/null
@@ -1,272 +0,0 @@
-#!/usr/bin/env python
-# vim: set fileencoding=utf-8 :
-
-import os
-import pkg_resources
-
-
-# -- General configuration -----------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-needs_sphinx = "1.3"
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = [
-    "sphinx.ext.todo",
-    "sphinx.ext.coverage",
-    "sphinx.ext.ifconfig",
-    "sphinx.ext.autodoc",
-    "sphinx.ext.autosummary",
-    "sphinx.ext.doctest",
-    "sphinx.ext.graphviz",
-    "sphinx.ext.intersphinx",
-    "sphinx.ext.napoleon",
-    "sphinx.ext.viewcode",
-    "sphinx.ext.mathjax",
-    "matplotlib.sphinxext.plot_directive",
-]
-
-# matplotlib.sphinxext.plot_directive
-plot_basedir = None
-
-# Be picky about warnings
-nitpicky = False
-
-# Ignores stuff we can't easily resolve on other project's sphinx manuals
-nitpick_ignore = []
-
-# Allows the user to override warnings from a separate file
-if os.path.exists("nitpick-exceptions.txt"):
-    for line in open("nitpick-exceptions.txt"):
-        if line.strip() == "" or line.startswith("#"):
-            continue
-        dtype, target = line.split(None, 1)
-        target = target.strip()
-        try:  # python 2.x
-            target = unicode(target)
-        except NameError:
-            pass
-        nitpick_ignore.append((dtype, target))
-
-# Don't includes todos
-todo_include_todos = False
-
-# Generates auto-summary automatically
-autosummary_generate = True
-
-# Create numbers on figures with captions
-numfig = True
-
-# If we are on OSX, the 'dvipng' path maybe different
-dvipng_osx = "/opt/local/libexec/texlive/binaries/dvipng"
-if os.path.exists(dvipng_osx):
-    pngmath_dvipng = dvipng_osx
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ["_templates"]
-
-# The suffix of source filenames.
-source_suffix = ".rst"
-
-# The encoding of source files.
-# source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = "index"
-
-# General information about the project.
-project = u"bob"
-import time
-
-copyright = u"%s, Idiap Research Institute" % time.strftime("%Y")
-
-# Grab the setup entry
-distribution = pkg_resources.require(project)[0]
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = distribution.version
-# The full version, including alpha/beta/rc tags.
-release = distribution.version
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-# language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-# today = ''
-# Else, today_fmt is used as the format for a strftime call.
-# today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ["links.rst"]
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-# default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-# add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-# add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-# show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = "sphinx"
-
-# A list of ignored prefixes for module index sorting.
-# modindex_common_prefix = []
-
-# Some variables which are useful for generated material
-project_variable = project.replace(".", "_")
-short_description = u"Bob (All Packages)"
-owner = [u"Idiap Research Institute"]
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-import sphinx_rtd_theme
-
-html_theme = "sphinx_rtd_theme"
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-# html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-# html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-# html_short_title = project_variable
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-html_logo = "img/logo.png"
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-html_favicon = "img/favicon.ico"
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ["_static"]
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-# html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-# html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-# html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-# html_additional_pages = {}
-
-# If false, no module index is generated.
-# html_domain_indices = True
-
-# If false, no index is generated.
-# html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-# html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-# html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-# html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-# html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-# html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-# html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = project_variable + u"_doc"
-
-
-# -- Post configuration --------------------------------------------------------
-
-# Included after all input documents
-rst_epilog = """
-.. |project| replace:: Bob
-.. |version| replace:: %s
-.. |current-year| date:: %%Y
-""" % (
-    version,
-)
-
-# Default processing flags for sphinx
-autoclass_content = "class"
-autodoc_member_order = "bysource"
-autodoc_default_options = {
-    "members": True,
-    "undoc-members": True,
-    "show-inheritance": True,
-}
-
-# For inter-documentation mapping:
-from bob.extension.utils import link_documentation
-
-sphinx_requirements = "extra-intersphinx.txt"
-if os.path.exists(sphinx_requirements):
-    intersphinx_mapping = link_documentation(requirements_file=sphinx_requirements)
-else:
-    intersphinx_mapping = link_documentation(requirements_file=None)
-
-
-# We want to remove all private (i.e. _. or __.__) members
-# that are not in the list of accepted functions
-accepted_private_functions = ["__array__"]
-
-
-def member_function_test(app, what, name, obj, skip, options):
-    # test if we have a private function
-    if len(name) > 1 and name[0] == "_":
-        # test if this private function should be allowed
-        if name not in accepted_private_functions:
-            # omit privat functions that are not in the list of accepted private functions
-            return skip
-        else:
-            # test if the method is documented
-            if not hasattr(obj, "__doc__") or not obj.__doc__:
-                return skip
-    return False
-
-
-def setup(app):
-    app.connect("autodoc-skip-member", member_function_test)
-    # Add `>>>` button to toggle visibility of prompts in code blocks.
-    # see https://github.com/readthedocs/sphinx_rtd_theme/issues/167 and
-    # https://raw.githubusercontent.com/python/python-docs-theme/master/python_docs_theme/static/copybutton.js
-    app.add_js_file("copybutton.js")
diff --git a/doc/envs/v262py27.yaml b/doc/envs/v262py27.yaml
deleted file mode 100644
index 5733055..0000000
--- a/doc/envs/v262py27.yaml
+++ /dev/null
@@ -1,293 +0,0 @@
-name: v262py27
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - _license=1.1=py27_1
-  - alabaster=0.7.9=py27_0
-  - anaconda=4.3.0=np111py27_0
-  - anaconda-client=1.6.0=py27_0
-  - anaconda-navigator=1.4.3=py27_0
-  - argcomplete=1.0.0=py27_1
-  - astroid=1.4.9=py27_0
-  - astropy=1.3=np111py27_0
-  - babel=2.3.4=py27_0
-  - backports=1.0=py27_0
-  - backports_abc=0.5=py27_0
-  - beautifulsoup4=4.5.3=py27_0
-  - bitarray=0.8.1=py27_0
-  - blaze=0.10.1=py27_0
-  - bokeh=0.12.4=py27_0
-  - boost=1.61.0=py27_0
-  - boto=2.45.0=py27_0
-  - bottleneck=1.2.0=np111py27_0
-  - bzip2=1.0.6=3
-  - caffe=1.0.0rc3=np111py27_nomkl_0
-  - cairo=1.14.8=0
-  - cdecimal=2.3=py27_2
-  - cffi=1.9.1=py27_0
-  - chardet=2.3.0=py27_0
-  - chest=0.2.3=py27_0
-  - click=6.7=py27_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.2.2=py27_0
-  - clyent=1.2.2=py27_0
-  - cmake=3.6.3=0
-  - colorama=0.3.7=py27_0
-  - configobj=5.0.6=py27_0
-  - configparser=3.5.0=py27_0
-  - contextlib2=0.5.4=py27_0
-  - coverage=4.2=py27_0
-  - cryptography=1.7.1=py27_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py27_0
-  - cython=0.25.2=py27_0
-  - cytoolz=0.8.2=py27_0
-  - dask=0.13.0=py27_0
-  - datashape=0.5.4=py27_0
-  - dbus=1.10.10=0
-  - decorator=4.0.11=py27_0
-  - dill=0.2.5=py27_0
-  - docopt=0.6.2=py27_0
-  - docutils=0.13.1=py27_0
-  - entrypoints=0.2.2=py27_0
-  - enum34=1.1.6=py27_0
-  - et_xmlfile=1.0.1=py27_0
-  - expat=2.1.0=0
-  - fastcache=1.0.2=py27_1
-  - flask=0.12=py27_0
-  - flask-cors=3.0.2=py27_0
-  - fontconfig=2.12.1=2
-  - freetype=2.5.5=2
-  - funcsigs=1.0.2=py27_0
-  - functools32=3.2.3.2=py27_0
-  - futures=3.0.5=py27_0
-  - gcc=4.8.5=7
-  - get_terminal_size=1.0.0=py27_0
-  - gevent=1.2.1=py27_0
-  - gflags=2.1.2=0
-  - glib=2.50.2=1
-  - glog=0.3.4=0
-  - gmp=6.1.0=0
-  - greenlet=0.4.11=py27_0
-  - grin=1.2.1=py27_3
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.6.0=np111py27_2
-  - harfbuzz=0.9.39=2
-  - hdf5=1.8.17=1
-  - heapdict=1.0.0=py27_1
-  - icu=54.1=0
-  - idna=2.2=py27_0
-  - imagesize=0.7.1=py27_0
-  - ipaddress=1.0.18=py27_0
-  - ipykernel=4.5.2=py27_0
-  - ipython=5.1.0=py27_0
-  - ipython_genutils=0.1.0=py27_0
-  - ipywidgets=5.2.2=py27_1
-  - isl=0.12.2=0
-  - isort=4.2.5=py27_0
-  - itsdangerous=0.24=py27_0
-  - jbig=2.1=0
-  - jdcal=1.3=py27_0
-  - jedi=0.9.0=py27_1
-  - jinja2=2.9.4=py27_0
-  - jpeg=9b=0
-  - jsonschema=2.5.1=py27_0
-  - jupyter=1.0.0=py27_3
-  - jupyter_client=4.4.0=py27_0
-  - jupyter_console=5.0.0=py27_0
-  - jupyter_core=4.2.1=py27_0
-  - lazy-object-proxy=1.2.2=py27_0
-  - leveldb=1.19=0
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.0.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - libxslt=1.1.29=0
-  - llvmlite=0.15.0=py27_0
-  - lmdb=0.9.18=0
-  - locket=0.2.0=py27_1
-  - lxml=3.7.2=py27_0
-  - markupsafe=0.23=py27_2
-  - matplotlib=2.0.0=np111py27_0
-  - mistune=0.7.3=py27_0
-  - mkl=2017.0.1=0
-  - mkl-service=1.1.2=py27_3
-  - mock=2.0.0=py27_0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - mpmath=0.19=py27_1
-  - multipledispatch=0.4.9=py27_0
-  - nbconvert=4.2.0=py27_0
-  - nbformat=4.2.0=py27_0
-  - ncurses=5.9=10
-  - networkx=1.11=py27_0
-  - nltk=3.2.2=py27_0
-  - nomkl=1.0=0
-  - nose=1.3.7=py27_1
-  - notebook=4.3.1=py27_0
-  - numba=0.30.1=np111py27_0
-  - numexpr=2.6.1=np111py27_2
-  - numpy=1.11.3=py27_0
-  - numpydoc=0.6.0=py27_0
-  - odo=0.5.0=py27_1
-  - openblas=0.2.19=0
-  - openpyxl=2.4.1=py27_0
-  - openssl=1.0.2k=0
-  - pandas=0.19.2=np111py27_1
-  - partd=0.3.7=py27_0
-  - path.py=10.0=py27_0
-  - pathlib2=2.2.0=py27_0
-  - patsy=0.4.1=py27_0
-  - pbr=1.10.0=py27_0
-  - pcre=8.39=1
-  - pep8=1.7.0=py27_0
-  - pexpect=4.2.1=py27_0
-  - pickleshare=0.7.4=py27_0
-  - pillow=4.0.0=py27_0
-  - pip=9.0.1=py27_1
-  - pixman=0.34.0=0
-  - pkg-config=0.28=1
-  - ply=3.9=py27_0
-  - prompt_toolkit=1.0.9=py27_0
-  - protobuf=3.0.0=py27_1
-  - psutil=5.0.1=py27_0
-  - ptyprocess=0.5.1=py27_0
-  - py=1.4.32=py27_0
-  - pyasn1=0.1.9=py27_0
-  - pycairo=1.10.0=py27_0
-  - pycosat=0.6.1=py27_1
-  - pycparser=2.17=py27_0
-  - pycrypto=2.6.1=py27_4
-  - pycurl=7.43.0=py27_2
-  - pyflakes=1.5.0=py27_0
-  - pygments=2.1.3=py27_0
-  - pylint=1.6.4=py27_1
-  - pyopenssl=16.2.0=py27_0
-  - pyparsing=2.1.4=py27_0
-  - pyqt=5.6.0=py27_2
-  - pytables=3.3.0=np111py27_0
-  - pytest=3.0.5=py27_0
-  - python=2.7.13=0
-  - python-dateutil=2.6.0=py27_0
-  - python-gflags=2.0=py27_0
-  - python-leveldb=0.194=py27_0
-  - pytz=2016.10=py27_0
-  - pyyaml=3.12=py27_0
-  - pyzmq=16.0.2=py27_0
-  - qt=5.6.2=3
-  - qtawesome=0.4.3=py27_0
-  - qtconsole=4.2.1=py27_1
-  - qtpy=1.2.1=py27_0
-  - readline=6.2=2
-  - redis=3.2.0=0
-  - redis-py=2.10.5=py27_0
-  - requests=2.12.4=py27_0
-  - rope=0.9.4=py27_1
-  - scandir=1.4=py27_0
-  - scikit-image=0.12.3=np111py27_1
-  - scikit-learn=0.18.1=np111py27_1
-  - scipy=0.18.1=np111py27_1
-  - seaborn=0.7.1=py27_0
-  - setuptools=27.2.0=py27_0
-  - simplegeneric=0.8.1=py27_1
-  - singledispatch=3.4.0.3=py27_0
-  - sip=4.18=py27_0
-  - six=1.10.0=py27_0
-  - snappy=1.1.3=0
-  - snowballstemmer=1.2.1=py27_0
-  - sockjs-tornado=1.0.3=py27_0
-  - sphinx=1.5.1=py27_0
-  - sphinx_rtd_theme=0.1.9=py27_1
-  - spyder=3.1.2=py27_0
-  - sqlalchemy=1.1.5=py27_0
-  - sqlite=3.13.0=0
-  - ssl_match_hostname=3.4.0.2=py27_1
-  - statsmodels=0.6.1=np111py27_1
-  - subprocess32=3.2.7=py27_0
-  - sympy=1.0=py27_0
-  - tensorflow=0.10.0rc0=np111py27_0
-  - terminado=0.6=py27_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py27_0
-  - tornado=4.4.2=py27_0
-  - traitlets=4.3.1=py27_0
-  - unicodecsv=0.14.1=py27_0
-  - wcwidth=0.1.7=py27_0
-  - werkzeug=0.11.15=py27_0
-  - wheel=0.29.0=py27_0
-  - widgetsnbextension=1.2.6=py27_0
-  - wrapt=1.10.8=py27_0
-  - xlrd=1.0.0=py27_0
-  - xlsxwriter=0.9.6=py27_0
-  - xlwt=1.2.0=py27_0
-  - xz=5.2.2=1
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.8=3
-  - bob=2.6.2=py27_0
-  - bob.ap=2.1.2=py27_0
-  - bob.blitz=2.0.12=np111py27_0
-  - bob.core=2.1.7=py27_0
-  - bob.db.atnt=2.0.8=py27_0
-  - bob.db.base=2.2.0=py27_0
-  - bob.db.iris=2.0.8=py27_0
-  - bob.db.mnist=2.0.7=py27_0
-  - bob.db.wine=2.0.7=py27_0
-  - bob.extension=2.3.9=py27_0
-  - bob.io.audio=2.0.4=py27_0
-  - bob.io.base=2.0.13=py27_0
-  - bob.io.image=2.2.1=py27_0
-  - bob.io.matlab=2.0.8=py27_0
-  - bob.io.video=2.0.14=py27_0
-  - bob.ip.base=2.0.14=py27_0
-  - bob.ip.color=2.0.8=py27_0
-  - bob.ip.draw=2.0.7=py27_0
-  - bob.ip.facedetect=2.1.2=py27_0
-  - bob.ip.flandmark=2.1.4=py27_0
-  - bob.ip.gabor=2.0.9=py27_0
-  - bob.ip.optflow.hornschunck=2.0.11=py27_0
-  - bob.ip.optflow.liu=2.0.10=py27_0
-  - bob.learn.activation=2.0.8=py27_0
-  - bob.learn.boosting=2.0.11=py27_0
-  - bob.learn.em=2.0.12=py27_0
-  - bob.learn.libsvm=2.0.10=py27_0
-  - bob.learn.linear=2.1.0=py27_0
-  - bob.learn.mlp=2.1.4=py27_0
-  - bob.math=2.1.0=np111py27_0
-  - bob.measure=2.3.0=py27_0
-  - bob.sp=2.0.8=py27_0
-  - cyvlfeat=0.4.5=np111py27_2
-  - dlib=19.0=np111py27_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - ipdb=0.10.2=py27_0
-  - kaldi=r7271.1a4dbf6=0
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libogg=1.3.2=0
-  - libsvm=3.21=3
-  - menpo=0.7.7=np111py27_4
-  - menpofit=0.4.1=py27_1
-  - menpowidgets=0.2.1p3=py27_0
-  - mne=0.13.1=np111py27_0
-  - opencv=3.1.0=np111py27_4
-  - openfst=1.6.1=0
-  - pathlib=1.0=py27_0
-  - pkgtools=0.7.3=py27_0
-  - pyedflib=0.1.6=np111py27_2
-  - schema=0.6.5=py27_0
-  - sox=14.4.2=5
-  - speex=1.2.0=0
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.2=py27_0
diff --git a/doc/envs/v262py35.yaml b/doc/envs/v262py35.yaml
deleted file mode 100644
index 701deb7..0000000
--- a/doc/envs/v262py35.yaml
+++ /dev/null
@@ -1,266 +0,0 @@
-name: v262py35
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - _license=1.1=py35_1
-  - alabaster=0.7.9=py35_0
-  - anaconda=4.3.0=np111py35_0
-  - anaconda-client=1.6.0=py35_0
-  - anaconda-navigator=1.4.3=py35_0
-  - argcomplete=1.0.0=py35_1
-  - astroid=1.4.9=py35_0
-  - astropy=1.3=np111py35_0
-  - babel=2.3.4=py35_0
-  - backports=1.0=py35_0
-  - beautifulsoup4=4.5.3=py35_0
-  - bitarray=0.8.1=py35_0
-  - blaze=0.10.1=py35_0
-  - bokeh=0.12.4=py35_0
-  - boost=1.61.0=py35_0
-  - boto=2.45.0=py35_0
-  - bottleneck=1.2.0=np111py35_0
-  - bzip2=1.0.6=3
-  - cairo=1.14.8=0
-  - cffi=1.9.1=py35_0
-  - chardet=2.3.0=py35_0
-  - chest=0.2.3=py35_0
-  - click=6.7=py35_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.2.2=py35_0
-  - clyent=1.2.2=py35_0
-  - cmake=3.6.3=0
-  - colorama=0.3.7=py35_0
-  - configobj=5.0.6=py35_0
-  - contextlib2=0.5.4=py35_0
-  - coverage=4.2=py35_0
-  - cryptography=1.7.1=py35_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py35_0
-  - cython=0.25.2=py35_0
-  - cytoolz=0.8.2=py35_0
-  - dask=0.13.0=py35_0
-  - datashape=0.5.4=py35_0
-  - dbus=1.10.10=0
-  - decorator=4.0.11=py35_0
-  - dill=0.2.5=py35_0
-  - docopt=0.6.2=py35_0
-  - docutils=0.13.1=py35_0
-  - entrypoints=0.2.2=py35_0
-  - et_xmlfile=1.0.1=py35_0
-  - expat=2.1.0=0
-  - fastcache=1.0.2=py35_1
-  - flask=0.12=py35_0
-  - flask-cors=3.0.2=py35_0
-  - fontconfig=2.12.1=2
-  - freetype=2.5.5=2
-  - gcc=4.8.5=7
-  - get_terminal_size=1.0.0=py35_0
-  - gevent=1.2.1=py35_0
-  - glib=2.50.2=1
-  - gmp=6.1.0=0
-  - greenlet=0.4.11=py35_0
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.6.0=np111py35_2
-  - harfbuzz=0.9.39=2
-  - hdf5=1.8.17=1
-  - heapdict=1.0.0=py35_1
-  - icu=54.1=0
-  - idna=2.2=py35_0
-  - imagesize=0.7.1=py35_0
-  - ipykernel=4.5.2=py35_0
-  - ipython=5.1.0=py35_0
-  - ipython_genutils=0.1.0=py35_0
-  - ipywidgets=5.2.2=py35_1
-  - isl=0.12.2=0
-  - isort=4.2.5=py35_0
-  - itsdangerous=0.24=py35_0
-  - jbig=2.1=0
-  - jdcal=1.3=py35_0
-  - jedi=0.9.0=py35_1
-  - jinja2=2.9.4=py35_0
-  - jpeg=9b=0
-  - jsonschema=2.5.1=py35_0
-  - jupyter=1.0.0=py35_3
-  - jupyter_client=4.4.0=py35_0
-  - jupyter_console=5.0.0=py35_0
-  - jupyter_core=4.2.1=py35_0
-  - lazy-object-proxy=1.2.2=py35_0
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.0.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - libxslt=1.1.29=0
-  - llvmlite=0.15.0=py35_0
-  - locket=0.2.0=py35_1
-  - lxml=3.7.2=py35_0
-  - markupsafe=0.23=py35_2
-  - matplotlib=2.0.0=np111py35_0
-  - mistune=0.7.3=py35_0
-  - mkl=2017.0.1=0
-  - mkl-service=1.1.2=py35_3
-  - mock=2.0.0=py35_0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - mpmath=0.19=py35_1
-  - multipledispatch=0.4.9=py35_0
-  - nbconvert=4.2.0=py35_0
-  - nbformat=4.2.0=py35_0
-  - ncurses=5.9=10
-  - networkx=1.11=py35_0
-  - nltk=3.2.2=py35_0
-  - nose=1.3.7=py35_1
-  - notebook=4.3.1=py35_0
-  - numba=0.30.1=np111py35_0
-  - numexpr=2.6.1=np111py35_2
-  - numpy=1.11.3=py35_0
-  - numpydoc=0.6.0=py35_0
-  - odo=0.5.0=py35_1
-  - openblas=0.2.19=0
-  - openpyxl=2.4.1=py35_0
-  - openssl=1.0.2k=0
-  - pandas=0.19.2=np111py35_1
-  - partd=0.3.7=py35_0
-  - path.py=10.0=py35_0
-  - pathlib2=2.2.0=py35_0
-  - patsy=0.4.1=py35_0
-  - pbr=1.10.0=py35_0
-  - pcre=8.39=1
-  - pep8=1.7.0=py35_0
-  - pexpect=4.2.1=py35_0
-  - pickleshare=0.7.4=py35_0
-  - pillow=4.0.0=py35_0
-  - pip=9.0.1=py35_1
-  - pixman=0.34.0=0
-  - pkg-config=0.28=1
-  - ply=3.9=py35_0
-  - prompt_toolkit=1.0.9=py35_0
-  - protobuf=3.0.0=py35_1
-  - psutil=5.0.1=py35_0
-  - ptyprocess=0.5.1=py35_0
-  - py=1.4.32=py35_0
-  - pyasn1=0.1.9=py35_0
-  - pycosat=0.6.1=py35_1
-  - pycparser=2.17=py35_0
-  - pycrypto=2.6.1=py35_4
-  - pycurl=7.43.0=py35_2
-  - pyflakes=1.5.0=py35_0
-  - pygments=2.1.3=py35_0
-  - pylint=1.6.4=py35_1
-  - pyopenssl=16.2.0=py35_0
-  - pyparsing=2.1.4=py35_0
-  - pyqt=5.6.0=py35_2
-  - pytables=3.3.0=np111py35_0
-  - pytest=3.0.5=py35_0
-  - python=3.5.2=0
-  - python-dateutil=2.6.0=py35_0
-  - pytz=2016.10=py35_0
-  - pyyaml=3.12=py35_0
-  - pyzmq=16.0.2=py35_0
-  - qt=5.6.2=3
-  - qtawesome=0.4.3=py35_0
-  - qtconsole=4.2.1=py35_1
-  - qtpy=1.2.1=py35_0
-  - readline=6.2=2
-  - redis=3.2.0=0
-  - redis-py=2.10.5=py35_0
-  - requests=2.12.4=py35_0
-  - rope=0.9.4=py35_1
-  - scikit-image=0.12.3=np111py35_1
-  - scikit-learn=0.18.1=np111py35_1
-  - scipy=0.18.1=np111py35_1
-  - seaborn=0.7.1=py35_0
-  - setuptools=27.2.0=py35_0
-  - simplegeneric=0.8.1=py35_1
-  - singledispatch=3.4.0.3=py35_0
-  - sip=4.18=py35_0
-  - six=1.10.0=py35_0
-  - snowballstemmer=1.2.1=py35_0
-  - sockjs-tornado=1.0.3=py35_0
-  - sphinx=1.5.1=py35_0
-  - sphinx_rtd_theme=0.1.9=py35_1
-  - spyder=3.1.2=py35_0
-  - sqlalchemy=1.1.5=py35_0
-  - sqlite=3.13.0=0
-  - statsmodels=0.6.1=np111py35_1
-  - sympy=1.0=py35_0
-  - tensorflow=0.10.0rc0=np111py35_0
-  - terminado=0.6=py35_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py35_0
-  - tornado=4.4.2=py35_0
-  - traitlets=4.3.1=py35_0
-  - unicodecsv=0.14.1=py35_0
-  - wcwidth=0.1.7=py35_0
-  - werkzeug=0.11.15=py35_0
-  - wheel=0.29.0=py35_0
-  - widgetsnbextension=1.2.6=py35_0
-  - wrapt=1.10.8=py35_0
-  - xlrd=1.0.0=py35_0
-  - xlsxwriter=0.9.6=py35_0
-  - xlwt=1.2.0=py35_0
-  - xz=5.2.2=1
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.8=3
-  - bob=2.6.2=py35_0
-  - bob.ap=2.1.2=py35_0
-  - bob.blitz=2.0.12=np111py35_0
-  - bob.core=2.1.7=py35_0
-  - bob.db.atnt=2.0.8=py35_0
-  - bob.db.base=2.2.0=py35_0
-  - bob.db.iris=2.0.8=py35_0
-  - bob.db.mnist=2.0.7=py35_0
-  - bob.db.wine=2.0.7=py35_0
-  - bob.extension=2.3.9=py35_0
-  - bob.io.audio=2.0.4=py35_0
-  - bob.io.base=2.0.13=py35_0
-  - bob.io.image=2.2.1=py35_0
-  - bob.io.matlab=2.0.8=py35_0
-  - bob.io.video=2.0.14=py35_0
-  - bob.ip.base=2.0.14=py35_0
-  - bob.ip.color=2.0.8=py35_0
-  - bob.ip.draw=2.0.7=py35_0
-  - bob.ip.facedetect=2.1.2=py35_0
-  - bob.ip.flandmark=2.1.4=py35_0
-  - bob.ip.gabor=2.0.9=py35_0
-  - bob.ip.optflow.hornschunck=2.0.11=py35_0
-  - bob.ip.optflow.liu=2.0.10=py35_0
-  - bob.learn.activation=2.0.8=py35_0
-  - bob.learn.boosting=2.0.11=py35_0
-  - bob.learn.em=2.0.12=py35_0
-  - bob.learn.libsvm=2.0.10=py35_0
-  - bob.learn.linear=2.1.0=py35_0
-  - bob.learn.mlp=2.1.4=py35_0
-  - bob.math=2.1.0=np111py35_0
-  - bob.measure=2.3.0=py35_0
-  - bob.sp=2.0.8=py35_0
-  - cyvlfeat=0.4.5=np111py35_2
-  - dlib=19.0=np111py35_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - ipdb=0.10.2=py35_0
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libsvm=3.21=3
-  - menpo=0.7.7=np111py35_4
-  - menpofit=0.4.1=py35_1
-  - menpowidgets=0.2.1p3=py35_0
-  - mne=0.13.1=np111py35_0
-  - opencv=3.1.0=np111py35_4
-  - pkgtools=0.7.3=py35_0
-  - pyedflib=0.1.6=np111py35_2
-  - schema=0.6.5=py35_0
-  - sox=14.4.2=5
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.2=py35_0
diff --git a/doc/envs/v270py27.yaml b/doc/envs/v270py27.yaml
deleted file mode 100644
index 36e90f9..0000000
--- a/doc/envs/v270py27.yaml
+++ /dev/null
@@ -1,281 +0,0 @@
-name: v270py27
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - alabaster=0.7.10=py27_0
-  - anaconda=custom=py27_0
-  - astroid=1.4.9=py27_0
-  - babel=2.4.0=py27_0
-  - backports=1.0=py27_0
-  - backports_abc=0.5=py27_0
-  - bleach=1.5.0=py27_0
-  - bokeh=0.12.5=py27_1
-  - boost=1.61.0=py27_0
-  - bzip2=1.0.6=3
-  - caffe=1.0.0rc5=np112py27_0
-  - cairo=1.14.8=0
-  - certifi=2017.7.27.1=py27h9ceb091_0
-  - chardet=3.0.3=py27_0
-  - chest=0.2.3=py27_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.2.2=py27_0
-  - cmake=3.6.3=0
-  - configparser=3.5.0=py27_0
-  - coverage=4.3.4=py27_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py27_0
-  - cython=0.25.2=py27_0
-  - cytoolz=0.8.2=py27_0
-  - dask=0.13.0=py27_0
-  - dbus=1.10.10=0
-  - decorator=4.0.11=py27_0
-  - docopt=0.6.2=py27_0
-  - docutils=0.13.1=py27_0
-  - entrypoints=0.2.2=py27_1
-  - enum34=1.1.6=py27_0
-  - expat=2.1.0=0
-  - fontconfig=2.12.1=3
-  - freetype=2.5.5=2
-  - funcsigs=1.0.2=py27_0
-  - functools32=3.2.3.2=py27_0
-  - futures=3.1.1=py27_0
-  - gcc=4.8.5=7
-  - get_terminal_size=1.0.0=py27_0
-  - gflags=2.1.2=0
-  - glib=2.50.2=1
-  - glog=0.3.4=0
-  - gmp=6.1.0=0
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.7.0=np112py27_0
-  - hdf5=1.8.17=1
-  - heapdict=1.0.0=py27_1
-  - html5lib=0.999=py27_0
-  - icu=54.1=0
-  - imagesize=0.7.1=py27_0
-  - ipykernel=4.6.1=py27_0
-  - ipython=5.1.0=py27_0
-  - ipython_genutils=0.2.0=py27_0
-  - ipywidgets=5.2.2=py27_1
-  - isl=0.12.2=0
-  - isort=4.2.14=py27_0
-  - jbig=2.1=0
-  - jedi=0.10.2=py27_2
-  - jinja2=2.9.6=py27_0
-  - jpeg=9b=0
-  - jsonschema=2.6.0=py27_0
-  - jupyter=1.0.0=py27_3
-  - jupyter_client=5.0.1=py27_0
-  - jupyter_console=5.1.0=py27_0
-  - jupyter_core=4.3.0=py27_0
-  - lazy-object-proxy=1.2.2=py27_0
-  - leveldb=1.19=1
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.2.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - llvmlite=0.17.0=py27_0
-  - lmdb=0.9.18=0
-  - locket=0.2.0=py27_1
-  - markupsafe=0.23=py27_2
-  - matplotlib=2.0.0=np112py27_0
-  - mistune=0.7.4=py27_0
-  - mkl=2017.0.1=0
-  - mock=2.0.0=py27_0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - nbconvert=5.1.1=py27_0
-  - nbformat=4.3.0=py27_0
-  - ncurses=5.9=10
-  - networkx=1.11=py27_0
-  - nose=1.3.7=py27_1
-  - notebook=5.0.0=py27_0
-  - numba=0.32.0=np112py27_0
-  - numexpr=2.6.1=np112py27_2
-  - numpy=1.12.1=py27_0
-  - numpydoc=0.6.0=py27_0
-  - olefile=0.44=py27_0
-  - openblas=0.2.19=0
-  - openssl=1.0.2l=0
-  - pandas=0.19.2=np112py27_1
-  - pandocfilters=1.4.1=py27_0
-  - partd=0.3.8=py27_0
-  - path.py=10.3.1=py27_0
-  - pathlib2=2.2.1=py27_0
-  - pbr=1.10.0=py27_0
-  - pcre=8.39=1
-  - pep8=1.7.0=py27_0
-  - pexpect=4.2.1=py27_0
-  - pickleshare=0.7.4=py27_0
-  - pillow=4.0.0=py27_1
-  - pip=9.0.1=py27_1
-  - pixman=0.34.0=0
-  - pkg-config=0.28=1
-  - prompt_toolkit=1.0.14=py27_0
-  - protobuf=3.2.0=py27_0
-  - psutil=5.2.2=py27_0
-  - ptyprocess=0.5.1=py27_0
-  - pycairo=1.10.0=py27_0
-  - pyflakes=1.5.0=py27_0
-  - pygments=2.2.0=py27_0
-  - pylint=1.6.4=py27_1
-  - pyparsing=2.1.4=py27_0
-  - pyqt=5.6.0=py27_2
-  - python=2.7.13=0
-  - python-dateutil=2.6.0=py27_0
-  - python-gflags=2.0=py27_0
-  - python-leveldb=0.194=py27_1
-  - pytz=2017.2=py27_0
-  - pyyaml=3.12=py27_0
-  - pyzmq=16.0.2=py27_0
-  - qt=5.6.2=4
-  - qtawesome=0.4.4=py27_0
-  - qtconsole=4.3.0=py27_0
-  - qtpy=1.2.1=py27_0
-  - readline=6.2=2
-  - requests=2.14.2=py27_0
-  - rope=0.9.4=py27_1
-  - scandir=1.5=py27_0
-  - scikit-image=0.12.3=np112py27_1
-  - scikit-learn=0.18.1=np112py27_1
-  - scipy=0.18.1=np112py27_1
-  - setuptools=36.4.0=py27_1
-  - simplegeneric=0.8.1=py27_1
-  - singledispatch=3.4.0.3=py27_0
-  - sip=4.18=py27_0
-  - six=1.10.0=py27_0
-  - snappy=1.1.4=0
-  - snowballstemmer=1.2.1=py27_0
-  - sphinx=1.5.1=py27_0
-  - sphinx_rtd_theme=0.2.4=py27_0
-  - spyder=3.1.4=py27_0
-  - sqlalchemy=1.1.5=py27_0
-  - sqlite=3.13.0=0
-  - ssl_match_hostname=3.4.0.2=py27_1
-  - subprocess32=3.2.7=py27_0
-  - tensorflow=1.0.1=np112py27_0
-  - terminado=0.6=py27_0
-  - testpath=0.3=py27_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py27_0
-  - tornado=4.5.1=py27_0
-  - traitlets=4.3.2=py27_0
-  - wcwidth=0.1.7=py27_0
-  - wheel=0.29.0=py27_0
-  - widgetsnbextension=2.0.0=py27_0
-  - wrapt=1.10.10=py27_0
-  - xz=5.2.2=1
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.8=3
-  - bob=2.7.0=py27_0
-  - bob-extras=2017.06.06=0
-  - bob.ap=2.1.4=np112py27_0
-  - bob.bio.base=3.1.2=py_0
-  - bob.bio.face=3.2.0=py_0
-  - bob.bio.gmm=3.0.2=py_0
-  - bob.bio.spear=3.1.0=py_0
-  - bob.bio.video=3.2.0=py_0
-  - bob.blitz=2.0.13=np112py27_0
-  - bob.core=2.1.8=np112py27_0
-  - bob.db.arface=2.1.3=py_0
-  - bob.db.asvspoof=1.1.6=py_0
-  - bob.db.asvspoof2017=1.0.2=py_0
-  - bob.db.atnt=2.0.9=py27_0
-  - bob.db.atvskeystroke=2.1.4=py_0
-  - bob.db.avspoof=2.2.7=py_0
-  - bob.db.banca=2.1.4=py_0
-  - bob.db.base=2.3.1=py27_0
-  - bob.db.biosecure=2.1.4=py_0
-  - bob.db.biosecurid.face=2.1.7=py_0
-  - bob.db.casme2=2.1.4=py_0
-  - bob.db.caspeal=2.1.4=py_0
-  - bob.db.cohface=1.0.3=py_0
-  - bob.db.cuhk_cufs=2.1.3=py_0
-  - bob.db.frgc=2.1.2=py_0
-  - bob.db.gbu=2.1.3=py_0
-  - bob.db.hci_tagging=1.0.3=py_0
-  - bob.db.ijba=2.0.2=py_0
-  - bob.db.iris=2.1.0=py27_0
-  - bob.db.kboc16=2.0.10=py_0
-  - bob.db.lfw=2.1.4=py_0
-  - bob.db.livdet2013=2.0.5=py_0
-  - bob.db.mnist=2.1.0=py27_0
-  - bob.db.mobio=2.1.4=py_0
-  - bob.db.msu_mfsd_mod=2.2.1=py_0
-  - bob.db.multipie=2.1.3=py_0
-  - bob.db.nist_sre12=3.0.2=py_0
-  - bob.db.pericrosseye=1.0.1=py_0
-  - bob.db.putvein=1.1.3=py_0
-  - bob.db.replay=3.0.2=py_0
-  - bob.db.replaymobile=1.1.2=py_0
-  - bob.db.scface=2.1.3=py_0
-  - bob.db.utfvp=2.3.6=py_0
-  - bob.db.voicepa=1.0.1=py_0
-  - bob.db.voxforge=2.1.3=py_0
-  - bob.db.wine=2.0.8=py27_0
-  - bob.db.xm2vts=2.1.3=py_0
-  - bob.db.youtube=2.1.3=py_0
-  - bob.extension=2.4.0=py27_0
-  - bob.io.audio=2.0.5=np112py27_0
-  - bob.io.base=2.1.0=py27_0
-  - bob.io.image=2.2.2=py27_0
-  - bob.io.matlab=2.0.9=py27_0
-  - bob.io.video=2.0.15=py27_0
-  - bob.ip.base=2.0.15=np112py27_0
-  - bob.ip.color=2.0.9=py27_0
-  - bob.ip.draw=2.0.8=py27_0
-  - bob.ip.facedetect=2.1.3=np112py27_0
-  - bob.ip.facelandmarks=1.0.4=py_0
-  - bob.ip.flandmark=2.1.5=np112py27_0
-  - bob.ip.gabor=2.0.10=np112py27_0
-  - bob.ip.optflow.hornschunck=2.0.12=np112py27_0
-  - bob.ip.optflow.liu=2.0.11=py27_0
-  - bob.ip.skincolorfilter=0.0.3=py_0
-  - bob.kaldi=1.0.4=py_0
-  - bob.learn.activation=2.0.9=py27_0
-  - bob.learn.boosting=2.0.12=py27_0
-  - bob.learn.em=2.0.13=np112py27_0
-  - bob.learn.libsvm=2.0.12=py27_0
-  - bob.learn.linear=2.1.1=np112py27_0
-  - bob.learn.mlp=2.1.5=np112py27_0
-  - bob.math=2.1.1=np112py27_0
-  - bob.measure=2.4.0=py27_0
-  - bob.pad.base=1.0.8=py_0
-  - bob.pad.voice=1.0.4=py_0
-  - bob.sp=2.0.9=np112py27_0
-  - cyvlfeat=0.4.5=np112py27_2
-  - dlib=19.0=np112py27_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - gridtk=1.4.3=py_0
-  - ipdb=0.10.2=py27_0
-  - kaldi=r7271.1a4dbf6=0
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libogg=1.3.2=0
-  - libsvm=3.21=3
-  - menpo=0.7.7=np112py27_4
-  - menpofit=0.4.1=py27_1
-  - menpowidgets=0.2.1p3=py27_0
-  - mne=0.13.1=np112py27_0
-  - opencv=3.1.0=np112py27_4
-  - openfst=1.6.1=0
-  - pathlib=1.0=py27_0
-  - pkgtools=0.7.3=py27_0
-  - pyedflib=0.1.6=np112py27_2
-  - schema=0.6.5=py27_0
-  - sox=14.4.2=5
-  - speex=1.2.0=0
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.5=py27_0
diff --git a/doc/envs/v270py35.yaml b/doc/envs/v270py35.yaml
deleted file mode 100644
index e6567cc..0000000
--- a/doc/envs/v270py35.yaml
+++ /dev/null
@@ -1,262 +0,0 @@
-name: v270py35
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - alabaster=0.7.10=py35_0
-  - anaconda=custom=py35_0
-  - astroid=1.4.9=py35_0
-  - babel=2.4.0=py35_0
-  - bleach=1.5.0=py35_0
-  - bokeh=0.12.5=py35_1
-  - boost=1.61.0=py35_0
-  - bzip2=1.0.6=3
-  - caffe=1.0.0rc5=np112py35_0
-  - certifi=2017.7.27.1=py35h19f42a1_0
-  - chardet=3.0.3=py35_0
-  - chest=0.2.3=py35_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.2.2=py35_0
-  - cmake=3.6.3=0
-  - coverage=4.3.4=py35_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py35_0
-  - cython=0.25.2=py35_0
-  - cytoolz=0.8.2=py35_0
-  - dask=0.13.0=py35_0
-  - dbus=1.10.10=0
-  - decorator=4.0.11=py35_0
-  - docopt=0.6.2=py35_0
-  - docutils=0.13.1=py35_0
-  - entrypoints=0.2.2=py35_1
-  - expat=2.1.0=0
-  - fontconfig=2.12.1=3
-  - freetype=2.5.5=2
-  - gcc=4.8.5=7
-  - gflags=2.1.2=0
-  - glib=2.50.2=1
-  - glog=0.3.4=0
-  - gmp=6.1.0=0
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.7.0=np112py35_0
-  - hdf5=1.8.17=1
-  - heapdict=1.0.0=py35_1
-  - html5lib=0.999=py35_0
-  - icu=54.1=0
-  - imagesize=0.7.1=py35_0
-  - ipykernel=4.6.1=py35_0
-  - ipython=5.1.0=py35_0
-  - ipython_genutils=0.2.0=py35_0
-  - ipywidgets=5.2.2=py35_1
-  - isl=0.12.2=0
-  - isort=4.2.14=py35_0
-  - jbig=2.1=0
-  - jedi=0.10.2=py35_2
-  - jinja2=2.9.6=py35_0
-  - jpeg=9b=0
-  - jsonschema=2.6.0=py35_0
-  - jupyter=1.0.0=py35_3
-  - jupyter_client=5.0.1=py35_0
-  - jupyter_console=5.1.0=py35_0
-  - jupyter_core=4.3.0=py35_0
-  - lazy-object-proxy=1.2.2=py35_0
-  - leveldb=1.19=1
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.2.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - llvmlite=0.17.0=py35_0
-  - lmdb=0.9.18=0
-  - locket=0.2.0=py35_1
-  - markupsafe=0.23=py35_2
-  - matplotlib=2.0.0=np112py35_0
-  - mistune=0.7.4=py35_0
-  - mkl=2017.0.1=0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - nbconvert=5.1.1=py35_0
-  - nbformat=4.3.0=py35_0
-  - ncurses=5.9=10
-  - networkx=1.11=py35_0
-  - nose=1.3.7=py35_1
-  - notebook=5.0.0=py35_0
-  - numba=0.32.0=np112py35_0
-  - numexpr=2.6.1=np112py35_2
-  - numpy=1.12.1=py35_0
-  - numpydoc=0.6.0=py35_0
-  - olefile=0.44=py35_0
-  - openblas=0.2.19=0
-  - openssl=1.0.2l=0
-  - pandas=0.19.2=np112py35_1
-  - pandocfilters=1.4.1=py35_0
-  - partd=0.3.8=py35_0
-  - path.py=10.3.1=py35_0
-  - pcre=8.39=1
-  - pep8=1.7.0=py35_0
-  - pexpect=4.2.1=py35_0
-  - pickleshare=0.7.4=py35_0
-  - pillow=4.0.0=py35_1
-  - pip=9.0.1=py35_1
-  - pkg-config=0.28=1
-  - prompt_toolkit=1.0.14=py35_0
-  - protobuf=3.2.0=py35_0
-  - psutil=5.2.2=py35_0
-  - ptyprocess=0.5.1=py35_0
-  - pyflakes=1.5.0=py35_0
-  - pygments=2.2.0=py35_0
-  - pylint=1.6.4=py35_1
-  - pyparsing=2.1.4=py35_0
-  - pyqt=5.6.0=py35_2
-  - python=3.5.3=1
-  - python-dateutil=2.6.0=py35_0
-  - python-gflags=2.0=py35_0
-  - python-leveldb=0.194=py35_1
-  - pytz=2017.2=py35_0
-  - pyyaml=3.12=py35_0
-  - pyzmq=16.0.2=py35_0
-  - qt=5.6.2=4
-  - qtawesome=0.4.4=py35_0
-  - qtconsole=4.3.0=py35_0
-  - qtpy=1.2.1=py35_0
-  - readline=6.2=2
-  - requests=2.14.2=py35_0
-  - rope=0.9.4=py35_1
-  - scikit-image=0.12.3=np112py35_1
-  - scikit-learn=0.18.1=np112py35_1
-  - scipy=0.18.1=np112py35_1
-  - setuptools=36.4.0=py35_1
-  - simplegeneric=0.8.1=py35_1
-  - sip=4.18=py35_0
-  - six=1.10.0=py35_0
-  - snappy=1.1.4=0
-  - snowballstemmer=1.2.1=py35_0
-  - sphinx=1.5.1=py35_0
-  - sphinx_rtd_theme=0.2.4=py35_0
-  - spyder=3.1.4=py35_0
-  - sqlalchemy=1.1.5=py35_0
-  - sqlite=3.13.0=0
-  - tensorflow=1.0.1=np112py35_0
-  - terminado=0.6=py35_0
-  - testpath=0.3=py35_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py35_0
-  - tornado=4.5.1=py35_0
-  - traitlets=4.3.2=py35_0
-  - wcwidth=0.1.7=py35_0
-  - wheel=0.29.0=py35_0
-  - widgetsnbextension=2.0.0=py35_0
-  - wrapt=1.10.10=py35_0
-  - xz=5.2.2=1
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.8=3
-  - bob=2.7.0=py35_0
-  - bob-extras=2017.06.06=0
-  - bob.ap=2.1.4=np112py35_0
-  - bob.bio.base=3.1.2=py_0
-  - bob.bio.face=3.2.0=py_0
-  - bob.bio.gmm=3.0.2=py_0
-  - bob.bio.spear=3.1.0=py_0
-  - bob.bio.video=3.2.0=py_0
-  - bob.blitz=2.0.13=np112py35_0
-  - bob.core=2.1.8=np112py35_0
-  - bob.db.arface=2.1.3=py_0
-  - bob.db.asvspoof=1.1.6=py_0
-  - bob.db.asvspoof2017=1.0.2=py_0
-  - bob.db.atnt=2.0.9=py35_0
-  - bob.db.atvskeystroke=2.1.4=py_0
-  - bob.db.avspoof=2.2.7=py_0
-  - bob.db.banca=2.1.4=py_0
-  - bob.db.base=2.3.1=py35_0
-  - bob.db.biosecure=2.1.4=py_0
-  - bob.db.biosecurid.face=2.1.7=py_0
-  - bob.db.casme2=2.1.4=py_0
-  - bob.db.caspeal=2.1.4=py_0
-  - bob.db.cohface=1.0.3=py_0
-  - bob.db.cuhk_cufs=2.1.3=py_0
-  - bob.db.frgc=2.1.2=py_0
-  - bob.db.gbu=2.1.3=py_0
-  - bob.db.hci_tagging=1.0.3=py_0
-  - bob.db.ijba=2.0.2=py_0
-  - bob.db.iris=2.1.0=py35_0
-  - bob.db.kboc16=2.0.10=py_0
-  - bob.db.lfw=2.1.4=py_0
-  - bob.db.livdet2013=2.0.5=py_0
-  - bob.db.mnist=2.1.0=py35_0
-  - bob.db.mobio=2.1.4=py_0
-  - bob.db.msu_mfsd_mod=2.2.1=py_0
-  - bob.db.multipie=2.1.3=py_0
-  - bob.db.nist_sre12=3.0.2=py_0
-  - bob.db.pericrosseye=1.0.1=py_0
-  - bob.db.putvein=1.1.3=py_0
-  - bob.db.replay=3.0.2=py_0
-  - bob.db.replaymobile=1.1.2=py_0
-  - bob.db.scface=2.1.3=py_0
-  - bob.db.utfvp=2.3.6=py_0
-  - bob.db.voicepa=1.0.1=py_0
-  - bob.db.voxforge=2.1.3=py_0
-  - bob.db.wine=2.0.8=py35_0
-  - bob.db.xm2vts=2.1.3=py_0
-  - bob.db.youtube=2.1.3=py_0
-  - bob.extension=2.4.0=py35_0
-  - bob.io.audio=2.0.5=np112py35_0
-  - bob.io.base=2.1.0=py35_0
-  - bob.io.image=2.2.2=py35_0
-  - bob.io.matlab=2.0.9=py35_0
-  - bob.io.video=2.0.15=py35_0
-  - bob.ip.base=2.0.15=np112py35_0
-  - bob.ip.color=2.0.9=py35_0
-  - bob.ip.draw=2.0.8=py35_0
-  - bob.ip.facedetect=2.1.3=np112py35_0
-  - bob.ip.facelandmarks=1.0.4=py_0
-  - bob.ip.flandmark=2.1.5=np112py35_0
-  - bob.ip.gabor=2.0.10=np112py35_0
-  - bob.ip.optflow.hornschunck=2.0.12=np112py35_0
-  - bob.ip.optflow.liu=2.0.11=py35_0
-  - bob.ip.skincolorfilter=0.0.3=py_0
-  - bob.kaldi=1.0.4=py_0
-  - bob.learn.activation=2.0.9=py35_0
-  - bob.learn.boosting=2.0.12=py35_0
-  - bob.learn.em=2.0.13=np112py35_0
-  - bob.learn.libsvm=2.0.12=py35_0
-  - bob.learn.linear=2.1.1=np112py35_0
-  - bob.learn.mlp=2.1.5=np112py35_0
-  - bob.math=2.1.1=np112py35_0
-  - bob.measure=2.4.0=py35_0
-  - bob.pad.base=1.0.8=py_0
-  - bob.pad.voice=1.0.4=py_0
-  - bob.sp=2.0.9=np112py35_0
-  - cyvlfeat=0.4.5=np112py35_2
-  - dlib=19.0=np112py35_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - gridtk=1.4.3=py_0
-  - ipdb=0.10.2=py35_0
-  - kaldi=r7271.1a4dbf6=0
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libogg=1.3.2=0
-  - libsvm=3.21=3
-  - menpo=0.7.7=np112py35_4
-  - menpofit=0.4.1=py35_1
-  - menpowidgets=0.2.1p3=py35_0
-  - mne=0.13.1=np112py35_0
-  - opencv=3.1.0=np112py35_4
-  - openfst=1.6.1=0
-  - pkgtools=0.7.3=py35_0
-  - pyedflib=0.1.6=np112py35_2
-  - schema=0.6.5=py35_0
-  - sox=14.4.2=5
-  - speex=1.2.0=0
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.5=py35_0
diff --git a/doc/envs/v300py27.yaml b/doc/envs/v300py27.yaml
deleted file mode 100644
index f4f47a3..0000000
--- a/doc/envs/v300py27.yaml
+++ /dev/null
@@ -1,279 +0,0 @@
-name: v300py27
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - alabaster=0.7.10=py27_0
-  - babel=2.5.0=py27_0
-  - backports=1.0=py27_0
-  - backports.weakref=1.0rc1=py27_0
-  - backports_abc=0.5=py27_0
-  - bkcharts=0.2=py27_0
-  - bleach=1.5.0=py27_0
-  - bokeh=0.12.7=py27_0
-  - boost=1.61.0=py27_0
-  - bzip2=1.0.6=3
-  - caffe=1.0.0rc5=np112py27_0
-  - cairo=1.14.8=0
-  - certifi=2016.2.28=py27_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.4.0=py27_0
-  - cmake=3.6.3=0
-  - configparser=3.5.0=py27_0
-  - coverage=4.3.4=py27_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py27_0
-  - cython=0.25.2=py27_0
-  - cytoolz=0.8.2=py27_0
-  - dask=0.14.3=py27_1
-  - dbus=1.10.20=0
-  - decorator=4.1.2=py27_0
-  - docopt=0.6.2=py27_0
-  - docutils=0.14=py27_0
-  - entrypoints=0.2.3=py27_0
-  - enum34=1.1.6=py27_0
-  - expat=2.1.0=0
-  - fontconfig=2.12.1=3
-  - freetype=2.5.5=2
-  - funcsigs=1.0.2=py27_0
-  - functools32=3.2.3.2=py27_0
-  - futures=3.1.1=py27_0
-  - gcc=4.8.5=7
-  - get_terminal_size=1.0.0=py27_0
-  - gflags=2.2.0=1
-  - glib=2.50.2=1
-  - glog=0.3.5=0
-  - gmp=6.1.0=0
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.7.0=np112py27_0
-  - hdf5=1.8.17=2
-  - html5lib=0.9999999=py27_0
-  - icu=54.1=0
-  - imagesize=0.7.1=py27_0
-  - ipykernel=4.6.1=py27_0
-  - ipython=5.3.0=py27_0
-  - ipython_genutils=0.2.0=py27_0
-  - ipywidgets=6.0.0=py27_0
-  - isl=0.12.2=0
-  - jbig=2.1=0
-  - jinja2=2.9.6=py27_0
-  - jpeg=9b=0
-  - jsonschema=2.6.0=py27_0
-  - jupyter=1.0.0=py27_3
-  - jupyter_client=5.1.0=py27_0
-  - jupyter_console=5.2.0=py27_0
-  - jupyter_core=4.3.0=py27_0
-  - leveldb=1.20=0
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.2.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - llvmlite=0.18.0=py27_0
-  - lmdb=0.9.21=0
-  - locket=0.2.0=py27_1
-  - markdown=2.6.9=py27_0
-  - markupsafe=1.0=py27_0
-  - matplotlib=2.0.2=np112py27_0
-  - mistune=0.7.4=py27_0
-  - mkl=2017.0.1=0
-  - mock=2.0.0=py27_0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - nbconvert=5.2.1=py27_0
-  - nbformat=4.4.0=py27_0
-  - ncurses=5.9=10
-  - networkx=1.11=py27_0
-  - nose=1.3.7=py27_1
-  - notebook=5.0.0=py27_0
-  - numba=0.33.0=np112py27_0
-  - numexpr=2.6.2=np112py27_0
-  - numpy=1.12.1=py27_0
-  - olefile=0.44=py27_0
-  - openblas=0.2.19=0
-  - openssl=1.0.2l=0
-  - pandas=0.20.1=np112py27_0
-  - pandocfilters=1.4.2=py27_0
-  - partd=0.3.8=py27_0
-  - path.py=10.3.1=py27_0
-  - pathlib2=2.3.0=py27_0
-  - pbr=1.10.0=py27_0
-  - pcre=8.39=1
-  - pexpect=4.2.1=py27_0
-  - pickleshare=0.7.4=py27_0
-  - pillow=4.1.1=py27_0
-  - pip=9.0.1=py27_1
-  - pixman=0.34.0=0
-  - pkg-config=0.28=1
-  - prompt_toolkit=1.0.15=py27_0
-  - protobuf=3.2.0=py27_0
-  - ptyprocess=0.5.2=py27_0
-  - pycairo=1.10.0=py27_0
-  - pygments=2.2.0=py27_0
-  - pyparsing=2.2.0=py27_0
-  - pyqt=5.6.0=py27_2
-  - python=2.7.13=0
-  - python-dateutil=2.6.1=py27_0
-  - python-gflags=3.1.1=py27_0
-  - python-leveldb=0.194=py27_1
-  - pytz=2017.2=py27_0
-  - pywavelets=0.5.2=np112py27_0
-  - pyyaml=3.12=py27_0
-  - pyzmq=16.0.2=py27_0
-  - qt=5.6.2=5
-  - qtconsole=4.3.1=py27_0
-  - readline=6.2=2
-  - requests=2.14.2=py27_0
-  - scandir=1.5=py27_0
-  - scikit-image=0.13.0=np112py27_0
-  - scikit-learn=0.18.1=np112py27_1
-  - scipy=0.19.0=np112py27_0
-  - setuptools=36.4.0=py27_1
-  - simplegeneric=0.8.1=py27_1
-  - singledispatch=3.4.0.3=py27_0
-  - sip=4.18=py27_0
-  - six=1.10.0=py27_0
-  - snappy=1.1.6=0
-  - snowballstemmer=1.2.1=py27_0
-  - sphinx=1.5.6=py27_0
-  - sphinx_rtd_theme=0.2.4=py27_0
-  - sqlalchemy=1.1.9=py27_0
-  - sqlite=3.13.0=0
-  - ssl_match_hostname=3.5.0.1=py27_0
-  - subprocess32=3.2.7=py27_0
-  - tensorflow=1.2.1=py27_0
-  - terminado=0.6=py27_0
-  - testpath=0.3.1=py27_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py27_0
-  - tornado=4.5.2=py27_0
-  - traitlets=4.3.2=py27_0
-  - virtualenv=15.1.0=py27_0
-  - wcwidth=0.1.7=py27_0
-  - werkzeug=0.12.2=py27_0
-  - wheel=0.29.0=py27_0
-  - widgetsnbextension=3.0.2=py27_0
-  - xz=5.2.3=0
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.11=0
-  - bob=3.0.0=np112py27_0
-  - bob-devel=2017.10.30=np112py27_2
-  - bob-extras=2017.10.22=0
-  - bob.ap=2.1.5=np112py27_0
-  - bob.bio.base=3.2.1=py_0
-  - bob.bio.caffe_face=1.1.0=py_0
-  - bob.bio.face=3.3.0=py_0
-  - bob.bio.gmm=3.1.0=py_0
-  - bob.bio.spear=3.1.1=py_0
-  - bob.bio.vein=1.0.1=py27_0
-  - bob.bio.video=3.3.0=py_0
-  - bob.blitz=2.0.14=np112py27_0
-  - bob.core=2.1.9=np112py27_0
-  - bob.db.arface=2.1.4=py_0
-  - bob.db.asvspoof=1.1.7=py_0
-  - bob.db.asvspoof2017=1.0.3=py_0
-  - bob.db.atnt=2.0.10=py27_0
-  - bob.db.atvskeystroke=2.1.5=py_0
-  - bob.db.avspoof=2.2.8=py_0
-  - bob.db.banca=2.1.5=py_0
-  - bob.db.base=2.3.2=py27_0
-  - bob.db.biosecure=2.1.5=py_0
-  - bob.db.biosecurid.face=2.1.8=py_0
-  - bob.db.casme2=2.1.5=py_0
-  - bob.db.caspeal=2.1.5=py_0
-  - bob.db.cohface=1.0.4=py_0
-  - bob.db.cuhk_cufs=2.1.3=py_0
-  - bob.db.frgc=2.1.3=py_0
-  - bob.db.fv3d=1.0.0=py_0
-  - bob.db.gbu=2.1.4=py_0
-  - bob.db.hci_tagging=1.0.4=py_0
-  - bob.db.ijba=2.0.3=py_0
-  - bob.db.iris=2.1.1=py27_0
-  - bob.db.kboc16=2.0.11=py_0
-  - bob.db.lfw=2.1.5=py_0
-  - bob.db.livdet2013=2.0.6=py_0
-  - bob.db.mnist=2.1.1=py27_0
-  - bob.db.mobio=2.1.5=py_0
-  - bob.db.msu_mfsd_mod=2.2.3=py_0
-  - bob.db.multipie=2.1.4=py_0
-  - bob.db.nist_sre12=3.0.3=py_0
-  - bob.db.pericrosseye=1.0.1=py_0
-  - bob.db.putvein=1.2.1=py_0
-  - bob.db.replay=3.0.3=py_0
-  - bob.db.replaymobile=1.1.3=py_0
-  - bob.db.scface=2.1.5=py_0
-  - bob.db.utfvp=2.4.1=py_0
-  - bob.db.verafinger=1.0.0=py_0
-  - bob.db.voicepa=1.0.2=py_0
-  - bob.db.voxforge=2.2.0=py_0
-  - bob.db.wine=2.0.9=py27_0
-  - bob.db.xm2vts=2.1.4=py_0
-  - bob.db.youtube=2.1.4=py_0
-  - bob.extension=2.4.5=py27_0
-  - bob.io.audio=2.0.6=np112py27_0
-  - bob.io.base=3.0.2=np112py27_0
-  - bob.io.image=2.3.0=np112py27_0
-  - bob.io.matlab=2.0.10=np112py27_0
-  - bob.io.video=2.0.19=np112py27_0
-  - bob.ip.base=2.1.0=np112py27_0
-  - bob.ip.caffe_extractor=1.1.1=py_0
-  - bob.ip.color=2.0.10=np112py27_0
-  - bob.ip.dlib=1.0.1=py27_0
-  - bob.ip.draw=2.0.9=np112py27_0
-  - bob.ip.facedetect=2.1.4=np112py27_0
-  - bob.ip.facelandmarks=1.0.4=py_0
-  - bob.ip.flandmark=2.1.6=np112py27_0
-  - bob.ip.gabor=2.0.11=np112py27_0
-  - bob.ip.optflow.hornschunck=2.0.13=np112py27_0
-  - bob.ip.optflow.liu=2.0.12=np112py27_0
-  - bob.ip.qualitymeasure=1.0.5=np112py27_0
-  - bob.ip.skincolorfilter=0.0.3=py_0
-  - bob.kaldi=1.1.0=py_0
-  - bob.learn.activation=2.0.10=np112py27_0
-  - bob.learn.boosting=2.0.13=np112py27_0
-  - bob.learn.em=2.1.0=np112py27_0
-  - bob.learn.libsvm=2.0.13=np112py27_0
-  - bob.learn.linear=2.1.2=np112py27_0
-  - bob.learn.mlp=2.1.6=np112py27_0
-  - bob.math=3.0.0=np112py27_1
-  - bob.measure=2.4.1=np112py27_0
-  - bob.pad.base=1.0.8=py_0
-  - bob.pad.voice=1.0.4=py_0
-  - bob.sp=2.0.10=np112py27_0
-  - cyvlfeat=0.4.5=np112py27_2
-  - dlib=19.0=np112py27_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - gridtk=1.4.4=py_0
-  - ipdb=0.10.2=py27_0
-  - kaldi=r7271.1a4dbf6=0
-  - keras=2.0.8=py27_1
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libogg=1.3.2=0
-  - libsvm=3.21=3
-  - madmom=0.15.1=py27_0
-  - menpo=0.8.1=np112py27_0
-  - menpofit=0.5.0=py27_0
-  - menpowidgets=0.3.0p6=py27_0
-  - mne=0.14.1=np112py27_0
-  - opencv=3.1.0=np112py27_4
-  - openfst=1.6.1=0
-  - pathlib=1.0=py27_0
-  - pkgtools=0.7.3=py27_0
-  - pyedflib=0.1.9=np112py27_0
-  - schema=0.6.5=py27_0
-  - sox=14.4.2=5
-  - speex=1.2.0=0
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.5=py27_0
diff --git a/doc/envs/v300py36.yaml b/doc/envs/v300py36.yaml
deleted file mode 100644
index 9c1d94f..0000000
--- a/doc/envs/v300py36.yaml
+++ /dev/null
@@ -1,261 +0,0 @@
-name: v300py36
-channels:
-  - https://www.idiap.ch/software/bob/conda/label/archive
-  - defaults
-  - https://www.idiap.ch/software/bob/conda
-dependencies:
-  - alabaster=0.7.10=py36_0
-  - babel=2.5.0=py36_0
-  - backports=1.0=py36_0
-  - backports.weakref=1.0rc1=py36_0
-  - bkcharts=0.2=py36_0
-  - bleach=1.5.0=py36_0
-  - bokeh=0.12.7=py36_0
-  - boost=1.61.0=py36_0
-  - bzip2=1.0.6=3
-  - caffe=1.0.0rc5=np112py36_0
-  - certifi=2016.2.28=py36_0
-  - cloog=0.18.0=0
-  - cloudpickle=0.4.0=py36_0
-  - cmake=3.6.3=0
-  - coverage=4.3.4=py36_0
-  - curl=7.52.1=0
-  - cycler=0.10.0=py36_0
-  - cython=0.25.2=py36_0
-  - cytoolz=0.8.2=py36_0
-  - dask=0.14.3=py36_1
-  - dbus=1.10.20=0
-  - decorator=4.1.2=py36_0
-  - docopt=0.6.2=py36_0
-  - docutils=0.14=py36_0
-  - entrypoints=0.2.3=py36_0
-  - expat=2.1.0=0
-  - fontconfig=2.12.1=3
-  - freetype=2.5.5=2
-  - gcc=4.8.5=7
-  - gflags=2.2.0=1
-  - glib=2.50.2=1
-  - glog=0.3.5=0
-  - gmp=6.1.0=0
-  - gst-plugins-base=1.8.0=0
-  - gstreamer=1.8.0=0
-  - h5py=2.7.0=np112py36_0
-  - hdf5=1.8.17=2
-  - html5lib=0.9999999=py36_0
-  - icu=54.1=0
-  - imagesize=0.7.1=py36_0
-  - ipykernel=4.6.1=py36_0
-  - ipython=5.3.0=py36_0
-  - ipython_genutils=0.2.0=py36_0
-  - ipywidgets=6.0.0=py36_0
-  - isl=0.12.2=0
-  - jbig=2.1=0
-  - jinja2=2.9.6=py36_0
-  - jpeg=9b=0
-  - jsonschema=2.6.0=py36_0
-  - jupyter=1.0.0=py36_3
-  - jupyter_client=5.1.0=py36_0
-  - jupyter_console=5.2.0=py36_0
-  - jupyter_core=4.3.0=py36_0
-  - leveldb=1.20=0
-  - libffi=3.2.1=1
-  - libgcc=4.8.5=2
-  - libgfortran=3.0.0=1
-  - libiconv=1.14=0
-  - libpng=1.6.27=0
-  - libprotobuf=3.2.0=0
-  - libsodium=1.0.10=0
-  - libtiff=4.0.6=3
-  - libxcb=1.12=1
-  - libxml2=2.9.4=0
-  - llvmlite=0.18.0=py36_0
-  - lmdb=0.9.21=0
-  - locket=0.2.0=py36_1
-  - markdown=2.6.9=py36_0
-  - markupsafe=1.0=py36_0
-  - matplotlib=2.0.2=np112py36_0
-  - mistune=0.7.4=py36_0
-  - mkl=2017.0.1=0
-  - mpc=1.0.3=0
-  - mpfr=3.1.5=0
-  - nbconvert=5.2.1=py36_0
-  - nbformat=4.4.0=py36_0
-  - ncurses=5.9=10
-  - networkx=1.11=py36_0
-  - nose=1.3.7=py36_1
-  - notebook=5.0.0=py36_0
-  - numba=0.33.0=np112py36_0
-  - numexpr=2.6.2=np112py36_0
-  - numpy=1.12.1=py36_0
-  - olefile=0.44=py36_0
-  - openblas=0.2.19=0
-  - openssl=1.0.2l=0
-  - pandas=0.20.1=np112py36_0
-  - pandocfilters=1.4.2=py36_0
-  - partd=0.3.8=py36_0
-  - path.py=10.3.1=py36_0
-  - pcre=8.39=1
-  - pexpect=4.2.1=py36_0
-  - pickleshare=0.7.4=py36_0
-  - pillow=4.1.1=py36_0
-  - pip=9.0.1=py36_1
-  - pkg-config=0.28=1
-  - prompt_toolkit=1.0.15=py36_0
-  - protobuf=3.2.0=py36_0
-  - ptyprocess=0.5.2=py36_0
-  - pygments=2.2.0=py36_0
-  - pyparsing=2.2.0=py36_0
-  - pyqt=5.6.0=py36_2
-  - python=3.6.2=0
-  - python-dateutil=2.6.1=py36_0
-  - python-gflags=3.1.1=py36_0
-  - python-leveldb=0.194=py36_1
-  - pytz=2017.2=py36_0
-  - pywavelets=0.5.2=np112py36_0
-  - pyyaml=3.12=py36_0
-  - pyzmq=16.0.2=py36_0
-  - qt=5.6.2=5
-  - qtconsole=4.3.1=py36_0
-  - readline=6.2=2
-  - requests=2.14.2=py36_0
-  - scikit-image=0.13.0=np112py36_0
-  - scikit-learn=0.18.1=np112py36_1
-  - scipy=0.19.0=np112py36_0
-  - setuptools=36.4.0=py36_1
-  - simplegeneric=0.8.1=py36_1
-  - sip=4.18=py36_0
-  - six=1.10.0=py36_0
-  - snappy=1.1.6=0
-  - snowballstemmer=1.2.1=py36_0
-  - sphinx=1.5.6=py36_0
-  - sphinx_rtd_theme=0.2.4=py36_0
-  - sqlalchemy=1.1.9=py36_0
-  - sqlite=3.13.0=0
-  - tensorflow=1.2.1=py36_0
-  - terminado=0.6=py36_0
-  - testpath=0.3.1=py36_0
-  - tk=8.5.18=0
-  - toolz=0.8.2=py36_0
-  - tornado=4.5.2=py36_0
-  - traitlets=4.3.2=py36_0
-  - virtualenv=15.1.0=py36_0
-  - wcwidth=0.1.7=py36_0
-  - werkzeug=0.12.2=py36_0
-  - wheel=0.29.0=py36_0
-  - widgetsnbextension=3.0.2=py36_0
-  - xz=5.2.3=0
-  - yaml=0.1.6=0
-  - zeromq=4.1.5=0
-  - zlib=1.2.11=0
-  - bob=3.0.0=np112py36_0
-  - bob-devel=2017.10.30=np112py36_2
-  - bob-extras=2017.10.22=0
-  - bob.ap=2.1.5=np112py36_0
-  - bob.bio.base=3.2.1=py_0
-  - bob.bio.caffe_face=1.1.0=py_0
-  - bob.bio.face=3.3.0=py_0
-  - bob.bio.gmm=3.1.0=py_0
-  - bob.bio.spear=3.1.1=py_0
-  - bob.bio.vein=1.0.1=py36_0
-  - bob.bio.video=3.3.0=py_0
-  - bob.blitz=2.0.14=np112py36_0
-  - bob.core=2.1.9=np112py36_0
-  - bob.db.arface=2.1.4=py_0
-  - bob.db.asvspoof=1.1.7=py_0
-  - bob.db.asvspoof2017=1.0.3=py_0
-  - bob.db.atnt=2.0.10=py36_0
-  - bob.db.atvskeystroke=2.1.5=py_0
-  - bob.db.avspoof=2.2.8=py_0
-  - bob.db.banca=2.1.5=py_0
-  - bob.db.base=2.3.2=py36_0
-  - bob.db.biosecure=2.1.5=py_0
-  - bob.db.biosecurid.face=2.1.8=py_0
-  - bob.db.casme2=2.1.5=py_0
-  - bob.db.caspeal=2.1.5=py_0
-  - bob.db.cohface=1.0.4=py_0
-  - bob.db.cuhk_cufs=2.1.3=py_0
-  - bob.db.frgc=2.1.3=py_0
-  - bob.db.fv3d=1.0.0=py_0
-  - bob.db.gbu=2.1.4=py_0
-  - bob.db.hci_tagging=1.0.4=py_0
-  - bob.db.ijba=2.0.3=py_0
-  - bob.db.iris=2.1.1=py36_0
-  - bob.db.kboc16=2.0.11=py_0
-  - bob.db.lfw=2.1.5=py_0
-  - bob.db.livdet2013=2.0.6=py_0
-  - bob.db.mnist=2.1.1=py36_0
-  - bob.db.mobio=2.1.5=py_0
-  - bob.db.msu_mfsd_mod=2.2.3=py_0
-  - bob.db.multipie=2.1.4=py_0
-  - bob.db.nist_sre12=3.0.3=py_0
-  - bob.db.pericrosseye=1.0.1=py_0
-  - bob.db.putvein=1.2.1=py_0
-  - bob.db.replay=3.0.3=py_0
-  - bob.db.replaymobile=1.1.3=py_0
-  - bob.db.scface=2.1.5=py_0
-  - bob.db.utfvp=2.4.1=py_0
-  - bob.db.verafinger=1.0.0=py_0
-  - bob.db.voicepa=1.0.2=py_0
-  - bob.db.voxforge=2.2.0=py_0
-  - bob.db.wine=2.0.9=py36_0
-  - bob.db.xm2vts=2.1.4=py_0
-  - bob.db.youtube=2.1.4=py_0
-  - bob.extension=2.4.5=py36_0
-  - bob.io.audio=2.0.6=np112py36_0
-  - bob.io.base=3.0.2=np112py36_0
-  - bob.io.image=2.3.0=np112py36_0
-  - bob.io.matlab=2.0.10=np112py36_0
-  - bob.io.video=2.0.19=np112py36_0
-  - bob.ip.base=2.1.0=np112py36_0
-  - bob.ip.caffe_extractor=1.1.1=py_0
-  - bob.ip.color=2.0.10=np112py36_0
-  - bob.ip.dlib=1.0.1=py36_0
-  - bob.ip.draw=2.0.9=np112py36_0
-  - bob.ip.facedetect=2.1.4=np112py36_0
-  - bob.ip.facelandmarks=1.0.4=py_0
-  - bob.ip.flandmark=2.1.6=np112py36_0
-  - bob.ip.gabor=2.0.11=np112py36_0
-  - bob.ip.optflow.hornschunck=2.0.13=np112py36_0
-  - bob.ip.optflow.liu=2.0.12=np112py36_0
-  - bob.ip.qualitymeasure=1.0.5=np112py36_0
-  - bob.ip.skincolorfilter=0.0.3=py_0
-  - bob.kaldi=1.1.0=py_0
-  - bob.learn.activation=2.0.10=np112py36_0
-  - bob.learn.boosting=2.0.13=np112py36_0
-  - bob.learn.em=2.1.0=np112py36_0
-  - bob.learn.libsvm=2.0.13=np112py36_0
-  - bob.learn.linear=2.1.2=np112py36_0
-  - bob.learn.mlp=2.1.6=np112py36_0
-  - bob.math=3.0.0=np112py36_1
-  - bob.measure=2.4.1=np112py36_0
-  - bob.pad.base=1.0.8=py_0
-  - bob.pad.voice=1.0.4=py_0
-  - bob.sp=2.0.10=np112py36_0
-  - cyvlfeat=0.4.5=np112py36_2
-  - dlib=19.0=np112py36_1
-  - ffmpeg=2.8.10=4
-  - giflib=5.1.4=3
-  - gridtk=1.4.4=py_0
-  - ipdb=0.10.2=py36_0
-  - kaldi=r7271.1a4dbf6=0
-  - keras=2.0.8=py36_1
-  - libblitz=0.10=3
-  - libmatio=1.5.6=3
-  - libogg=1.3.2=0
-  - libsvm=3.21=3
-  - madmom=0.15.1=py36_0
-  - menpo=0.8.1=np112py36_0
-  - menpofit=0.5.0=py36_0
-  - menpowidgets=0.3.0p6=py36_0
-  - mne=0.14.1=np112py36_0
-  - opencv=3.1.0=np112py36_4
-  - openfst=1.6.1=0
-  - pkgtools=0.7.3=py36_0
-  - pyedflib=0.1.9=np112py36_0
-  - schema=0.6.5=py36_0
-  - sox=14.4.2=5
-  - speex=1.2.0=0
-  - toolchain=2.3.2=0
-  - vlfeat=0.9.20=3
-  - x264=20131217=3
-  - zc.buildout=2.9.5=py36_0
diff --git a/doc/help.rst b/doc/help.rst
deleted file mode 100644
index 80f34fa..0000000
--- a/doc/help.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-.. _bob.help:
-
-================================
- How to get help and contribute
-================================
-
-Example usages of Bob
-=====================
-
-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.
-
-
-How to get help
-===============
-
-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 (read only mailing list)
-* https://www.idiap.ch/software/bob/wiki
-
-or you may just want to search on the Internet for possible answers.
-
-Second, feel free to ask us. We encourage you to do so. The preferred way of asking is
-by using public channels. Here is a list of places that you can ask questions:
-
-* Ask on https://stackoverflow.com and tag your questions with ``python-bob``.
-  This is the preferred way.
-
-
-How to contribute
-=================
-
-Bob is open source and we welcome contributions.
-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/img/favicon.ico b/doc/img/favicon.ico
deleted file mode 100644
index 4cc3264302627d40868261add69eb755856611b6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4286
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

diff --git a/doc/img/logo.png b/doc/img/logo.png
deleted file mode 100644
index b60858a7068bf45c1ed8e3da12fe244ccdcfe85d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6266
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

diff --git a/doc/index.rst b/doc/index.rst
deleted file mode 100644
index d24cdb6..0000000
--- a/doc/index.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-.. vim: set fileencoding=utf-8 :
-
-.. _bob_main_page:
-
-=======================
- Bob
-=======================
-
-Bob_ is a free signal-processing and machine learning toolbox originally developed by
-the Biometrics Security and Privacy Group, the Biosignal Processing Group, and the
-Research and Development Engineers at `Idiap`_ Research Institute, Switzerland.
-
-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::
-   :maxdepth: 2
-
-   install
-   help
-   packages
-   tutorial
-
-
-Index of all packages
----------------------
-
-.. toctree::
-   :maxdepth: 1
-   :titlesonly:
-
-   bob.bio.base <bob/bob.bio.base/doc/index.rst>
-   bob.bio.face <bob/bob.bio.face/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>
-   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.base <bob/bob.io.base/doc/index.rst>
-   bob.learn.em <bob/bob.learn.em/doc/index.rst>
-   bob.measure <bob/bob.measure/doc/index.rst>
-   bob.pad.base <bob/bob.pad.base/doc/index.rst>
-   bob.pad.face <bob/bob.pad.face/doc/index.rst>
-   bob.pipelines <bob/bob.pipelines/doc/index.rst>
-   readme_index.rst
-
-.. include:: links.rst
diff --git a/doc/install.rst b/doc/install.rst
deleted file mode 100644
index 888c9a4..0000000
--- a/doc/install.rst
+++ /dev/null
@@ -1,185 +0,0 @@
-.. _bob.install:
-
-===========================
- Installation instructions
-===========================
-
-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 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
-    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
-    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``, ``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 pytorch
-
-#.  Then activate the environment and configure its channels to make sure the
-    channel list is correct in the future as well:
-
-    .. code:: sh
-
-       $ conda activate bob_env1
-       $ conda config --env --add channels conda-forge
-       $ conda config --env --add channels https://www.idiap.ch/software/bob/conda
-
-#.  If you decide to install more packages in the future, just conda install them:
-
-    .. code:: sh
-
-       $ 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`.
-
-.. warning::
-
-    Be aware that if you use packages from our channel and other channels
-    (especially ``defaults``) in one environment, you may end up with a broken
-    envrionment. We can only guarantee that the packages in our channel are
-    compatible with the ``conda-forge`` channel.
-
-.. note::
-
-    Bob does not work on Windows and hence no conda packages are available for
-    it. It will not work even if you install it from source. If you are an
-    experienced user and manage to make Bob work on Windows, please let us know
-    through our `mailing list`_.
-
-.. note::
-
-    Bob has been reported to run on arm processors (e.g. Raspberry Pi) but is
-    not installable with conda. Please see
-    https://stackoverflow.com/questions/50803148 for installations on how to
-    install Bob from source.
-
-.. note::
-
-    If you cannot install a Bob package, you might be trying to install an old
-    package. Please see :ref:`bob.install_old_versions` for instructions on how
-    to install old versions of Bob.
-
-.. _bob.source:
-
-Developing Bob packages
-=======================
-
-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.
-
-.. warning::
-
-  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.
-
-.. _bob.install_old_versions:
-
-Installing older versions of Bob
-================================
-
-Since Bob 4, you can easily select the Bob version that you want to install
-using conda. For example:
-
-.. code:: sh
-
-    $ mamba create -n old_bob_env \
-    --no-channel-priority \
-    -c https://www.idiap.ch/software/bob/conda \
-    -c defaults \
-    -c https://www.idiap.ch/software/bob/conda/label/archive \
-    bob=4.0.0 bob.bio.face
-
-will install the version of ``bob.bio.face`` that was associated with the Bob
-4.0.0 release.
-
-.. note::
-
-    Bob 9 and earlier used the ``defaults`` channel as base, for Bob 10 and
-    later replace ``defaults`` with ``conda-forge`` in the instructions above.
-
-.. note::
-
-    If you install the ``bob`` conda package, you may need to change your
-    channel list to:
-
-    .. code:: sh
-
-       $ conda activate <bob-env-name>
-       $ conda config --env --add channels https://www.idiap.ch/software/bob/conda/label/archive
-       $ conda config --env --add channels defaults
-       $ conda config --env --add channels https://www.idiap.ch/software/bob/conda
-
-Bob packages that were released before Bob 4 are not easily installable. Here,
-we provide conda environment files (**Linux 64-bit only**) that will install
-all Bob packages associated with an older release of Bob:
-
-===========  ==============================================================
-Bob Version  Environment Files
-===========  ==============================================================
-2.6.2        :download:`envs/v262py27.yaml`, :download:`envs/v262py35.yaml`
-2.7.0        :download:`envs/v270py27.yaml`, :download:`envs/v270py35.yaml`
-3.0.0        :download:`envs/v300py27.yaml`, :download:`envs/v300py36.yaml`
-===========  ==============================================================
-
-To install them, download one of the files above and run:
-
-.. code:: sh
-
-    $ mamba env create --file v300py36.yaml
-
-
-Details (advanced users)
-========================
-
-Since Bob 4, the ``bob`` conda package is just a meta package that pins all
-packages to a specific version. Installing ``bob`` will not install anything; it
-will just impose pinnings in your environment. Normally, installations of Bob
-packages should work without installing ``bob`` itself. For example, running:
-
-.. code:: sh
-
-    $ mamba create --name env_name --override-channels \
-      -c https://www.idiap.ch/software/bob/conda -c conda-forge \
-      bob.<package-name>
-
-should always create a working environment. If it doesn't, please let us know.
-
-
-.. include:: links.rst
diff --git a/doc/links.rst b/doc/links.rst
deleted file mode 100644
index 343cffa..0000000
--- a/doc/links.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-.. _anaconda: https://www.continuum.io/anaconda
-.. _Artistic-2.0: http://www.opensource.org/licenses/Artistic-2.0
-.. _Blitz++: https://github.com/blitzpp/blitz
-.. _Bob: https://www.idiap.ch/software/bob
-.. _Boost: http://www.boost.org
-.. _BSD-2-Clause: http://www.opensource.org/licenses/BSD-2-Clause
-.. _BSD-3-Clause: http://www.opensource.org/licenses/BSD-3-Clause
-.. _BSL-1.0: http://www.opensource.org/licenses/BSL-1.0
-.. _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
-.. _LaTeX: http://www.latex-project.org/
-.. _LGPL-2.1: http://www.opensource.org/licenses/LGPL-2.1
-.. _libAV: http://libav.org
-.. _libjpeg: http://libjpeg.sourceforge.net/
-.. _libpng license: http://www.libpng.org/pub/png/src/libpng-LICENSE.txt
-.. _libpng: http://libpng.org/pub/png/libpng.html
-.. _libtiff: http://www.remotesensing.org/libtiff/
-.. _mailing list: https://www.idiap.ch/software/bob/discuss
-.. _mamba: https://github.com/mamba-org/mamba
-.. _mambaforge: https://github.com/conda-forge/miniforge#mambaforge
-.. _MatIO: http://matio.sourceforge.net
-.. _Matplotlib: http://matplotlib.sourceforge.net
-.. _miniconda: http://conda.pydata.org/miniconda.html
-.. _miniforge: https://github.com/conda-forge/miniforge/#miniforge3
-.. _MIT: http://www.opensource.org/licenses/MIT
-.. _nose: http://nose.readthedocs.org
-.. _NumPy Reference: https://docs.scipy.org/doc/numpy/
-.. _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
-.. _SciPy: http://www.scipy.org
-.. _Setuptools: http://trac.edgewall.org/wiki/setuptools
-.. _Sphinx: http://sphinx.pocoo.org
-.. _SQLAlchemy: http://www.sqlalchemy.org/
-.. _SQLite: http://www.sqlite.org
-.. _VLFeat: http://www.vlfeat.org/
-.. _Wiki: https://www.idiap.ch/software/bob/wiki
diff --git a/doc/packages.rst b/doc/packages.rst
deleted file mode 100644
index ee0396d..0000000
--- a/doc/packages.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-.. _bob.packages:
-
-Packages
-========
-
-Bob is organized in several independent python packages.
-You may `search PyPI <https://pypi.org/search/?o=-created&c=Framework+%3A%3A+Bob>`_
-for a comprehensive list of packages that either **use Bob** or **are part of Bob**.
-Moreover, you may find the list of Bob packages that we maintain below.
-
-
-Data Input and Output
----------------------
-
-* :ref:`bob.io.base`
-
-Machine Learning
-----------------
-
-* :ref:`bob.measure`
-* :ref:`bob.learn.em`
-* :ref:`bob.pipelines`
-
-
-Biometric Recognition
----------------------
-
-* :ref:`bob.bio.base`
-* :ref:`bob.bio.face`
-* :ref:`bob.bio.vein`
-* :ref:`bob.bio.video`
-* :ref:`bob.bio.spear`
-* :ref:`bob.fusion.base`
-
-
-Presentation Attack Detection (anti-spoofing)
----------------------------------------------
-
-* :ref:`bob.pad.base`
-* :ref:`bob.pad.face`
-* :ref:`bob.fusion.base`
-
-
-Modules for Developers
-----------------------
-
-* :ref:`bob.devtools`
-* :ref:`bob.extension`
diff --git a/doc/plot/default_crops.py b/doc/plot/default_crops.py
deleted file mode 120000
index daa978d..0000000
--- a/doc/plot/default_crops.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.bio.face/doc/plot/default_crops.py
\ No newline at end of file
diff --git a/doc/plot/detect_faces_mtcnn.py b/doc/plot/detect_faces_mtcnn.py
deleted file mode 120000
index 32216fb..0000000
--- a/doc/plot/detect_faces_mtcnn.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.facedetect/doc/plot/detect_faces_mtcnn.py
\ No newline at end of file
diff --git a/doc/plot/detect_single_face.py b/doc/plot/detect_single_face.py
deleted file mode 120000
index 379f95a..0000000
--- a/doc/plot/detect_single_face.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.facedetect/doc/plot/detect_single_face.py
\ No newline at end of file
diff --git a/doc/plot/disparity.py b/doc/plot/disparity.py
deleted file mode 120000
index 336a16c..0000000
--- a/doc/plot/disparity.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.gabor/doc/plot/disparity.py
\ No newline at end of file
diff --git a/doc/plot/face_eyes_norm.py b/doc/plot/face_eyes_norm.py
deleted file mode 120000
index 373d091..0000000
--- a/doc/plot/face_eyes_norm.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.base/doc/plot/face_eyes_norm.py
\ No newline at end of file
diff --git a/doc/plot/gaussian.py b/doc/plot/gaussian.py
deleted file mode 120000
index 276b59e..0000000
--- a/doc/plot/gaussian.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.base/doc/plot/gaussian.py
\ No newline at end of file
diff --git a/doc/plot/plot_ISV.py b/doc/plot/plot_ISV.py
deleted file mode 120000
index 24fb957..0000000
--- a/doc/plot/plot_ISV.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_ISV.py
\ No newline at end of file
diff --git a/doc/plot/plot_JFA.py b/doc/plot/plot_JFA.py
deleted file mode 120000
index 2d37dd1..0000000
--- a/doc/plot/plot_JFA.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_JFA.py
\ No newline at end of file
diff --git a/doc/plot/plot_MAP.py b/doc/plot/plot_MAP.py
deleted file mode 120000
index f564608..0000000
--- a/doc/plot/plot_MAP.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_MAP.py
\ No newline at end of file
diff --git a/doc/plot/plot_ML.py b/doc/plot/plot_ML.py
deleted file mode 120000
index 5e2aeb4..0000000
--- a/doc/plot/plot_ML.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_ML.py
\ No newline at end of file
diff --git a/doc/plot/plot_Tnorm.py b/doc/plot/plot_Tnorm.py
deleted file mode 120000
index fa9e03a..0000000
--- a/doc/plot/plot_Tnorm.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_Tnorm.py
\ No newline at end of file
diff --git a/doc/plot/plot_ZTnorm.py b/doc/plot/plot_ZTnorm.py
deleted file mode 120000
index 45c8623..0000000
--- a/doc/plot/plot_ZTnorm.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_ZTnorm.py
\ No newline at end of file
diff --git a/doc/plot/plot_Znorm.py b/doc/plot/plot_Znorm.py
deleted file mode 120000
index a8f529f..0000000
--- a/doc/plot/plot_Znorm.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_Znorm.py
\ No newline at end of file
diff --git a/doc/plot/plot_align_faces.py b/doc/plot/plot_align_faces.py
deleted file mode 120000
index 22fc571..0000000
--- a/doc/plot/plot_align_faces.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.dlib/doc/plot/plot_align_faces.py
\ No newline at end of file
diff --git a/doc/plot/plot_iVector.py b/doc/plot/plot_iVector.py
deleted file mode 120000
index 5a30f1c..0000000
--- a/doc/plot/plot_iVector.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_iVector.py
\ No newline at end of file
diff --git a/doc/plot/plot_kmeans.py b/doc/plot/plot_kmeans.py
deleted file mode 120000
index 8c05af0..0000000
--- a/doc/plot/plot_kmeans.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.learn.em/doc/plot/plot_kmeans.py
\ No newline at end of file
diff --git a/doc/plot/plot_landmarks.py b/doc/plot/plot_landmarks.py
deleted file mode 120000
index 26e6b86..0000000
--- a/doc/plot/plot_landmarks.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.dlib/doc/plot/plot_landmarks.py
\ No newline at end of file
diff --git a/doc/plot/plot_multiple_faces.py b/doc/plot/plot_multiple_faces.py
deleted file mode 120000
index f9d68ce..0000000
--- a/doc/plot/plot_multiple_faces.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.dlib/doc/plot/plot_multiple_faces.py
\ No newline at end of file
diff --git a/doc/plot/plot_single_faces.py b/doc/plot/plot_single_faces.py
deleted file mode 120000
index 67ce5ab..0000000
--- a/doc/plot/plot_single_faces.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.dlib/doc/plot/plot_single_faces.py
\ No newline at end of file
diff --git a/doc/plot/show_lena.py b/doc/plot/show_lena.py
deleted file mode 120000
index e2b62da..0000000
--- a/doc/plot/show_lena.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.flandmark/doc/plot/show_lena.py
\ No newline at end of file
diff --git a/doc/plot/similarity.py b/doc/plot/similarity.py
deleted file mode 120000
index 998b020..0000000
--- a/doc/plot/similarity.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.gabor/doc/plot/similarity.py
\ No newline at end of file
diff --git a/doc/plot/single_face_lmks.py b/doc/plot/single_face_lmks.py
deleted file mode 120000
index a3d4cc9..0000000
--- a/doc/plot/single_face_lmks.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.facelandmarks/doc/plot/single_face_lmks.py
\ No newline at end of file
diff --git a/doc/plot/sobel.py b/doc/plot/sobel.py
deleted file mode 120000
index d252e0c..0000000
--- a/doc/plot/sobel.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.base/doc/plot/sobel.py
\ No newline at end of file
diff --git a/doc/plot/transform.py b/doc/plot/transform.py
deleted file mode 120000
index 8854a7b..0000000
--- a/doc/plot/transform.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.gabor/doc/plot/transform.py
\ No newline at end of file
diff --git a/doc/plot/wavelet.py b/doc/plot/wavelet.py
deleted file mode 120000
index 14aa7b9..0000000
--- a/doc/plot/wavelet.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.gabor/doc/plot/wavelet.py
\ No newline at end of file
diff --git a/doc/pyplots/detect_skin_pixels.py b/doc/pyplots/detect_skin_pixels.py
deleted file mode 120000
index 4360674..0000000
--- a/doc/pyplots/detect_skin_pixels.py
+++ /dev/null
@@ -1 +0,0 @@
-../bob/bob.ip.skincolorfilter/doc/pyplots/detect_skin_pixels.py
\ No newline at end of file
diff --git a/doc/readme_index.rst b/doc/readme_index.rst
deleted file mode 100644
index fe05127..0000000
--- a/doc/readme_index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-.. vim: set fileencoding=utf-8 :
-
-README of all Packages
-======================
-
-.. toctree::
-   :maxdepth: 1
-   :titlesonly:
-
-   bob.bio.base <bob/bob.bio.base/README.rst>
-   bob.bio.face <bob/bob.bio.face/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>
-   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.base <bob/bob.io.base/README.rst>
-   bob.learn.em <bob/bob.learn.em/README.rst>
-   bob.measure <bob/bob.measure/README.rst>
-   bob.pad.base <bob/bob.pad.base/README.rst>
-   bob.pad.face <bob/bob.pad.face/README.rst>
-   bob.pipelines <bob/bob.pipelines/README.rst>
diff --git a/doc/tutorial.rst b/doc/tutorial.rst
deleted file mode 100644
index f89b0c7..0000000
--- a/doc/tutorial.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-.. _bob.tutorial:
-
-********************************
- Getting started with |project|
-********************************
-
-The following tutorial constitutes a suitable starting point to get to
-know how to use |project|'s packages and to learn its fundamental concepts.
-
-
-Multi-dimensional Arrays
-========================
-
-The fundamental data structure of |project| is a multi-dimensional array. In
-signal processing and machine learning, arrays are a suitable representation
-for many different types of digital signals such as images, audio data and
-extracted features. For multi-dimensional arrays, we rely on `NumPy`_.
-For an introduction and tutorials about NumPy ndarrays, just visit the `NumPy
-Reference`_ website.
-
-
-Digital signals as multi-dimensional arrays
-===========================================
-
-For |project|, we have decided to represent digital signals directly as
-:any:`numpy.ndarray` rather than having dedicated classes for each type of
-signals. This implies that some convention has been defined.
-
-Vectors and matrices
---------------------
-
-A vector is represented as a 1D NumPy array, whereas a matrix is
-represented by a 2D array whose first dimension corresponds to the rows,
-and second dimension to the columns.
-
-.. code:: python
-
-    >>> import numpy
-    >>> A = numpy.array([[1, 2, 3], [4, 5, 6]], dtype='uint8') # A is a matrix 2x3
-    >>> print(A)
-    [[1 2 3]
-     [4 5 6]]
-    >>> b = numpy.array([1, 2, 3], dtype='uint8') # b is a vector of length 3
-    >>> print(b)
-    [1 2 3]
-
-Images
-------
-
-**Grayscale** images are represented as 2D arrays, the first dimension
-being the height (number of rows) and the second dimension being the
-width (number of columns). For instance:
-
-.. code:: python
-
-    >>> img = numpy.ndarray((480,640), dtype='uint8')
-
-``img`` which is a 2D array can be seen as a gray-scale image of
-dimension 640 (width) by 480 (height). In addition, ``img`` can be seen
-as a matrix with 480 rows and 640 columns. This is the reason why we
-have decided that for images, the first dimension is the height and the
-second one the width, such that it matches the matrix convention as
-well.
-
-**Color** images are represented as 3D arrays, the first dimension being
-the number of color planes, the second dimension the height and the
-third the width. As an image is an array, this is the responsibility of
-the user to know in which color space the content is stored.
-:any:`bob.io.image` provides functions to convert Bob format images into
-Matplotlib_ and other formats and back:
-
-.. code:: python
-
-    >>> import bob.io.image
-    >>> colored_bob_format = numpy.ndarray((3,480,640), dtype='uint8')
-    >>> colored_matplotlib_format = bob.io.image.to_matplotlib(colored_bob_format)
-    >>> print(colored_matplotlib_format.shape)
-    [480 640 3]
-    >>> colored_bob_format = bob.io.image.to_bob(colored_matplotlib_format)
-    >>> print(colored_bob_format.shape)
-    [3 480 640]
-    >>> pillow_img = bob.io.image.bob_to_pillow(colored_bob_format)
-    >>> opencv_bgr = bob.io.image.bob_to_opencv(colored_bob_format)
-
-.. note::
-
-    In :ref:`bob.bio.face`, the images are assumed to be in range ``[0,255]``
-    irrespective of their data type.
-
-Videos
-------
-
-A video can be seen as a sequence of images over time. By convention, the first
-dimension is for the frame indices (time index), whereas the remaining ones are
-related to the corresponding image frame. The videos have the shape of
-``(N,C,H,W)``, where ``N`` is the number of frames, ``H`` the height, ``W`` the
-width and ``C`` the number of color planes.
-
-
-Input and output
-================
-
-:ref:`bob.io.base` provides two generic functions :any:`bob.io.base.load` and
-:any:`bob.io.base.save` to load and save data of various types, based on the
-filename extension. For example, to load a ``.jpg`` image, simply call:
-
-.. code:: python
-
-    >>> import bob.io.base
-    >>> img = bob.io.base.load("myimg.jpg")
-
-`HDF5`_ format, through h5py_, and images, through imageio_, are supported.
-For loading videos, use imageio-ffmpeg_ directly.
-
-
-Machine learning
-================
-
-:ref:`bob.learn.em` provides implementation of the following methods:
-
-    - K-Means clustering
-    - Gaussian Mixture Modeling (GMM)
-    - Joint Factor Analysis (JFA)
-    - Inter-Session Variability (ISV)
-    - Total Variability (TV, also known as i-vector)
-    - Probabilistic Linear Discriminant Analysis (PLDA, also known as i-vector)
-
-All implementations use dask_ to parallelize the training computation.
-
-Database interfaces
-===================
-
-Bob provides an API on top of CSV files to easily query databases.
-A generic implementation is provided in :ref:`bob.pipelines` but packages
-such as :ref:`bob.bio.base` and :ref:`bob.pad.base` provide their own implementations.
-
-Performance evaluation
-======================
-
-Methods in the :ref:`bob.measure` module can be used evaluate error for
-multi-class or binary classification problems. Several evaluation
-techniques such as:
-
-    - Root Mean Squared Error (RMSE)
-    - F-score
-    - Precision and Recall
-    - False Positive Rate (FPR)
-    - False Negative Rate (FNR)
-    - Equal Error Rates (EER)
-
-can be computed. Moreover, functionality for plotting
-
-    - ROC
-    - DET
-    - CMC
-    - EPC
-
-curves are described in more detail in the :ref:`bob.measure`.
-
-.. include:: links.rst
diff --git a/packages.txt b/packages.txt
deleted file mode 100644
index d0ba4fd..0000000
--- a/packages.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-bob/bob.devtools
-bob/bob.extension
-bob/bob.io.base
-bob/bob.measure
-bob/bob.learn.em
-bob/bob.pipelines
-bob/bob.bio.base
-bob/bob.bio.face
-bob/bob.bio.video
-bob/bob.bio.vein
-bob/bob.bio.spear
-bob/bob.pad.base
-bob/bob.pad.face
-bob/bob.fusion.base
diff --git a/version.txt b/version.txt
deleted file mode 100644
index 4e25753..0000000
--- a/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-2018.02.21b0
-- 
GitLab