Installation Dependencies

Hippo installation is straight forward, with few dependencies that can be installed using standard packages for your System of choice.

The major dependencies to get Hippo working are:

Python

Hippo works happily using Python 2.6, 2.7. Other versions may also be compatible.

Install the Python of Choice for your host.

Git

[Ref: Git Community Book - Installing Git ]

Install Git v1.7.1 or later for your platform from the Git Pages

Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.

Setup and Initialisation

[Ref: Pro Git: Getting Started ]

For the new Git user, a few house-keeping things are useful for shared administration environments to ease tracking of who commits changes to the Hippo repository. If you haven’t already configured your Git environment, keep a reference handy such as: A tour of git: the basics or Git Community Book: Setup and Initialization and configure Git such as the below example:

$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

Which should update/create your standard Git configuration file, usually stored at ~/.gitconfig.

If your configuration is sane, you should get a sane result from the below command-line

$ git config user.name

The above dependencies are available on OpenBSD 5.5 as port/packages. Install the software from there to simplify your workflow

  • py-GitPython
  • py-gitdb
  • py-async

setuptools

[ Ref: PyPi Setuptools]

The GitPython installation process is dependent on setuptools.

Install the software:

  1. use the package-management tool for your OS, or
  2. download a binary package for your host and install, or
  3. download the source and install

GitPython

Install GitPython v0.3 or later.

On most Unix-like systems, you’ll probably need to run these commands as root or using sudo

Install GitPython using setuptools/distribute

$ sudo easy_install GitPython

Or pip:

$ sudo pip install GitPython

Source Install

If the above doesn’t work for you, the following are the dependencies for a source install. Obviously, if you can install any of the dependencies from your OS binary packages, then that may be preferable for compatability, maintenance.

The following procedures install immediate dependencies, and GitPython.

  • GitDB
  • async
  • setuptools
  • GitPython

GitDB

GitDB allows you to access bare git repositories for reading and writing. It aims at allowing full access to loose objects as well as packs with performance and scalability in mind. It operates exclusively on streams, allowing to operate on large objects with a small memory footprint.

$ cd /path-to-my-local-src
$ git clone git://github.com/gitpython-developers/gitdb.git
$ cd gitdb
$ sudo python setup.py install

async

Async aims to make writing asyncronous processing easier. It provides a task-graph with interdependent tasks that communicate using blocking channels, allowing to delay actual computations until items are requested. Tasks will automatically be distributed among 0 or more threads for the actual computation.

$ cd /path-to-my-local-src
$ git clone git://github.com/gitpython-developers/async.git
$ cd async

Review whether the following diff applies:

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -76,7 +76,7 @@ setup(cmdclass={'build_ext':build_ext_nofail},
       url = "http://gitorious.org/git-python/async",
       packages = ('async', 'async.mod', 'async.test', 'async.test.mod'),
       package_dir = {'async':'async'},
-      ext_modules=[Extension('async.mod.zlib', ['async/mod/zlibmodule.c'])],
+      ext_modules=[Extension('async.mod.zlib', ['async/mod/zlibmodule.c'], libraries=["z"])],
       license = "BSD License",
       zip_safe=False,
       long_description = """Async is a framework to process interdependent tasks in a pool of workers"""

Modify the setup.py file as appropriate and install.

$ sudo python setup.py install

GitPython

GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.

$ cd /path-to-my-local-src
$ git clone git://github.com/gitpython-developers/GitPython.git
$ cd GitPython
$ sudo python setup.py install