Skip to content

Releases: rock-core/autoproj

v2.17.0

08 Jan 18:15
Compare
Choose a tag to compare

Fixes

  • bundler version is now automatically restricted for Ruby < 2.5 and Ruby < 3.0 to the relevant versions

New features

manifest.xml now accepts condition attributes to dependencies. These condition attributes rely on autoproj's configuration file, with variables being available as $VARIABLE and support:

  • booleans
  • equality of string and numbers using ==
  • comparison of numbers (< <= > >=)
  • and/or and parenthesis for priority

Autoproj v2.16.0 and autobuild v1.24.0

11 Jul 11:22
Compare
Choose a tag to compare

Bugfixes:

  • none

New Features:

  • added Autoproj.config.load_config_once and Autoproj.config.load_config_once_with_permission. These methods are meant to be used within the initialization files to load a seed configuration file once, allowing that config to be changed (and not overriden) later. The with_permission variant will ask the user first whether the config file should be loaded at all (thanks Steffen Planthaber steffen.planthaber@dfki.de)
  • the git importer now supports doing shallow clones. Either set Autobuild::Git.shallow to true globally, or set the shallow option per importer. This is incompatible with specifying a tag or commit, as well as with the single_branch option.
  • the git importer now supports using the tree SHA instead of the commit SHA for fingerprinting. In CI, this means that a branch and its merge commit would have the same SHA, allowing to save rebuild times. Set Autobuild::Git.default_fingerprint_mode to "tree" to enable globally. The option is also available on a per-importer basis as fingerprint_mode.
  • It is now possible to add a post-test coverage processing step. Pass the processing as a block to test_utility.with_coverage

v2.15.0

22 Oct 19:14
Compare
Choose a tag to compare

Improvements to exec

  • autoproj exec --package PKG changes to the package's source directory, use builddir:PKG to use the package's build directory and prefix:PKG for the package's prefix. srcdir:PKG is equivalent to PKG
  • autoproj exec --chdir PATH changes to an explicit path
  • autoproj exec --package X --chdir RELATIVE_PATH changes to a path relative to the folder specified by --package X

The gem osdep can now install gems from git

In an osdep file, instead of passing gem: NAME, do

gem:
   name: "gem_name"
   git: URL

A branch can be specified with branch

autoproj exec now takes --chdir and --package. The latter changes

Full Changelog: v2.14.0...v2.15.0

Autoproj v2.14.0

08 Sep 18:22
Compare
Choose a tag to compare

The main highlight of this release is the overhaul of Python support in Autoproj. Thanks to the hard work of @2maz, @ivan1993br and @g-arjones !

Multiple Python versions can now coexist in a system, although not in a single autoproj workspace. For this purpose autoproj users can now be explicitly asked for any needed Python support during a bootstrap, by adding the following to the init.rb:

require 'autoproj/python'
Autoproj::Python.setup_python_configuration_options

In case Python support is requested or implicitly needed, e.g., following a pip dependency in a layout, the user is asked to provide the path to the Python executable to use. By default the Python executable is searched/guessed automatically. Corresponding shims are installed for an active workspace: install/bin/python and install/bin/pip.

To ensure a consistent setup for the generation of language bindings, package definitions in *.autobuild file can be extended as follows:

cmake_package 'custom/pkg_with_python_bindings' do |pkg|
    bin, version, sitelib_path = Autoproj::Python.activate_python_path(pkg)
    pkg.define 'PYTHON_EXECUTABLE', bin if bin
    pkg.define 'PYTHON_VERSION', version if version
end

The above setting will only be used when the user has requested Python support, or in general, when USE_PYTHON is set to true in the autoproj configuration (see .autoproj/config.yml).

Autoproj v2.13.0 and Autobuild 1.21.0 have been released

15 Jul 13:43
Compare
Choose a tag to compare

A rather small update:

The main piece of work is fixed compatibility and most warnings for Ruby 2.7 (main Ruby version on Ubuntu 20.04)

One new functionality: created an interactive update, autoproj update --ask, which asks for each modified packages whether the package should be updated, after showing the status, that is the new commits locally and remote (Note: it does not yet cover the package sets, only the packages themselves).

This allows to update knowing what happened:

Peek 2020-07-15 10-43

Autoproj 2.12.0 and Autobuild 1.20.0 have been released !

27 Feb 11:52
Compare
Choose a tag to compare

User-facing changes

  • fixed Bundler warnings
  • configuration defaults are now properly converted to their canonical form. This means that passing e.g. default: 'yes' when defining a boolean configuration variable now returns the canonical boolean true value instead of having to test against 'yes' explicitely.
  • Autoproj can now be told to avoid updating Bundler altogether, in cases where new Bundler versions would have breaking changes (or bugs). Just bootstrap with --bundler-version=VERSION_CONSTRAINT

New experimental functionality

  • autoproj cache can now cache the gems. Support for precompiling gems currently requires the installation of a fork of gem-compiler.
  • build and utility reports (for CI) are now updated incrementally, which ensures that they are up-to-date even if the build gets interrupted

Autoproj 2.11.0 and Autobuild 1.19.0 have been released

03 Oct 14:13
Compare
Choose a tag to compare

Bugfixes

  • --deps=f now respects package ordering. Until now, if two inter-dependent packages are selected in a -- deps=f build, the build order would not necessarily have reflected the dependency order. This release fixes
    that particular problem.

  • git caching is now disabled for git packages that have submodules, as caching is broken in this case

  • fixed some initialization issues with Bundler, that would happen very early in the start of autoproj

  • fixed test or doc dependencies not being installed on checkout.

    This would happen in the following situation:

    <bootstrap>
    autoproj test enable
    autoproj update
    

    The test dependencies would previously be installed only after a second run of update.

  • fixed passing packages by path in autoproj test subcommands

  • make sure autoproj exits with status 1 if given an unknown command

New functionality

  • added support for doc_depend in ROS manifests

  • allow fine-grained doc generation managed through autoproj doc subcommands,
    the way autoproj test did for tests. See autoproj help doc.

  • per-gem build configuration can now be specified on a per-workspace basis:

    For instance:

    # Sets the build configuration
    Autoproj::PackageManagers::BundlerManager
      .configure_build_for('qml', "--with-qmake=/usr/lib/qt5/bin/qmake")
    # Adds to (potentially) existing build configuration
    Autoproj::PackageManagers::BundlerManager
      .add_build_configuration_for('qml', "--with-qmake=/usr/lib/qt5/bin/qmake")
    
  • autoproj plugin can now be given a branch when checking out from repository

  • added python-setuptools as a dependency to all python packages

  • added autoproj test default. While autoproj enable and autoproj disable will
    change existing package-specific configuration, autoproj test default only changes
    the default, for packages which do not have a default:

    autoproj test enable drivers/iodrivers_base
    autoproj test enable
    autoproj test disable
    # drivers/iodrivers_base now has its tests disabled
    
    autoproj test enable drivers/iodrivers_base
    autoproj test default on
    autoproj test default off
    # drivers/iodrivers_base still has its tests enabled
    

    The main use-case for this command is automated build environments, where the workspace
    designer might decide to forcefully disable tests for some packages, and the CI
    environment would use autoproj test default on to enable tests for all other packages.

Changes in experimental features

  • changed the reporting file format for better usability/consistency. This is a breaking change.

Bugfix release v2.10.2

07 Aug 13:22
Compare
Choose a tag to compare
  • remove stray debugging output (#263)
  • fix error handling in malformed VCS specification. The error would appear to be an internal error while it was a formatting error (#264)

Bugfix release v2.10.1

07 Aug 13:21
Compare
Choose a tag to compare

Bugfixes:

  • fix breakage due to new xdg versions API change

Autoproj 2.10.0 and Autobuild 1.18.1

10 May 12:08
Compare
Choose a tag to compare

This releases are mostly made of bugfixes and new features geared towards easier CI integration.

This release requires Ruby 2.3 or later.

New Features

  • added autodetection of autotools directories

  • added -p option to autoproj test, to control how many tests are run in parallel

  • autoproj version displays the version of autoproj and its dependencies

  • added the --no-interactive option that uses default values for all options. This makes CI integration more robust by avoiding breakage each time a new option is added by the package sets or by autoproj itself

  • added the --fingerprint option to autoproj versions. It computes a hash value that aims at uniquely identifying the state of the current package checkout. For now, it does not hash the state of the OS packages, so changes in OS packages won't change a package hash, only changes in dependent packages. This allows to cache and reuse build artifacts in CI environments.

  • added the --not option to build. --not allows to disable building some specific packages. In combination with fingerprinting, it can be used to avoid building packages which have not changed.

Bugfixes

  • fixed error reporting in some cases, where error would be "eaten" by Autoproj
  • fixed parallel build handling with make >= 4.2.0. Autobuild would pass arguments that effectively disable the job server and start as many build jobs as possible - which usually ends up crashing the machine until the OOB handler kicks in. On Ubuntu, this affects only releases after 18.04.
  • fixed parallel build handling with gnumake, where autobuild would run make twice.
  • fixed git-lfs handling for sub-packages, that is cases where package != repository