= Version 1.8.0 * fix issues with 1.9.3 * significantly refactor the osdeps handling. It should make the addition of other OS-independent handlers (along rubygems) easier. Moreover, it is now possible to specify gem dependency on a per-OS basis (was always global before) * the autoproj command line learned the -p option to control parallelism (i.e. -p1 forces to use only one process) = Version 1.7.20 * do not generate an error if an unknown package is used as an optional dependency. The rationale is that one can then have optional features that are only present if other package sets are included (as e.g. the presence or not of RTT as a package, i.e. the rock.toolchain package set) = Version 1.7.19 * use different colors for remote-only and local-only commits in autoproj status * fix some issues with handling of osdeps vs. exclusion/ignore handling * fix handling of optional dependencies that are provided by osdeps = Version 1.7.18 * properly detect and report circular dependencies = Version 1.7.17 * fix some return values in PackageManifest as REXML#text returns nil if no text element is present while nokogiri was returning an empty string * create autoproj clean = Version 1.7.16 * when a manifest.xml is invalid, make sure that the error message pinpoints which package it concerns (mainly for proper reporting in build servers) * stop displaying configuration after bootstrap. It's a lot of text and cannot be read until you know what you are looking for * setup Autobuild.color to follow the --no-color option = Version 1.7.15 * remove dependency on nokogiri. This is the first step in an effort to make autoproj as straightforward to bootstrap as possible. * 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. * 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 * add the --no-color option for non-console outputs (think build servers) * splitted the "Build failed: reason" line into two lines to allow extraction by Jenkins = Version 1.7.14 * fix support for local package sets, i.e. package sets that are saved in autoproj/directory_name and are part of the main configuration VCS. * fix behavior of autoproj when adding a remote package set in autoproj/manifest and calling amake my/package right away. Until now, autoproj was yelling with a criptic message. It will now behave and check out the new package set. * add support for sourcing shell scripts from env.sh: Autoproj.env_source_file(path) * fix a Ruby 1.9 incompatibility * better performance in e.g. autoproj query and autoproj locate (this speeds up acd) * accept amake --rebuild the same way than amake --force was accepted until now * add support for including manifest.xml files in the package sets. This is meant to be used for external packages that do not provide a manifest. The manifests are listed in the package set's manifests/ subdirectory and must match the package name, as e.g. rock.git/external/yaml-cpp.xml The package set's manifest takes precedence over the package one. * added the --exit-code option to autoproj status. It is meant to be used in scripts to check whether autoproj update will modify the source code (for instance, in build servers) * removed explicit installation of rdoc to fix issues with RubyGems 1.7.x. Additionally, the Gems documentation is not generated by default anymore as most people don't need it. It can be reenabled with Autoproj::OSDependencies.gem_doc = true * be compatible with (soon-to-be-removed) deprecations in RubyGems 1.8.x * allow usage of metapackages in the dependency tracking (i.e. one can use a metapackage as a dependency of another package now) = Version 1.7.13 * bugfix release: fix HTTP fallback mechanism for gitorious servers = Version 1.7.12 * improved some error messages * fixed error if config.yml is empty * fixed issues with implicitly selecting ignored or excluded packages on the command line * fixed handling of overrides that change the VCS type If a package 'A' is normally under git and has an explicit branch, as e.g. - test: type: git url: my/url.git branch: master Then an override of - test: type: archive url: http://other/url.tar.bz2 would fail as the 'branch' git option was passed to the archive importer. This is handled well now. * added metapackage support. One can now "group" packages under a certain name, said name being used in the manifest' layout, exclude_packgaes and/or ignore_packages. This is used in the autobuild files with metapackage 'name', 'package1', 'package2', ... The "default" metapackage, i.e. the list of packages that are selected when a package set name is used in layout/exclude/ignore, can also be configured with default_packages 'package1', 'package2', ... When a package set 'pkg_set' is created, two metapackages are created: pkg_set pkg_set.all The first one is configurable with default_packages, while the second one always lists all packages directly defined in pkg_set * added support for custom source handlers. Custom source handlers are a way to declare shortcuts for importers. For instance, Autoproj.gitorious_server_configuration('SPACEGIT', 'spacegit.dfki.uni-bremen.de') defines a special 'spacegit' handler, and one can now do, in its source.yml, version_control: - my/package: spacegit: imoby/scripts The version control is then transparently expanded by autoproj to - my/package: type: git url: git://spacegit.dfki.uni-bremen.de/imoby/scripts.git push_to: git@spacegit.dfki.uni-bremen.de:imoby/scripts.git These custom handlers can be used everywhere a version control specification is required. They can be defined with Autoproj.add_source_handler (see the API documentation) * fix CVS support. This requires autobuild >= 1.5.42. The syntax in source.yml is type: cvs url: module: module_name cvsup: ['options', 'for', 'cvsup'] cvsco: ['options', 'for', 'cvsco'] The default options for cvs up and cvs co are resp. -dP and -d. = Version 1.7.11 * loads of fixes related to ignore_packages - fix ignored packages being built if a package depends on them - allow whole package sets to be ignored - make setup_package(package_name) { |pkg| ... } ignore the block if the package is ignored * really fix ignoring osdeps dependencies completely (thought to be working in 1.7.9). The following syntax is now accepted in osdeps files: ruby: ignore * add the 'nonexistent' keyword in osdeps files. In combination with the default target, it makes it easier to add new osdeps packages. For instance, the following snippet will cause anyone trying to get libnl2-dev to fail on older ubuntu versions: libnl2: debian: libnl2-dev ubuntu: '10.04,10.10': nonexistent default: libnl2-dev * add more fine-grained control over the osdeps/source packages relationships. Until now, we had a fallback mechanism in which nonexistent osdeps would be replaced by source packages with the same name. The replacement packages can now be specified (they don't have to have the same name) with Autoproj.add_osdeps_overrides 'opencv', :packages => ['external/opencv'] Moreover, if one wants to make sure that the source package is taken instead of the osdeps one regardless of everything else, he can do Autoproj.add_osdeps_overrides 'opencv', :packages => ['external/opencv'], :force => true * small API addition and fixes = Version 1.7.10 * really fix support of virtual packages on dpkg-based systems (debian, ubuntu) 1.7.9 was only supporting packages that were providing only one package = Version 1.7.9 * improve ruby 1.9 compatibility * fix ignoring osdeps dependencies completely, i.e. ruby: ignore is now working fine (before, one had to provide at least an OS name) * on dpkg-based systems (debian, ubuntu), fix detection of installed virtual packages * fix passing autoproj options from aup and amake to autoproj itself (it was broken). One can now *really* do amake --no-deps as advertised by the 1.7.8 release notes. * autoproj_bootstrap now follows the AUTOPROJ_DEFAULT_OSDEPS environment variable = Version 1.7.8 * fix bootstrap and switch-config with VCS options (i.e. setting a branch on the git importer) * amake now accepts options, i.e. amake . --no-deps will only build the current package (without looking at dependencies) * added aup, which is a shortcut for autoproj update as for amake, aup without arguments will update the package in which it is started = Version 1.7.7 * quickfix a trivial bug = Version 1.7.6 * ship the generic configuration of gitorious server from Rock. It defines Autoproj.gitorious_server_configuration (see autoproj's API documentation) = Version 1.7.5 * quickfix release * fix osdeps_mode issue on bootstrapping * ignore osdeps-related errors in modes where the osdeps should not be managed by autoproj at all. * fix expansion of array elements in source.yml * finally got a way to have amake work. The RubyGem packaging had replaced the executable by a RubyGem wrapper, assuming it was a ruby file (but it was a shell script) = Version 1.7.4 * add amake to the gem (forgot it in 1.7.3) * fix some corner-cases in osdeps handling * fix autoproj build when is not the root of a package * make autoproj build (and amake ) auto-add the package if it is not registered in the current build configuration * the --no-deps option allows to do operations without taking the dependencies into account (for instance, update or build a single package) * allow version specifications for gems in the osdeps files, e.g. hoe: gem: "hoe < 1.9.0" * add the required_autoproj_version field in source.yml to require a specific autoproj version = Version 1.7.3 == For basic usage * amake is a command that is a shortcut to "autoproj build". I.e. amake . will build the package in the current directory and all its dependencies * added tag support. The manifest and the autobuild files allow to add textual tags to packages, that will be picked up by documentation later on. Moreover, some tags can be used to tune the build. For instance, rock uses the 'stable' tag to set the CMAKE_BUILD_TYPE variable on cmake packages to either Debug (non-stable) or RelWithDebInfo (stable). == For advanced usage * support ignoring/excluding OS packages * define Package#post_import which allows to run a code block after the package has been imported, but before the build. The global Autoproj.post_import do |pkg| end allows to do it for all defined packages. * define Package#remove_obsolete_installed_file(*path) which allows to remove files from the installation directory. Useful for simple upgrade cases, when files move from one package to another * in source.yml, a package name is interpreted as a regular expression only if it contains non-alphanumeric characters. This avoids some surprising effects if the name of package BlaBla is a subset of the package BlaBlaBlo = Version 1.7.2 == Quickfix release * fix layouts that use subdirectories * load overrides.rb being loaded *before* the optiona dependencies are resolved = Version 1.7.1 == Quickfix release * autoproj update was not installing osdeps even if the osdeps mode was not 'none' * fix autolocate (and therefore acd) in configurations that use not_on and only_on = Version 1.7.0 == 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 env.sh if the user's shell is compatible See http://rock-robotics.org/quick_start.html#shell_helpers * 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 http://rock-robotics.org/autoproj/autoproj/adding_packages.html * 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 http://rock-robotics.org/autoproj/advanced/cross_set_dependencies.html * 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 http://rock-robotics.org/autoproj/advanced/package_dependencies.html * 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 http://rock-robotics.org/autoproj/osdeps.html 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. = Version 1.6.0 * starting this version, autoproj becomes the official build system for the Orocos Toolchain project * the osdeps management is now configurable: one can request autoproj to not install osdeps, to ask each time and/or to simply wait when osdeps should be installed * autoproj stops bailing out on OSes that it does not know. It simply does not offer to install OS dependencies on these operating systems * quite a few small bugfixes = Version 1.5.8 * add a way to add some ignore regexp to the dependency tracking. Updated user guide about that. * small cosmetic fixes * warn if an osdeps file overrides information present in other osdeps files * performance improvement at initialization: we now cache the result of OS autodetection in config.yml. That removes a few seconds due to calling lsb_release * better error reporting in some cases related to OS dependencies = Version 1.5.7 * allow using options and constants in the manifest as well This is so that we can use variables in the VCS definition for package sets. * display a status message before we access the RubyGems server. Ruby may block there in some cases, and it therefore gives a clue at what is actually failing. * fix autoproj status with remote sources: display the source name instead of the URL * fix symlink in autoproj/remotes after a checkout. The URL was used instead of the source name. Further updates were fixing it. = Version 1.5.6 * quickfix stupid bug in 1.5.5 = Version 1.5.5 * allow to exclude some packages on some architectures Autobuild files can now contain not_on 'os_name1', 'os_name2' do ... end statements that will exclude any package defined in the do ... end block if the OS is listed in the OS names os_name is either a plain string, in which case it has to be the main operating system name (e.g. 'unbuntu', 'debian', ...) or a [name, version] array. For instance: not_on 'ubuntu', ['debian', 'squeeze'] do cmake_package 'not_on_ubuntu_and_debian_testing' end If the user tries to build one of the disabled packages, he will get a proper error message. * Debian unstable is now recognized by 'sid' and/or 'unstable'. It previously had to be called 'squeeze/sid' (for the current unstable) = Version 1.5.4 * better error message when a dependency does not exist = Version 1.5.3 * use osdeps-provided packages instead of autobuild-built ones even if they are implicitely selected in the layout (i.e. because of a package set name). * allow to force using the autobuild-built package instead of the OSdeps provided one by explicitely listing the package name in the layout. * fix multiple loading of manifests (harmless, but annoying) * added an 'overrides' section in source.yml, and made the version_control field local to the given package set. This is because there is too much possibility for name clashes when people start sharing package sets, and it allows to simply change some of the VCS parameters (most often, the branch) without having to redefine the complete configuration. * packages defined in the local source do not need to have an entry in overrides.yml anymore. Only proper package sets do. * fix env.sh update in cases of build failures * fix osdeps/autobuild package unification in some cases. In particular, autoproj will fall-back to self-built packages if an OS package is not provided on *this particular OS/version pair*, even though it exists for other OSes or other versions of the same OS. * in case the layout selects some packages, partial build commands should not forcefully select packages that are not part of the layout at all. * add the ability to override the default.osdeps file by setting AUTOPROJ_DEFAULT_OSDEPS environment variable = Version 1.5.2 * fix ignored_packages and exclude_packages = Version 1.5.1 * --no-osdeps disables updating autobuild and autoproj, as it should * fixed checking out modules that are not yet checked out = Version 1.5.0 * the "clean up this mess" release. Autoproj's main logic is now properly split into separate methods instead of being all in a monolitic bin/autoproj * autoproj build does not update by default anymore. This was a behaviour change that was requested by quite a few users. * OS dependencies and normal dependencies are unified. An OS dependency will have priority, if one is available on the OS. Otherwise, an autoproj package will be searched for. * remote package sets have become first-class citizens. The package sets are still checked out in .remotes/WEIRD_NAME, but they are then symlinked to autoproj/remotes/package_set_name for manipulation and inspection. * a lot of fixes related to partial builds and partial package selections * fixed wrong generation of env.sh files in some cases (mostly related to partial builds) = Version 1.4.4 * really fix the bug mentioned in 1.4.3 = Version 1.4.3 * quickfix installations that have no layouts = Version 1.4.2 * change the order in which package sets are considered for version control information in the manifest. The package set list needs now to be defined from the most generic to the least generic * define a shell script called 'ruby' in prefix/bin to call the right ruby interpreter. This makes the "#! /usr/bin/env ruby" she-bang line working on interpreters that are not called 'ruby'. * the package directories (prefix, srcdir, builddir, ...) can be used by other packages for their configuration now. = Version 1.4.1 * add the envsh build mode: only update env.sh * rebuild and force-build only apply by default on the selected packages, not on their dependencies * fix rebuild for Ruby packages = Version 1.4.0 * ruby 1.9 compatible * fixes w.r.t. running autoproj under a Ruby interpreter that is not called 'ruby' (as ruby1.9.1 on Debian) * packages that os-depend on 'ruby' will now depend on either ruby18 or ruby19, depending on the ruby version used. * add Arch-Linux support * fixes w.r.t. the 'doc' mode. In particular, the documentation installation now follows the layout. * some cosmetic fixes = Version 1.3.4 * Improve the RubyGems support - a given osdeps name can refer to a mixture of RubyGems and OS packages - the osdeps name can be different from the RubyGems package name * Fix: Autobuild::Package#depends_on_os_package(name) was not taken into account * Fix: the autoproj/ directory was deleted if "autoproj switch-config" fails. Fix that for the common case. It can still happen if the VCS is not accessible. = Version 1.3.3 * Fix: some configuration options were not properly saved * Fix: env.sh was messed up by partial builds (builds where a directory and/or package name is specified) * Fix: accept subdirectories of packages as argument to builds = Version 1.3.2 * Fix: GEM_HOME/bin was not added to env.sh = Version 1.3.1 * quick-fix bootstrapping from a git repository, and the switch-config command = Version 1.3.0 * Fix limitations of using layouts. autoproj is now able to find out cross-layout dependencies and act accordingly. = Version 1.2.6 * Fix mail reporting = Version 1.2.5 * Quickfix release: fix "autoproj bootstrap VCS URL" = Version 1.2.4 * manage LD_LIBRARY_PATH * only include the values relevant to our packages in the generated env.sh, instead of overcrowding them with inherited values. = Version 1.2.3 * fix the definition of the subversion package under ubuntu/debian * improve selection of packages on the command line. Most glitches that appears when using that feature are gone now. * allow to give options to the VCS during boostrap, and to switch the source of the configuration. I.e. autoproj switch-config git URL branch=newbranch will exchange/update the configuration in autoproj/ with the specified one. * bugfixes = Version 1.2.2 * added support for Gentoo * added support for Ubuntu 9.10 [Karmic Koala] * add the 'fast-build' mode which is equivalent to "build --no-update --no-osdeps" * add a quick bootstrap method [still experimental] If an autoproj installation is already present, one can simply run autoproj bootstrap [options]. It speeds up the bootstrapping as the gems are taken from the other installation. * minor bugfixes and improvements = Version 1.2.1 * accept two layouts for version control description: - package_name: type: git url: blablabla and - package_name: type: git url: blablabla Even though the second one is not the proper YAML data structure, it is actually quite intuitively written by humans, so accept it. = Version 1.2.0 * added the rebuild and force-build modes * added a local source that allows to override imported package sets and so on. * improved documentation on the subject of customizing the installation = Version 1.1.3 * fix --reconfigure on installations where the main configuration is managed by a VCS * fix: env.sh where updated on "status" or "doc", which made them invalid * shut up the "lsb_release: command not found" message during bootstrapping * fix restartig the autoproj_bootstrap script after a failed attempt = Version 1.1.2 * fix version detection on Debian, lsb-release cannot be trusted there. * update already installed Gem * make autoproj update himself, as well as autobuild = Version 1.1.1 * better general error reporting * small fixes w.r.t. bootstrapping * small improvements in the handling of layouts * make it easier to write osdeps scripts: the OS names and version accept lists as for instance: debian,ubuntu: lenny,9.04: package_to_install * detect Ubuntu = Version 1.1.0 * added some sanity checks, especially w.r.t. an already existing GEM installation * improved the bootstrap * autoproj is now able to track a configuration repository (i.e. a VCS that stores both the installation's manifest and the package sets) = Version 1.0 * initial release