This release of autoproj and autobuild fixes a few issues,
but is mainly targeted at build server maintainers. The
following changelog is therefore split between build-server
related changes.
Starting with this release, I also would like to advertise
the experimental autoproj snapshot feature. When in an
autoproj installation, doing
autoproj snapshot ../snapshot_configuration
will create a new autoproj configuration in which an
overrides.yml is created, that pins every package to the
commit in the installation. It should ensure the ability to
replicate an exact autoproj installation. This is still
considered as experimental, and supports only the archive
and git importers. SVN support would be very welcome if
someone is willing to provide it.
Changelog:
* archive: fixed bad interactions with the patching process.
It could lead to having the package actually being
unpatched without notice.
* git: improve behaviour when doing commit pinning
* create autoproj clean, which deletes all build products
from an autoproj installation
* removed most dependencies of the autoproj and autobuild
gems, to reduce the effort to bootstrap an autoproj
installation. This involved replacing nokogiri by REXML.
A side effect is that manifest.xml files must now be valid
XML (nokogiri was very lax in its XML validation)
* allow conditional loading of osdeps file. The system works
by adding suffixes to Autoproj::OSDependencies.suffixes
which tune what files to load. As an example, autoproj's
handling of Ruby adds either the ruby18 or ruby19 suffix,
which leads to either loading
file.osdeps-ruby18
or
file.osdeps-ruby19
after a file.osdeps "normal" file gets loaded. It will
allow in the long run to use OS packages in
version-dependent setup (i.e. different packages for ruby
1.8 and 1.9 for instance)
* fix the auto-add feature
* stop displaying configuration after bootstrap. It's a lot
of text and cannot be read until you know what you are
looking for
Changes related to using autoproj on build servers:
* gracefully handle multiple autoproj instances trying to
access the OS packaging system concurrently. A message is
now issued that one has to wait for the other to finish.
This is critical for build servers that have parallel
build targets.
* add the --no-color option for non-console outputs,
improving console output display on Jenkins
* splitted the "Build failed: reason" line into two lines.
This allows the extended email Jenkins plugin to extract
the build failure reason in the form <package_name> failed
in XXXX phase and place it in the email subject.
* when a manifest.xml is invalid, make sure that the error
message pinpoints which package it concerns. Associated
with the above change, it makes the subject: line of the
reported build error pinpoint the offending package