[Rock-dev] Autoproj 1.13.0 has been released !

Sylvain Joyeux bir.sylvain at gmail.com
Thu Mar 26 18:07:46 CET 2015


Apart from the usual bunch of bugfixes, some important changes are
getting into this release. They are described in more detail below:
 - retry behaviour
 - versioning support
 - autoproj log
 - testing support
 - forcing the build of excluded packages

Autoproj will update itself the next time you either run "autoproj
update" without arguments, or aup --all

Retry behaviour
=============
autoproj will retry a lot less than before, especially when running
git commands. The only commands that should retry are the ones
accessing the network.

Versioning Support
===============
An overrides.d/ directory can be created in the main autoproj
configuration. This directory can hold override files, whose format is
the same than the overrides: section of overrides.yml. e.g.:
  - tools/autobuild:
    branch: master

These files are loaded in alphabetical order. One would usually want
to prefix them with two numbers to make the ordering clearer
(00-initial.yml or 99-last.yml)

The use of overrides.yml for this purpose is still supported, but deprecated

-- New commands:
  autoproj versions --save=autoproj/overrides.d/10-thisandthat.yml
     outputs a "version file" , i.e. a file compatible in the
overrides.d format that "pins" the packages passed on the command line
(or all packages if none are given)
  autoproj tag
     saves the current versions in overrides.d/50-versions.yml as a
subcommit of autoproj/'s HEAD and saves the result as a tag. This does
not change the current working copy
  autoproj commit
     saves the current versions in
autoproj/overrides.d/50-versions.yml and commits the result. This
modifies the working copy.

In addition to these new commands, autoproj's update behaviour has
been modified to NOT reset a branch because of commit pinning. One has
to provide the --reset option to get the old behaviour. However, one
will get a "cannot update" error if the pinned commit is not merged in
HEAD and there is a fork situation.

Autoproj log
=========
Autoproj now saves "under the hood" a versions file each time autoproj
update is executed. The resulting log can be accessed with autoproj
log, and an older revision can be checked out with autoproj reset.
Example:

$ autoproj log
  autoproj@{0} 81 minutes ago /home/doudou/dev/rock/autoproj/bin/amake --all -k
  autoproj@{1} 5 weeks ago /home/doudou/dev/rock/autoproj/bin/aup randward
  autoproj@{2} 5 weeks ago /home/doudou/dev/rock/autoproj/bin/aup randward ()

(Note that the amake --all -k line is there because a package needed
to be checked out)

$ autoproj reset autoproj@{0}

Testing support
============
Autoproj learns about a testing target. Tests can be enabled and
disabled on a per-package basis, and dependencies can be made
test-specific using the <test_depend .../> tag instead of the <depend
.../> tag. The test facility can be accessed through the 'autoproj
test' subcommand (see autoproj test --help). It will now be possible
to avoid building usually pretty costly test suites for packages whose
tests are not required.

Sylvain


More information about the Rock-dev mailing list