Hacking Python SDK » History » Revision 9
Revision 8 (Tom Clegg, 07/25/2014 06:49 PM) → Revision 9/26 (Tom Clegg, 08/08/2014 11:30 AM)
h1. Hacking Python SDK {{toc}} h2. Prerequisites The FUSE driver requires associated libraries to build: <pre> sudo apt-get install libattr1-dev libfuse-dev pkg-config fuse sudo adduser "$USER" fuse sudo chmod g+rw /dev/fuse sudo chown root:fuse /dev/fuse </pre> After installing @fuse@ and adding yourself to the @fuse@ group, you need to start a new login session. Make sure the @groups@ command reports that you're in the @fuse@ group. h2. Get the source code <pre> cd git clone https://github.com/curoverse/arvados.git </pre> h2. virtualenv virtualenv helps you isolate the dependencies for a specific package or environment, much like Bundler does for our Rails applications. The recommended way to deploy is to build a virtualenv for Arvados development. To build the virtualenv, run: <pre> $ virtualenv --setuptools VENVDIR </pre> (@VENVDIR@ can be a directory anywhere you like, although best practice is to keep it outside your source directory.) To set up the shell to use the isolated virtualenv environment, run: <pre> $ source VENVDIR/bin/activate </pre> To learn more about using and configuring virtualenv, read the "virtualenv usage documentation":https://virtualenv.pypa.io/en/latest/virtualenv.html#usage. h2. Run tests Strategy: # Set up the environment to use a dedicated virtualenv # Run the client library test suite # Build a client library package and install it to the virtualenv # Run the FUSE driver test suite # Build a FUSE driver package and install it to the virtualenv Note: The test suite brings up a Keep server and an API server to run tests against. For best results: * Try [[Hacking Keep]] and [[Hacking API Server]] to make sure you have all the right dependencies for running the Keep and API servers. * Make sure you have a blob_signing_key in services/api/config/application.yml * Build Keep binary. @cd .../arvados/services/keep; ./go.sh install keep@ Script (make sure to edit the first line to refer to your virtualenv): <pre> source VENVDIR/bin/activate cd ~/arvados/sdk/python GOPATH="$HOME/go" python setup.py test python setup.py egg_info -b ".$(git log --format=format:%ct.%h -n1 .)" sdist rotate --keep=1 --match .tar.gz pip install dist/arvados-python-client-0.1.*.tar.gz cd ~/arvados/services/fuse GOPATH="$HOME/go" python setup.py test python setup.py egg_info -b ".$(git log --format=format:%ct.%h -n1 .)" sdist rotate --keep=1 --match .tar.gz pip install dist/arvados_fuse-0.1.*.tar.gz </pre>