HackingNovaMacOSX
How to Set up a Development Environment on MacOS X
Notes for hacking and cleaning on Nova on MacOS X
Bazaar and Launchpad
OpenStack uses Launchpad, so you need to install the Bazaar client tools. See also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])
brew install bzr # Register your username (your username substitues for heckj): bzr lp-login heckj # Checkout Nova trunk bzr branch lp:nova
The project is transition to hosting code on GitHub, so there is a copy of trunk on GitHub now too.
You can get the trunk from Git too:
git clone git://github.com/openstack/nova.git
Install Python Dependencies
Use Python's easy_install to install virtualenv
sudo easy_install virtualenv
Initial code setup
Initial Code Setup:
cd nova python tools/install_venv.py source .nova_venv/bin/activate
OpenSSL Dependency
If you have installed OpenSSL 1.0.0a on MacOS, which can happen when installing a MacPorts package for OpenSSL, you will see an error when running nova.tests.auth_unittest.AuthTestCase.test_209_can_generate_x509. The version that functions correctly is OpenSSL 0.9.8l 5, installed with MacOS 10.6 as a base element.
There is no easy way to install an older package version using macports, but if it had been installed you can reactivate it.
sudo port activate openssl @0.9.8n_0+darwin
The alternative is to remove it and use the default OSX openssl. This will give you dependency errors on the port command, so you need to force it.
sudo - f port uninstall openssl
Run the Tests
cd nova bzr pull # get the latest stuff... source .nova_venv/bin/activate ./run_tests.sh #... do cleaning work ... bzr push lp:~YOURID/nova/cleaning
To submit the merge/patch:
- navigate to https://code.launchpad.net/~YOURID/nova/cleaning
- click on the link "Propose for merging"