diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f47f7f3c778d8fba0012c18e6a1f04589c3d632f..04caba5f71c6810dbad45add3fa5814d74adaff1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,43 +1 @@
-variables:
-  CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda"
-  BOB_PACKAGE_VERSION: "unknown"
-  PYTHONUNBUFFERED: 1
-
-stages:
-  - build
-
-.build_template: &build_job
-  stage: build
-  before_script:
-    - mkdir _ci
-    - curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh
-    - chmod 755 _ci/install.sh
-    - ./_ci/install.sh _ci master #installs ci support scripts
-    - ./_ci/before_build.sh
-  script:
-    - ./scripts/build.sh
-  after_script:
-    - ./_ci/after_build.sh
-  cache: &build_caches
-    key: "$CI_BUILD_NAME"
-    paths:
-      - miniconda.sh
-      - ${CONDA_ROOT}/pkgs/*.tar.bz2
-      - ${CONDA_ROOT}/pkgs/urls.txt
-      - ${CONDA_ROOT}/conda-bld/src_cache
-
-linux_36:
-  <<: *build_job
-  variables:
-    PYTHON_VERSION: "3.6"
-    GITLAB_CHECKOUT_STRATEGY: "https://gitlab-ci-token:${CI_BUILD_TOKEN}@gitlab.idiap.ch/"
-  tags:
-    - docker
-  image: continuumio/conda-concourse-ci
-
-macosx_36:
-  <<: *build_job
-  variables:
-    PYTHON_VERSION: "3.6"
-  tags:
-    - macpro
+include: 'https://gitlab.idiap.ch/bob/bob.devtools/raw/master/bob/devtools/data/gitlab-ci/nightlies.yaml'
diff --git a/README.rst b/README.rst
index 556a10dde5a2dcd317f7e4b29a1ea6907f2d5fe3..042aba138a899581f42a4043a490056090343dc6 100644
--- a/README.rst
+++ b/README.rst
@@ -1,10 +1,10 @@
 .. vim: set fileencoding=utf-8 :
-.. Andre Anjos <andre.anjos@idiap.ch>
 .. Sat Feb 17 14:26:47 2018 CET
 
 .. image:: https://gitlab.idiap.ch/bob/bob.nightlies/badges/master/build.svg
    :target: https://gitlab.idiap.ch/bob/bob.nightlies/commits/master
 
+
 ===============
  Bob Nightlies
 ===============
@@ -15,26 +15,6 @@ is triggered every night so all packages are properly recompiled against the
 latest environment and tested together under that light.
 
 
-Installation
-------------
-
-This package can be tested by running the ``scripts/build.sh`` command.
-
-For example, run::
-
-   $ git clean -ffdx # delete all extra files
-   $ git pull --rebase origin master # update bob.nightlies
-   $ export CI_JOB_TOKEN=[YOUR_GITLAB_TOKEN] # Create and export your gitlab access token
-   $ ./scripts/build.sh 3.6
-
-To test all bob packages against Python 3.6.
-
-The script ``build.sh`` will try to execute the steps from the CI in the right
-order and can be used to locally test your modifications **before** pushing a
-branch into the nightlies, which will trigger a complete set of builds in
-multiple platforms.
-
-
 Updating a Package
 ------------------
 
@@ -48,10 +28,9 @@ Updating a Package
    list`_.
 
 The new package must be added to ``order.txt`` respecting the order of
-dependencies.
-Once the file is modified, commit the changes to a **new branch**, with a
-suggestive name. Push the branch and merge it to the master (or ask it to be
-merged), via a standard merge request.
+dependencies.  Once the file is modified, commit the changes to a **new
+branch**, with a suggestive name. Push the branch and merge it to the master
+(or ask it to be merged), via a standard merge request.
 
 
 Contact
diff --git a/order.txt b/order.txt
index dcdbeadb71e949f9506e31659a430b9d8932c758..0a561c8f19a6365d08a14dfe1d903e7d59312b06 100644
--- a/order.txt
+++ b/order.txt
@@ -1,127 +1,127 @@
 # what used to be core packages
-bob.buildout
-bob.extension
-bob.blitz
-bob.core
-bob.io.base
-bob.math
-bob.measure
-bob.io.image
-bob.db.base
-bob.io.video
-bob.io.matlab
-bob.io.audio
-bob.sp
-bob.ap
-bob.ip.base
-bob.ip.color
-bob.ip.draw
-bob.ip.gabor
-bob.learn.activation
-bob.learn.libsvm
-bob.learn.linear
-bob.learn.mlp
-bob.learn.boosting
-bob.db.iris
-bob.learn.em
-bob.db.wine
-bob.db.mnist
-bob.db.atnt
-bob.ip.facedetect
-bob.ip.optflow.hornschunck
-bob.ip.optflow.liu
-bob.ip.flandmark
+bob/bob.buildout
+bob/bob.extension
+bob/bob.blitz
+bob/bob.core
+bob/bob.io.base
+bob/bob.math
+bob/bob.measure
+bob/bob.io.image
+bob/bob.db.base
+bob/bob.io.video
+bob/bob.io.matlab
+bob/bob.io.audio
+bob/bob.sp
+bob/bob.ap
+bob/bob.ip.base
+bob/bob.ip.color
+bob/bob.ip.draw
+bob/bob.ip.gabor
+bob/bob.learn.activation
+bob/bob.learn.libsvm
+bob/bob.learn.linear
+bob/bob.learn.mlp
+bob/bob.learn.boosting
+bob/bob.db.iris
+bob/bob.learn.em
+bob/bob.db.wine
+bob/bob.db.mnist
+bob/bob.db.atnt
+bob/bob.ip.facedetect
+bob/bob.ip.optflow.hornschunck
+bob/bob.ip.optflow.liu
+bob/bob.ip.flandmark
 
 # what used to be extra packages
-gridtk
-bob.ip.qualitymeasure
-bob.ip.skincolorfilter
-bob.ip.facelandmarks
-bob.ip.dlib
-bob.ip.mtcnn
-bob.db.arface
-bob.db.asvspoof
-bob.db.asvspoof2017
-bob.db.atvskeystroke
-bob.db.avspoof
-bob.db.banca
-bob.db.biosecure
-bob.db.biosecurid.face
-bob.db.casia_fasd
-bob.db.casme2
-bob.db.caspeal
-bob.db.cohface
-bob.db.frgc
-bob.db.gbu
-bob.db.hci_tagging
-bob.db.ijbc
-bob.db.kboc16
-bob.db.lfw
-bob.db.livdet2013
-bob.db.mobio
-bob.db.msu_mfsd_mod
-bob.db.multipie
-bob.db.nist_sre12
-bob.db.putvein
-bob.db.replay
-bob.db.replaymobile
-bob.db.scface
-bob.db.utfvp
-bob.db.verafinger
-bob.db.fv3d
-bob.db.hkpu
-bob.db.thufvdt
-bob.db.mmcbnu6k
-bob.db.hmtvein
-bob.db.voicepa
-bob.db.xm2vts
-bob.db.youtube
-bob.db.pericrosseye
-bob.db.maskattack
+bob/gridtk
+bob/bob.ip.qualitymeasure
+bob/bob.ip.skincolorfilter
+bob/bob.ip.facelandmarks
+bob/bob.ip.dlib
+bob/bob.ip.mtcnn
+bob/bob.db.arface
+bob/bob.db.asvspoof
+bob/bob.db.asvspoof2017
+bob/bob.db.atvskeystroke
+bob/bob.db.avspoof
+bob/bob.db.banca
+bob/bob.db.biosecure
+bob/bob.db.biosecurid.face
+bob/bob.db.casia_fasd
+bob/bob.db.casme2
+bob/bob.db.caspeal
+bob/bob.db.cohface
+bob/bob.db.frgc
+bob/bob.db.gbu
+bob/bob.db.hci_tagging
+bob/bob.db.ijbc
+bob/bob.db.kboc16
+bob/bob.db.lfw
+bob/bob.db.livdet2013
+bob/bob.db.mobio
+bob/bob.db.msu_mfsd_mod
+bob/bob.db.multipie
+bob/bob.db.nist_sre12
+bob/bob.db.putvein
+bob/bob.db.replay
+bob/bob.db.replaymobile
+bob/bob.db.scface
+bob/bob.db.utfvp
+bob/bob.db.verafinger
+bob/bob.db.fv3d
+bob/bob.db.hkpu
+bob/bob.db.thufvdt
+bob/bob.db.mmcbnu6k
+bob/bob.db.hmtvein
+bob/bob.db.voicepa
+bob/bob.db.xm2vts
+bob/bob.db.youtube
+bob/bob.db.pericrosseye
+bob/bob.db.maskattack
 
-bob.bio.base
-bob.bio.gmm
-bob.bio.face
-bob.bio.spear
-bob.bio.video
-bob.bio.vein
-bob.bio.face_ongoing
-bob.bio.htface
+bob/bob.bio.base
+bob/bob.bio.gmm
+bob/bob.bio.face
+bob/bob.bio.spear
+bob/bob.bio.video
+bob/bob.bio.vein
+bob/bob.bio.face_ongoing
+bob/bob.bio.htface
 
 #this database depends on bob.bio packages
-bob.db.voxforge
-bob.db.ijba
+bob/bob.db.voxforge
+bob/bob.db.ijba
 
-bob.rppg.base
+bob/bob.rppg.base
 
-bob.pad.base
-bob.pad.face
-bob.pad.voice
-bob.pad.vein
+bob/bob.pad.base
+bob/bob.pad.face
+bob/bob.pad.voice
+bob/bob.pad.vein
 
-bob.fusion.base
+bob/bob.fusion.base
 
 #this database depends on bob.pad packages
-bob.db.oulunpu
-bob.db.uvad
-bob.db.swan
+bob/bob.db.oulunpu
+bob/bob.db.uvad
+bob/bob.db.swan
 
 # Heterogeneous face recognition databases
 
 #this database depends on bob.db.xm2vts and bob.db.arface
-bob.db.cuhk_cufs
-bob.db.cbsr_nir_vis_2
-bob.db.nivl
-bob.db.pola_thermal
-bob.db.cuhk_cufsf
-bob.db.ldhf
+bob/bob.db.cuhk_cufs
+bob/bob.db.cbsr_nir_vis_2
+bob/bob.db.nivl
+bob/bob.db.pola_thermal
+bob/bob.db.cuhk_cufsf
+bob/bob.db.ldhf
 
 
 # Feature extractors packages
-bob.ip.tensorflow_extractor
-bob.ip.caffe_extractor
-bob.bio.caffe_face
-bob.learn.tensorflow
+bob/bob.ip.tensorflow_extractor
+bob/bob.ip.caffe_extractor
+bob/bob.bio.caffe_face
+bob/bob.learn.tensorflow
 
 # test bob itself
-bob
+bob/bob