Continuous integration for GNOME Juan Jos Snchez Penas - - PowerPoint PPT Presentation

continuous integration for gnome
SMART_READER_LITE
LIVE PREVIEW

Continuous integration for GNOME Juan Jos Snchez Penas - - PowerPoint PPT Presentation

Continuous integration for GNOME Juan Jos Snchez Penas <jjsanchez@igalia.com> Guadec 2006, Vilanova i la Geltr Proposed table of contents What is continuous integration? Why CI for Gnome? History of CI inside the GNOME


slide-1
SLIDE 1

Continuous integration for GNOME

Juan José Sánchez Penas <jjsanchez@igalia.com> Guadec 2006, Vilanova i la Geltrú

slide-2
SLIDE 2

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 2

Proposed table of contents

  • What is continuous integration?
  • Why CI for Gnome?
  • History of CI inside the GNOME project
  • Present of CI inside the GNOME project
  • Goals of the continous integration
  • Discussion about the available tools:

– C.I. tools: jhautobuild, tinderbox, bulidbot,... – Value added tools: check, gcov,...

  • Creation of the continous integration team
  • Definition of the roadmap for the next year
slide-3
SLIDE 3

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 3

What is Continuous Integration (CI)?

  • Wikipedia defines it as follows:

– Continuous Integration is a software

engineering term describing a process that completely rebuilds and tests an application frequently.

– Tipically refers to the eXtreme Programming

practice.

– The more popular form (also called Automated

Continuous Integration) takes the form of a server process or daemon that monitors a version control system and automatically runs the build process (and then runs test scripts).

slide-4
SLIDE 4

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 4

Why CI for Gnome?

  • Detect new errors in the software - early.
  • Automatic testing: unit testing, functional testing,

performance (speed and memory), code coverage, functionality texting...)

  • The Pango/Cairo problem in Federico's Keynote

could be detected automatically.

  • ...
slide-5
SLIDE 5

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 5

History of CI inside GNOME

  • Before?
  • Summer 2005: Luis Villa's work on Tinderbox

(MicroTinder)

  • Summer2005-Summer2006: No continuous

integration for Gnome

slide-6
SLIDE 6

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 6

Present of CI inside GNOME

  • Currently for Gnome:

– jhAutoBuild (http://jhbuild.bxlug.be/) – Tinderbox 2 for Gnome (http://tinderbox.igalia.com) – Tinderbox 3 for Gnome (http://tbox3.igalia.com)

  • Other free software projects

– Freedesktop: http://tinderbox.anholt.net (Tinderbox 3) – Gstreamer: http://build.fluendo.com:8080/ (BuildBot) – Fisterra: http://tinderbox.fisterra.org (Tinderbox 2) – Samba: http://build.samba.org/ (custom development) – PostgreSQL: http://www.pgbuildfarm.org/ (custom dev)

slide-7
SLIDE 7

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 7

Goals of the CI for GNOME (I)

  • (Luis Villa's) Hard Requirements:

– Supports Big List O'Modules – Many build types/sources – Reporting (easy view for non-experts, per-module) – Tests (supports LDTP/Dogtail), xvfb integration, – Documented (how to make the tool work with Gnome)

  • Also interesting:

– Integration with other tools like CVS/Bonsai/Bugzilla/LXR... (all

the Mozilla tools)

– Security (authentication, encription, etc.) – Easy to deploy (installation should be trivial)

slide-8
SLIDE 8

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 8

Goals of the CI for GNOME (II)

  • (Luis Villa's) Bonus requirements:

– Handle module dependencies – Notification features – Minimal duplication of build information – Distributed – Easy to set up/maintain – Builds Ekiga :-) – Active development community

slide-9
SLIDE 9

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 9

Goals of the CI for GNOME

  • (Luis Villa's) Serius Bonus:

– Records last successful build of a module – Output binaries – Records Dogtail/LDTP tests with VNC2SWF or

something similar

– Mail maintainers of a broken module – Deposit special files in special locations – Support local patches (only used for CI)

slide-10
SLIDE 10

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 10

Which tools should Gnome use?

  • For the continuous integration (one or several?):

– jhAutobuild? – Tinderbox3? – Buildbot?

  • Complementary tools (value added):

– Check – gcov – LDTP/Dogtail – ...

slide-11
SLIDE 11

Continuous integration for Gnome – Guadec 2006, Vilanova i la Geltrú 11

How to organize the work?

  • Creating the CI Team

– Volunteers? – Team structure? Roles? – Mailing lists, wiki sections, etc.

  • Definition of a roadmap (priorities)

– What to do before the end of the year – What to do during 2007