daily-upstream-builds-xfce

Revision 7 as of 2009-07-25 00:45:04

Clear message

Specifications for this cycle :

Daily upstream builds of Xfce

Perform daily upstream package builds of Xfce trunk for testing & debugging

Summary

The goal is to take the trunk of Xfce (only core components for now) every night and attempt to build two sets of debian packages: relatively unmodified (as close as vanilla upstream as possible) and patched as normal (modified with our usual set of patches).

Rationale

This will provide us with a number of benefits which include, but are not limited to, the following:

  1. Early detection of problems, issues, and concerns
  2. Easier to help test the latest and greatest Xfce
  3. Easier to test if a bug has been fixed already or not
  4. Easier to determine if a bug is our fault or really a bug upstream

Use cases

  • Jenny, an Xfce developer, asks Zelda to test some changes she made to xfce4-mixer's slider controls the other day. Zelda easily installs the xfce4-mixer from the PPA and finds that she can no longer move the sliders to change the volume after setting them to max. Zelda removes the xfce4-mixer from the PPA and re-installs the latest version from the Xubuntu after sharing a laugh about the bug with Jenny.
  • Zorro wants to help contribute to Xubuntu/Xfce via testing/QA so he enables the PPA in Software Sources. Since Zorro gets the latest from trunk every day, he is able to keep up with development and helps make Xubuntu/Xfce better by helping spot bugs and problems early.
  • Wayne, a Xubuntu developer, is trying to debug a tricky issue that seems to be only affecting Xubuntu users. Wayne uses the packages from the two PPAs (vanilla vs. Xubuntu) and determines the issue is with an old Xubuntu patch (or really is in Xfce).
  • Zippy has the nightly build PPAs enabled but a change in the source code upstream makes the packages fail to build. No one has gotten around to fixing the issue for awhile and when Zippy reports the issue to Xfce developers the Xfce developers get frustrated.

The specification

Design

We'll use launchpad's ability to import remove SVN and GIT into launchpad bzr branches. They will be marked as trunk of their respective launchpad project.

A team will be created to own the two bzr branches per Xfce component (vanilla vs. xubuntu) and two PPAs that will host the packages of the respective bzr branches (again, vanilla vs. xubuntu).

A tool (see below) will be used to prepare and perform the daily (aka nightly) uploads to the PPAs for the launchpad buildds to build. The tool will probably initially be hosted/ran on my machine but we'll naturally want to get more permanent hosting somewhere more reliable.

TODO: Explore different available tools such as:

Notes on the implementation

Status of Xfce Core Components

Status of Xfce Desktop Applications

Status of Xfce Libraries, Engines, & Services

Component Name

Launchpad Product

Upstream Code Import

Nightly Builds

exo

exo

lp:exo

xfce-gtk-engine

gtk2-engine-xfce

lp:gtk2-engine-xfce

Extra maintenance work after the spec

  • The tool will need to be maintained to ensure it keeps running.
  • We'll need to maintain the debian packaging used to build the packages (mitigated by the magic of bzr)
  • We'll need to update all the imports once Xfce switches to git
  • We'll need to poke launchpad developers to fix any import failures if they occur

Issues that need solving

Upstream

By the Xubuntu team

By the developer implementing the spec

TODO: Explore different available tools such as:

Comments