You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Justin Ross <jr...@apache.org> on 2014/03/05 14:05:25 UTC

Qpid dist tool

I've been working on a new tool to generate and test Qpid releases.  My
intentions are to

  - Improve automated testing of releases
  - Make it easier to establish continuous delivery of Qpid components
  - Treat Qpid's various source modules as independent parts of a bigger
Qpid distribution

What I have is an installable command-line tool for going from source URLs
at one end to tested release artefacts at the other.

  Generate all release artefacts
  % qpid-dist release

  Generate the qpid-cpp and qpid-java-* artefacts
  % qpid-dist release -m cpp -m java

  Test builds, installs, and release artefacts (implies producing each of
those)
  % qpid-dist test

The source locations are controlled via a config file.  They can be
overriden for use from local checkouts.  The output is a directory
("output") that contains the source exports, build roots, install root, and
release artefacts.

  [jross@localhost baker]$ l output/
  total 16K
  drwxrwxr-x. 11 jross jross 4.0K Mar  4 18:44 source/
  drwxrwxr-x.  7 jross jross 4.0K Mar  4 18:44 build/
  drwxrwxr-x. 12 jross jross 4.0K Mar  4 18:21 install/
  drwxrwxr-x.  3 jross jross 4.0K Mar  4 18:44 release/

The default configuration is setup for periodic trunk builds.  Releases are
available as alternate configurations.

  https://github.com/ssorj/baker/blob/master/etc/qpid-dist.conf
  https://github.com/ssorj/baker/blob/master/etc/qpid-dist-0.26.conf

In general, the philosophy of the tool is to leave as much of the work as
possible to the existing build and test infrastructure of a given module.
 Right now, for instance, that means that the qpid-java build uses ant.  I
expect in the near future I will be switching it to use maven.

The source is available at the URL below.  I'd eventually like to find it a
home in the Qpid tree.

  https://github.com/ssorj/baker

Thanks,
Justin

---

qpid-dist --help output:

[jross@localhost baker]$ qpid-dist --help
usage: qpid-dist [-h] [-m MODULE] [--output DIR] [--config FILE]
[--release-tag TAG]
                 TASK

A tool to build, test, and release the Qpid distribution

positional arguments:
  TASK                  Run TASK; see 'task arguments' below

optional arguments:
  -h, --help            show this help message and exit
  -m MODULE, --module MODULE
                        Run task on MODULE; this argument may be repeated;
by default
                        all modules are used
  --output DIR          Send output to DIR; the default is 'output' in the
current
                        working directory
  --config FILE         Read configuration from FILE; the default is
'/home/jross/baker
                        /qpid-dist.conf'
  --release-tag TAG     Label each release artifact with TAG; the default
is 'trunk-
                        YYYY-MM-DD'

task arguments:
  status                Get information about the project
  export                Export module source code
  build                 Build the code
  install               Install the code
  release               Generate release artifacts
  test_build            Test the build
  test_install          Test the installation
  test_release          Test the release artifacts
  test                  Run all tests