
 * use a separate file for version locking; this will help on systems where
   flock() is emulated using fnctl() and its wierd close semantics.
 * in-place upgrade of resources in executable files
    * with a separate wrapper program that can be spawned to modify
      the in-use executable 
 * respect various distutils settings e.g. verbose, dry_run
 * tests for customisable bootstrap process
 * hooks for code signing etc in the build process
 * think about hooks for upgrade events

 py2app:
   * Frameworks/.../Version/Python changes even when using the same
     build environment.  Why?  What can we do about it?

