Back in 2008, when we started writing the initial infrastructure for the litl OS UI, Havoc added a way to run the whole thing using uninstalled files in the source tree. Back then, I was so blindly used to the “make → make install → run” cycles that I didn’t think this would be especially useful. I was obviously wrong.
litl’s UI shell is a relatively big component comprising our window and compositing manager, UI shell, plugin framework, a few highly integrated apps—online photos, video chat, settings, friends, etc—among other things. Having to install all that for every change in the code would be time consuming and utterly distracting.
I added support for uninstalled run in The Board a few weeks ago. It’s an separate executable that allows you to run the app using fonts, images, icons, plugins residing in the source tree. The only missing part is being able to use uninstalled translations from the source tree—any good ideas on how to do it? GNOME Shell also allows you to run it from source tree inside Xephyr using a wrapper script.
The bottom line is: any step between a code change and running the software is a distraction. If you can make your app run using only uninstalled files from source tree, do it! This is especially important in complex code bases using lots of different assets—icons, images, UI definition files, translations, fonts, etc. This allows you to test your code changes without much hassle. And it saves you precious time.