he Future of Continuous Integration in GNOME


Published on

In Free and Open Source Software (FOSS) projects
based on Linux systems, the users usually install the software
from distributions. The distributions act as intermediaries be-
tween software developers and users. Distributors collect the
source code of the different projects and package them, ready
to be installed by the users. Packages seems to work well for
managing and distributing stable major and minor releases. It
presents, however, various release management challenges for
developers of projects with multiples dependencies not always
available in the stable version of their systems. In projects like
GNOME, composed of dozens of individual components, devel-
opers must build newer versions of the libraries and applications
that their applications depend upon before working in their own
projects. This process can be cumbersome for developers who are
not programmers, such as user interaction designers or technical
writers. In this paper we describe some of the problems that the
current distribution model presents to do continuous integration,
testing and deployment for developers in GNOME, and present
ongoing work intended to address these problems that uses a git-
like approach to the building and deployment of applications.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

he Future of Continuous Integration in GNOME

  1. 1. ColinWalterswalters@verbum.orgDaniel M. Germandmg@uvic.caGermán Poo-Caamañogpoo@gnome.orgThe Future ofContinuous Integrationin GNOME
  2. 2. Motivation● Colins experience in Fedora and GNOME:“Easier for Fedora QA to install LXDE than tohelp to debug and fix GNOME”“User Experience Designers want to see whatthey are designing”
  3. 3. Release Management in FOSSDevelopmentreleasesMajorend–userstablereleasesMinorreleases[Michlmayr et al, 2007]
  4. 4. Release Management in FOSSDevelopmentreleasesMajorend–userstablereleasesMinorreleasesPeople can only test releases when all thecomponents work together, which usuallyis a distribution
  5. 5. Interrelated ComponentsGTK+ ClutterGIOGStreamer EDSGLib libnotify gnomekeyring
  6. 6. Geographically Distributed[https://live.gnome.org/GnomeWorldWide]
  7. 7. Distributed ThroughIntermediaries
  8. 8. Current Workflow
  9. 9. Late Detection of Regressions
  10. 10. Problems● Challenge for collaboration between different kind ofcontributors (Interaction between designers and programmers)● Barrier of entry for potential new developers as buildingthe system becomes more complex● Detection of regressions can be delayed making thequality assurance process slower● Difficult to test development versions as a whole withoutthe risk of breaking the system
  11. 11. Research Goal● How can the release management process beimproved to allow any potential contributor to trythe latest versions available without breaking theirsystem, and allow them to easily switching betweena testing and a development environment?
  12. 12. OSTree: Continuous Integration System● Version Control System designed for binaries● Build system for applications● Deploy a Linux–based operating system in a similarway as developers use version control system
  13. 13. Deploy an entire operating systemin one single checkout and to allowrollback to a previous version
  14. 14. Expected Workflow
  15. 15. Benefits● Developer do not have to build the dependenciesfor their projects● Test a development version by running them on adaily basis● Does not disrupt developers existing system● Possible to bisect across operating system builds● User can participate bisecting● Provides a reference system
  16. 16. Status● It is being used by some early adopter developers● The build system is working for one specific architecture● Images to test– http://ostree.gnome.org/work/images/z/current/● More details in paper and https://live.gnome.org/OSTree● Source code:– https://git.gnome.org/browse/ostree– https://git.gnome.org/browse/gnome-ostree
  17. 17. Conclusions● It is difficult to deploy test versions when there aretoo many components interrelated. As aconsequence, this reduces the participation of usersand potential new contributors● OSTree combines features from a version controland package systems to offer multiple versions of aprogram and multiple parallel installations.● It makes possible to try a project like GNOMEminutes or hours after a change has beencommitted in the source code repository.