Skip to content
Snippets Groups Projects
README.md 2.88 KiB
Newer Older
André Anjos's avatar
André Anjos committed
# Recipes and Scripts for Bob Maintenance

This package contains administration scripts for our wikis and the build
system. Use it and update it if you must.


## Basic conda installation

If you still don't have a basic conda installation, use `install-conda.sh` to
create a new installation:
André Anjos's avatar
André Anjos committed

```sh
$ ./install-conda.sh /opt/conda
André Anjos's avatar
André Anjos committed
```

The single parameter defines the prefix of the installation. You'll use this
prefix with the next commands. If everything is already in place, calling this
script only updates your conda root environment.


## From scratch

If you don't have any environment setup, or you want to have the current list
of packages updated, use the `from-scratch.sh` script. It builds an
environment pulling the latest versions of our dependencies from both the
`defaults` and `conda-forge` channels:

```sh
$ ./from-scratch.sh /opt/conda bob-devel-py27 2.7
```

The parameters are:

  1. The base directory where the environment should be installed
  2. The name of the environment to be created
  3. The version of python to use for this environment

Once the environment is generated, you may generate the package list like this:

```sh
$ /opt/conda/bin/conda list -n bob-devel-py27 -e > linux/devel-py27.txt
André Anjos's avatar
André Anjos committed
```


## From list

To create a fully functional environment from a file list, use the following:

```sh
$ ./from-list.sh /opt/conda bob-devel-py27 linux/devel-py27.txt
André Anjos's avatar
André Anjos committed
```

The parameters are:

  1. The base directory where the environment should be installed
  2. The name of the environment to be created
  3. The package list file to use for the newly created environment


#### Extra OS packages

Besides the dependencies encoded in `from-scratch.sh`, Bob development also
requires the following packages, you must procure for your own operating
system:

  * git (required to checkout packages via `mr.developer`)
  * LaTeX (required by matplotlib legends and sphinx documentation generation):
    * texlive-latex-extra
    * texlive-latex-recommended
    * texlive-fonts-recommended
    * dvipng
  * gcc/clang compiler suite + standard c++ library
    * On Linux, use gcc + libstdc++. These are normally distributed by
      installing the gcc and/or g++ packages of your distribution
    * On Mac OSX, use clang + libc++ (compatibility with `conda-forge`). Clang
      and libc++ are distributed with XCode


#### Extra pip packages

From time to time, you'll need to install extra pip packages on your
environment. The most efficient way to manage those is to install by hand on
the environment, using `pip`, then generate a wheel that you'll upload to our
wheel repository for later serving. This wheels will work with the Conda
installation you'll use.

To generate these wheels and upload to our server, do:

```sh
$ ./extra-wheels.sh /opt/conda bob-devel-py27
$ ./extra-wheels.sh /opt/conda bob-devel-py34
$ ./extra-wheels.sh /opt/conda bob-devel-py35
$ ./upload-wheels.sh *.whl
password: *********
```