Wednesday, March 7, 2012

Ubuntu Global Jam - Lessons I Learned

Ubuntu Cupcakes from Stacy Skaggs
The Ubuntu Global Jam was last Friday through Sunday and on Friday some Florida LoCo members got together at Chris Johnston's house in Orlando.  I've never been so I thought I would go, though it was on a Friday I could use the break.

I learned quite a few little things to make life easier working on Ubuntu Websites.  The first is a way of keeping the same development environments across project branches.  This has always been an issue for me because with bzr you can't just bzr checkout branch-name and the code changes like git.  Thats not its workflow.  Michael Hall pointed me to this post which is the method he uses for all his bzr repositories.  Basically, create a blank repository.  Inside the repository you create a trunk with the code from launchpad.  Then you branch the local copy into your feature/bug/issue branch.  Finally you lightweight checkout that branch to a working repo folder.  Sound confusing?  It does at first.  First off lightweight checkout doesn't import the code, just links to it.  Meaning when you modify code, push code, commit code its happening from the named branch not from work.  When you create your development environment around work, those files reference the work directory.  So when you change to a different feature, bug or issue the environment files still point to work and you don't have to rebuild.  Example commands:

bzr init-repo project-name
cd project-name
bzr branch lp:launchpad-bzr-name trunk
bzr branch trunk issue-specific-name
bzr checkout --lightweight issue-specific-name work

The second thing I learned was virtualenv for python.

sudo apt-get install python-virtualenv 
sudo apt-get install virtualenvwrapper

These separate the required environment for the ubuntu community websites from the installation of python you have installed and keeps everything nice and clean.  Now little did I know I was using this sort of with the make commands, however, with knowledge comes control and understanding.

I also got to see a bit of python dbugging as Michael Hall and Chris Johnston worked on that for a bit. Ate some fantastic cupcakes, and had a great time getting to dedicate some time to Ubuntu with some pretty awesome people.