Software Freedom Law Center

Methodologies for Loblaw Development

This page describes the philosophy and methodology of Loblaw development. It is based on suggestions and ideas that Loic Dachary suggested to BradleyMKuhn.

Rationale

The best innovations in the world of software freedom don't happen anymore merely when a small group writes an exciting application. The most interesting stuff occurs when many different programs and systems are brought together to make something entirely new happen. Some of the most interesting work being done in software freedom has this nature. This is particularly true for a project like Loblaw, which seeks to use existing Open Source and Free Software (FOSS) components to yield a complete environment for an office.

This is all well and good, but the side effect is that the barrier for entry for software developers is extremely high. If the developer cannot even get an useful environment up and running that allows her to test out the software when it is integrated with its companion packages, how can a new developer send a quick patch or a basic bug fix?

Furthermore, when FOSS becomes a complex patchwork of installed packages from a GNU/Linux distributor, patched versions of well-known packages, custom configuration files and database schemas, it can be very difficult to even see what the system does and how it might benefit a user.

Mandatory Conclusions from the Rationale

  • There should always be a working test environment that any new user can download and try out.
  • That test environment should be versioned and well-documented.
  • There should be a Wiki that details how the system was configured and installed.
  • The test environment should be patchable by anyone trying it out.

Details on how Loblaw does this

The QEMU image, loblaw.img, should always be kept up-to-date with the latest-and-greatest configurations and should be a working installation of Loblaw. Furthermore, that image should be itself versioned, so that it is easy to track-back and see how Loblaw was installed and configured.

That image is kept in a Mercurial repository, available here.

Maintained in this Wiki is an InstallingLoblaw page that explains step-by-step how the loblaw-test system was installed and configured.

SFLC Main Page

[frdm] Support SFLC