Jump to: navigation, search

Difference between revisions of "HackingNovaMacOSX"

(Changed Launchpad refs to Github)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
= How to Set up a Development Environment on MacOS X =
+
= How to Set up a Development Environment on Mac OS X =
  
Notes for hacking and cleaning on Nova on MacOS X
+
Notes for hacking and cleaning on Nova on Mac OS X
  
== Bazaar and Launchpad ==
+
== Git and Github ==
  
[[OpenStack]] uses Launchpad, so you need to install the Bazaar client tools.
+
OpenStack code is hosted on Github and uses git, which should already be
See also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])
+
installed on Mac OS X. To grab the latest code:
 
 
 
 
<pre><nowiki>
 
brew install bzr
 
# Register your username (your username substitues for heckj):
 
bzr lp-login heckj
 
# Checkout Nova trunk
 
bzr branch lp:nova
 
</nowiki></pre>
 
 
 
 
 
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:
 
  
  
Line 59: Line 46:
 
== OpenSSL Dependency ==
 
== 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.   
+
If you have installed OpenSSL 1.0.0a on Mac OS X, 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.
 
There is no easy way to install an older package version using macports, but if it had been installed you can reactivate it.
Line 80: Line 67:
 
<pre><nowiki>
 
<pre><nowiki>
 
cd nova
 
cd nova
bzr pull # get the latest stuff...
+
git pull # get the latest stuff...
source .nova_venv/bin/activate
 
 
./run_tests.sh
 
./run_tests.sh
 
 
#... do cleaning work ...
 
#... do cleaning work ...
 
bzr push lp:~YOURID/nova/cleaning
 
 
</nowiki></pre>
 
</nowiki></pre>
  
  
To submit the merge/patch:
+
To submit the merge/patch, see [[GerritWorkflow]]
* navigate to https://code.launchpad.net/~YOURID/nova/cleaning
 
* click on the link "Propose for merging"
 

Revision as of 20:59, 31 December 2011

How to Set up a Development Environment on Mac OS X

Notes for hacking and cleaning on Nova on Mac OS X

Git and Github

OpenStack code is hosted on Github and uses git, which should already be installed on Mac OS X. To grab the latest code:


git clone git://github.com/openstack/nova.git


Install Python Dependencies

Use Python's easy_install to install virtualenv


sudo easy_install virtualenv


You'll also need swig (install any way you want, but brew is nice http://mxcl.github.com/homebrew/):


brew install swig


Initial code setup

Initial Code Setup:

cd nova
python tools/install_venv.py
source .venv/bin/activate


OpenSSL Dependency

If you have installed OpenSSL 1.0.0a on Mac OS X, 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
git pull # get the latest stuff...
./run_tests.sh
#... do cleaning work ...


To submit the merge/patch, see GerritWorkflow