Files | Admin


Release Name: 1.7.0.b2

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. * introduced cross-package-set imports. A package set can now tell autoproj to install another one in a recursive manner (see user's guide) * added optional dependencies, which will not be considered if the depended-upon package is either not existing or is explicitely excluded from the build. It is specified in Ruby with pkg.optional_dependency pkg_name or in the package's manifest.xml files by setting the "optional" attribute to 1: * 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 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. * added 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