Wednesday, March 25, 2009

XCode - Development Version Numbers

In the Cello development I have numbered each checkin. This checkin number is recorded in a tag-line in each file that is checked in, and in the checkin comment (or message). Once I have reached the stage of building the test applications I have been careful to build a version of the test application with the build number and archive it. The idea behind this is that when I find a regression or performance anomaly I can test against the checkin points and find out where the problem was introduced. Until now I have numbered the builds individually after they have been constructed but it is possible to get XCode to do this for you automatically.

To do this I did the following:
  • Added a new file history.xconfig to the project.
  • In history.xconfig added a single line CELLO_BUILD_NUMBER=0129
  • Changed the build settings so that they are "based on history.xconfig". You do this by choosing the build settings from a the "based on" popup that appears in the build settings pane.
  • Changed the Product Name in the build settings to Cello $(CELLO_BUILD_NUMBER)

The effect of this is each time I change history.xconfig Cello will be built with the appropriate build number.

Sunday, March 22, 2009

The Joy of GIT

Once you start getting accustomed to GIT it becomes quite addictive. I have started using GIT on another project. Despite using use only a fraction of it I have found it so fast and flexible that I have decided to move the Cello project over to GIT.

To install Git on your machine the easiest way to go is to use MacPorts. MacPorts is a cunning system that will install a package and all it's dependent packages, downloading, building and linking as necessary like magic. Once you have installed MacPorts installing a package like GIT is a breeze. Pop open the terminal and type

$sudo port install git-core

To import a CVS project into GIT you will need to install cvsps. Again this can be done with MacPorts

$sudo port install cvsps

And you are good to go, well to migrate your CVS repository to GIT. For me the following command imported the project in its entirety

$git cvsimport -v -C path_to_my_git_repositry my_module

Tuesday, March 3, 2009

UI - BabySteps

In building the UI I am planning to take baby-steps. There are two reasons for this
  • Small steps are easier
  • I have a tiny amount of spare time
As things currently pan out I can only spare, at most, a couple of hours a week to work on Cello. A philosophy that I take when clearing the kitchen at home, a task that I find perpetually bewildering, is to do something productive with every action and not to worry too much about the final result. The accumulation of actions results in a tidy kitchen. So I take baby steps with the UI.