Files | Admin


Release Name: 1.7.0

What is Autoproj
Autoproj allows to easily install and maintain software that is under source
code form (usually from a version control system). It has been designed to support a
package-oriented development process, where each package can have its own
version control repository (think "distributed version control"). It also
provides an easy integration of the local operating system (Debian, Ubuntu,
Fedora, maybe MacOSX at some point).

This tool has been developped in the frame of the RubyInMotion project
(, to install robotics-related
software -- that is often bleeding edge. Unlike [the ROS build
system](, it is not bound to one build system, one VCS and one
integration framework. The philosophy behind autoproj
 * supports both CMake and autotools, and can be adapted to other tools
 * supports different VCS: cvs, svn, git, plain tarballs.
 * software packages are plain packages, meaning that they can be built and
   installed /outside/ an autoproj tree, and are not tied *at all* to the
   autoproj build system.
 * leverage the actual OS package management system. Right now, only Debian-like
   systems (like Ubuntu) are supported, simply because it is the only one I have
   access to.
 * handle code generation properly

Changes: = Version 1.7.0 * 1.6.2 should have been 1.7.0. Bump it now. == For basic use * removed some OS dependency updates that should not be there. In practice, it means that build and fast-build will generally be a lot faster * The shell function "acd", akin to rosbuild's roscd, is also provided for recognized shells (bash and zsh at the moment). The relevant files are sourced in if the user's shell is compatible See * added an easier way to add a local checked-out package to a build without going through editing 20 files. Packages are automatically detected and added to the build as soon as their path, relative to the root dir, are explicitely listed in autoproj/manifest. See * added the --stats option that displays timing statistics about the build. Raw statistics are always saved in install/log/stats.log == For advanced use * introduced cross-package-set imports. A package set can now tell autoproj to install another one in a recursive manner See * added optional dependencies, which will not be considered if the depended- upon package is either not existing or is explicitely excluded from the build. See * added the #package toplevel method to get a package handle, i.e. package('orocos/rtt') is equivalent to the former Autobuild::Package['orocos/rtt'] * added tools to test the build configuration on build servers. - the --randomize-layout option which makes autoproj build each package in a separate non-trivial subfolder, and install it in a separate folder as well. This is meant to test the definition and handling of dependencies between the different packages. - the autoproj_stress_test script clears the layout and adds packages one by one in a random order, testing at each step if the resulting configuration works fine. It turns on --randomize-layout as well. * "acd" is using the autolocate tool, which returns the full path to a certain package. = Version 1.6.2 * overhauled osdeps fine-grained configuration. See for more information * fix too-aggressive caching of operating system characteristics, which breaks on OS upgrades. * on Debian-like systems, filter out packages that are already installed * on all systems, filter packages that have already been handled by the osdeps * add a -k option that continues operation even after errors. The sum of all errors are properly presented at the end of the run. * when boostrapping, check that the current directory is empty and warn the user if it is not. * a few more minor bugfixes = Version 1.6.1 * fix a limitation of giving directories on the command line. Before, only packages that were explicitely listed in the layout would be selected. Now, all packages are looked for -- even * fix Fedora and other flavors of Linux being (wrongly) detected as supported OSes * fix answering 'wait' at bootstrap time. This was rejected later on.