diff --git a/.gitignore b/.gitignore
index ab031ac6e1089eac16fa0f906d764eb04d4c36ac..5bc0d27a6a470819583a7d780868a02a0e2797f8 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 eb063aee6db7cd2afa3515f2454bf18a52856271..0000000000000000000000000000000000000000
--- 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 e57686eafa17ee590eef13662cd191dddb66c144..0000000000000000000000000000000000000000
--- 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 73bec64b5e677a16336b207132d77b845ac5bedb..0000000000000000000000000000000000000000
--- 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 16dee0057947859dc5a4e8dc6ea1983f682238f3..0000000000000000000000000000000000000000
--- 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 a287392f705f1c10adec86c2e2e5a1b0b1c9cb24..0000000000000000000000000000000000000000
--- 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 70b4e224eabf6a076c73d7b449d7967cdd4cc169..0000000000000000000000000000000000000000
--- 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 57330559d3c5a572b61a8ccacdaa6210647257e3..0000000000000000000000000000000000000000
--- 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 701deb7930aa6bf0cb0d6a788229d9cb9866b8d4..0000000000000000000000000000000000000000
--- 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 36e90f911f42312a80682b781af2a347d9b43560..0000000000000000000000000000000000000000
--- 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 e6567cc38ec038fb3f7460f7c2624a65fb6c382b..0000000000000000000000000000000000000000
--- 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 f4f47a378a3af90ead2be42adafa5c2578874c18..0000000000000000000000000000000000000000
--- 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 9c1d94f1dba3fe43de27b9a64ba46aa6983715c7..0000000000000000000000000000000000000000
--- 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 80f34faad881b41a8bea3c3f01f2acaf142d2c4d..0000000000000000000000000000000000000000
--- 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
Binary files a/doc/img/favicon.ico and /dev/null differ
diff --git a/doc/img/logo.png b/doc/img/logo.png
deleted file mode 100644
index b60858a7068bf45c1ed8e3da12fe244ccdcfe85d..0000000000000000000000000000000000000000
Binary files a/doc/img/logo.png and /dev/null differ
diff --git a/doc/index.rst b/doc/index.rst
deleted file mode 100644
index d24cdb6b97bf92ff40ea3aef216dfa15336b5e4c..0000000000000000000000000000000000000000
--- 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 888c9a4a8534db50fbc8016831e9163bb36fbc50..0000000000000000000000000000000000000000
--- 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 343cffac49dbf5a0b4b874a1a735a7cc44be6253..0000000000000000000000000000000000000000
--- 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 ee0396de5ac9335ed930f7f5f60f5ca94bc81d7d..0000000000000000000000000000000000000000
--- 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 daa978d9ab5be15c2c404aba57a017d1e37a1afd..0000000000000000000000000000000000000000
--- 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 32216fb8b9931c4177ad3b63d8eea18738ca3f84..0000000000000000000000000000000000000000
--- 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 379f95a72d1a97769def1516afe1daef2aec6a4a..0000000000000000000000000000000000000000
--- 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 336a16c17e0f7d51a9902537ae9a20695186ee21..0000000000000000000000000000000000000000
--- 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 373d091b818487b0bdf173713803fbb4ea71010a..0000000000000000000000000000000000000000
--- 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 276b59e3613589db0c5f0556c7fb08ee09f3c7ac..0000000000000000000000000000000000000000
--- 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 24fb957c5d07b48f7cb4ab48e966a00d88ec3569..0000000000000000000000000000000000000000
--- 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 2d37dd1d0913213daab555c732ddb083a78fe3c3..0000000000000000000000000000000000000000
--- 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 f564608341a738416704403850821501d9979922..0000000000000000000000000000000000000000
--- 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 5e2aeb4b520ebd9b978f5f151e33e56b8584e134..0000000000000000000000000000000000000000
--- 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 fa9e03aa959a386a52a514826366d4ad56fcbdca..0000000000000000000000000000000000000000
--- 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 45c86231b83c321a7fdb16d8bf3d60308e13d4a2..0000000000000000000000000000000000000000
--- 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 a8f529faf6cd9f3c5c45f231bfbe460ee3ba00c0..0000000000000000000000000000000000000000
--- 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 22fc5716768bf8463a81a802470844fa0bba73e1..0000000000000000000000000000000000000000
--- 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 5a30f1c3b8c5b0b4d0e03f729d6db0b371178f92..0000000000000000000000000000000000000000
--- 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 8c05af0489e20f9f3e9ecc394a854a2084074997..0000000000000000000000000000000000000000
--- 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 26e6b86bd38267e39e277253f77ba08665870792..0000000000000000000000000000000000000000
--- 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 f9d68cec9e7271668a656d3826dfb0b02cc829a3..0000000000000000000000000000000000000000
--- 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 67ce5abf96a7ac4c8e4c9a53e9a381fa82229263..0000000000000000000000000000000000000000
--- 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 e2b62da6be140a86ea7ba89fe07bf8d30f8a5852..0000000000000000000000000000000000000000
--- 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 998b0205e62ef9929e20e30197e11dbfa88b528f..0000000000000000000000000000000000000000
--- 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 a3d4cc942c3cd3f723da4d87ab07a7c95d78612c..0000000000000000000000000000000000000000
--- 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 d252e0c27375c11b011a082c0d23f7ffbb71c5b1..0000000000000000000000000000000000000000
--- 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 8854a7bed116e28dd6b5e4e26dfc70bee6f2ad3e..0000000000000000000000000000000000000000
--- 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 14aa7b9857bf1663240e9a1a9ab3fe9cb4be9b40..0000000000000000000000000000000000000000
--- 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 4360674fe9d203dd5d7f39359a3d22465db565fe..0000000000000000000000000000000000000000
--- 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 fe051273c259e235fe1f505b7cd831e950b24cd8..0000000000000000000000000000000000000000
--- 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 f89b0c7235d3b5f8998fbf566e1b427098edb94c..0000000000000000000000000000000000000000
--- 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 d0ba4fdfa691033ffbbd1d59596ecee4d30b5e33..0000000000000000000000000000000000000000
--- 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 4e25753c8d7e3c289eec63f0686f3abb35c67504..0000000000000000000000000000000000000000
--- a/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-2018.02.21b0