Packaging Guide

This document aims to comprehensively detail dependencies, build & checkout processes, and recommendations for packaging Flapjack.

Dependencies

Flapjack attempts to follow the Puppet route of keeping the number of dependencies very low. This reduces headaches for downstream packagers.

Essential dependencies (some of which may already be packaged for your operating system):

Additionally, if you wish to package the DataMapper persistence backend, you will need to package:

Debian Ruby packaging guidelines

Flapjack adheres to the Debian Ruby packaging guidelines. The guidelines set out some sane standards for upstream developers to follow, to make packaging by downstream maintainers as easy as possible.

The guidelines have been translated into a test suite which is used to verify the packagability of Flapjack. If any of these tests fail, it's considered a high priority bug.

If you are developmentally inclined, please help improve the test suite to make life easier for packagers.

Release tarball

For a tarball of just Flapjack suitable for packaging, you can find a list of published releases on GitHub.

These tarballs are automatically created by GitHub when a commit is tagged. To keep bug tracking sane, please only build packages from tagged releases.

For more info on tags, check out the Git book's introduction to tagging, and the man page.

Alternatively, if you want a tarball of Flapjack and all its dependencies to compile each component yourself, run:

$ rake tarball

Splitting up Flapjack packages

So users can granularly opt-in to Flapjack components (e.g. in distributed deployments you don't want the admin interface on your workers), it's recommended that Flapjack is split into several packages:

  • flapjack, containing:
    • flapjack-worker, flapjack-worker-manager
    • flapjack-notifier, flapjack-notifier-manager
    • flapjack-stats, flapjack-benchmark
  • flapjack-notifiers, a meta package for:

The flapjack package should recommend flapjack-notifiers.

Currently flapjack-admin is maintained as a separate project and distributed as a Merb application. This makes packaging difficult, so if you manage to package everything else and get up to packaging flapjack-admin, please ping the mailing list so Lindsay can get off his arse and make it packagable.

Packagers

 
packaging_guide.txt · Last modified: 2009/11/30 04:44 by Lindsay Holmwood
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Driven by DokuWiki