HackingNovaMacOSX
How to Set up a Development Environment on MacOS X
Notes for hacking and cleaning on Nova on MacOS X
Install BZR
brew install bzr
Register your username
bzr lp-login heckj
(your username substitues for heckj, see also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])
Get Virtual Env
sudo easy_install virtualenv
Initial Code Setup:
bzr branch lp:nova cd nova python tools/install_venv.py source .nova_venv/bin/activate pip install pep8 # submitting patch so that Nova has pep8 and pylint in PIP requirements file pip install pylint
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.
from http://wiki.openstack.org/InstallationNova20100729 (I do this in a separate window that I hide to let Redis be as noisy as it wants to in the background. Redis won't be needed after the Austin release, most likely.)
cd nova curl http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz -o redis-2.0.0-rc4.tar.gz tar xvfz redis-2.0.0-rc4.tar.gz cd redis-2.0.0-rc4 # Make and start Redis server make ./redis-server &
cd nova bzr pull # get the latest stuff... source .nova_venv/bin/activate redis-2.0.0-rc4/redis-server & ./run_tests.sh #... do cleaning work ... bzr push lp:~heckj/nova/cleaning
To submit the merge/patch:
- navigate to https://code.launchpad.net/~heckj/nova/cleaning
- click on the link "Propose for merging"
Open questions
- Once merged in and accepted, does the proposal get closed?
Once a proposal is reviewed, merged, and accepted, Launchpad sets the branch status to "Merged" which effectively closes the proposal.
- Do we then delete this branch and create another with the next cleaning/merge request?
Yes, a branch can be deleted locally and you just create another branch next time you want to modify code to be merged into another branch.
- Or do we make more changes, push to this branch, and then submit another merge request?
You can do either though the merging is more complicated the further from trunk that your branch gets, I believe.