SIL LSDev Linux Development

Language software for Linux and Mac OS X

Source code unification

We reached a significant milestone recently when we re-integrated all of the work we’ve done over the past several years to port FieldWorks to Linux. There’s now a single source tree, in a single version control system, that contains both the Windows and the Linux versions of FieldWorks.

In fact, it’s more correct to say that the FieldWorks source tree is now cross-platform:

  • It uses a single build system (NANT) that runs on both platforms.
  • The majority of the code is identical for both platforms.
  • Most platform differences are handled by relatively short sections of conditional compilation.
  • Data is stored using cross-platform technologies, thanks to the recent rearchitecture.

By having all the source code in a single version control system the constant burden of keeping the two strands of development in sync is greatly reduced. We’re still using a separate branch for the Linux work, but integrations to and from the mainline happen every week or two, and are much easier to handle.

We have continuous integration systems (automated build and test) running for both platforms on both branches, so that problems are picked up early and can be dealt with while the changes that produced them are still fresh.

This is a great step forward in the cross-platform development of FieldWorks. It’s been a long time in coming, but it definitely was worth waiting for.

Leave a Reply