Your SlideShare is downloading. ×
he Future of Continuous Integration in GNOME
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

he Future of Continuous Integration in GNOME

302

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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
302
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ColinWalterswalters@verbum.orgDaniel M. Germandmg@uvic.caGermán Poo-Caamañogpoo@gnome.orgThe Future ofContinuous Integrationin GNOME
  • 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. Release Management in FOSSDevelopmentreleasesMajorend–userstablereleasesMinorreleases[Michlmayr et al, 2007]
  • 4. Release Management in FOSSDevelopmentreleasesMajorend–userstablereleasesMinorreleasesPeople can only test releases when all thecomponents work together, which usuallyis a distribution
  • 5. Interrelated ComponentsGTK+ ClutterGIOGStreamer EDSGLib libnotify gnomekeyring
  • 6. Geographically Distributed[https://live.gnome.org/GnomeWorldWide]
  • 7. Distributed ThroughIntermediaries
  • 8. Current Workflow
  • 9. Late Detection of Regressions
  • 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. 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. 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. Deploy an entire operating systemin one single checkout and to allowrollback to a previous version
  • 14. Expected Workflow
  • 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. 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. 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.

×