Continuous Packaging with

Continuous Packaging with

By Bruno Cornec
Date: Saturday, 24 September 2011 14:50
Duration: 45 minutes
Language: Français
Tags: build packaging perl

You can find more information on the speaker's site:

With the increasing role of FLOSS in enterprise, some development techniques linked to it also know a momentum. Continuous integration (shared sources repository, automatic build, automatic test) is such an example. The new process called continuous packaging should still be promoted and developed as best practice for industry. is a new GPL v2 tool designed to help projects developers producing easily packages for multiple OS and architectures, on a regular basis, from a single source repository.

90% of users and admins prefer to install packages rather than tar files or content from a [D]VCS. But packages don't necessarily follow the development stream of projects, to package alpha, beta. Giving the possibility for projects to distribute seamlessly packages for whatever step of their development is clearly a gain for the whole community.

The various aspects covered by the tool are:
- only produce software packages (ease integration in deployment servers, provide inheritance mecanisms, and Virtual Machines (VM) or Environments (VE))
- ease the various steps of solution life cycle (controlled impact of installation/uninstallation, dependencies management, identical deliveries up to the customer, announce management, web site delivery, metadata management)
- help new projects in the provisioning of packages (templates and skeletons for the various supported OS, generated structure, help in VM/VE build)
- Avoid code or metadata duplication, as well as has no impact on the original project (macro system, separate repository)
- Neutral in term of Unix environment (repository, system, package type agnostic)

These features help reducing the development cost by providing a process, method and tools to realize continuous packaging during the whole project life cycle.
Today the tool supports:
- Muliple repository (none - aka tar balls, SVN, CVS, Git, Mercurial, SVK...)
- Multiple systems ((RPM Linux - Red Hat, SuSE, Mandriva, ..., deb Linux - Debian, Ubuntu, ..., ebuild - Gentoo, pkg Solaris/OpenSolaris, ...)
- Multiple build environments (local, VM - QEMU, KVM, ..., VE - rpmbootstrap, mock, rinse, debootstrap, ...)
- Multiple repository manager (yum, urpmi, apt, ...)

and this at various phasis (development, test, integration, delivery)

It aims at becoming a tools for the initiative
It's today used for projects as diverse as FOSSology, MondoRescue, LinuxCOE, GOsa², itself, ...

Attended by: Jérôme Fenal, Mathieu Géhin, Bruno Cornec, marc chantreux (‎eiro‎), Gregory Boissinot, Arnaud Grausem (‎v-eye‎), Aurélien Bompard (‎abompard‎), Haïkel Guémar (‎number80‎),