Setting up a development environment for my software
This sets up a development environment with git checkouts of more or less (see Manifests) all my software packages. You typically only want this if:
- you want to hack a number of these packages at the same time or
- you need the absolute latest version of everything. If you want to hack just one package, it's easier to just clone its git tree and work on it. If you're a user, install the latest released version.
Grab the Android "repo" tool:
mkdir -p ~/bin
curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod +x ~/bin/repo
/!\ The assumption here is that ~/bin
will be on your $PATH
. Alternatively, download repo
to wherever you like and specify the path explicitly below.
Prevent repo sync
below from getting stuck because of host key checking:
echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
/!\ It's important to understand the (minor) security implications of this step.
Create your source root: (Note that the brackets denote an optional part. See Manifests for what values are allowed for manifest.xml
. Don't type the brackets!)
mkdir ~/src # or wherever
cd ~/src
export GIT_SSL_NO_VERIFY=1
repo init -u https://gitlab.tiker.net/inducer/akprojects.git [-m manifest.xml]
repo sync
repo start master --all
Then build:
./bin/build-all python3
or
./bin/build-all python
to get a Python 2 build.
/!\ Note that this refers to ~/src/bin/build-all
(or wherever you chose to place your source tree), not the ~/bin
directory mentioned above.
If you'd like to exclude some projects from the build (like PyCUDA on a system without CUDA), just create a .exclude
file with one excluded project name per line.
Manifests
The following manifests are available:
default.xml
-- this includes all my public scientific-computing-related code. (This is the default.)dev.xml
-- this includes all my code, including what's not public yet. Probably won't work for you.
Using the installed software
The build-all
step actually creates a virtualenv into which it installs all the software. To use it, do:
source ~/src/env/bin/activate