== Version 1.10.0 Apart from a bunch of extensions to the Git importer API, and a host of bugfixes, the main change is a modularized environment handling. Environment can now be declared on a per-package basis, and commands executed through Package#run will get the environment as stored in their package and its dependencies, instead of always using a global environment. == Version 1.7.1 * fix problems with encoding of subcommand output == Version 1.7.0 * improved parallel build output. Autobuild tries to compress the output as much as possible * integrated CMake parsing to output non-progress messages such as compiler warnings / errors. It is disabled by default for now * cleaned behaviour of various env_* methods. In particular, env_clear now causes the whole environment variable to be unset; env_inherit can be called at anytime without loss of information * experimental support for Windows and MacOSX * allow to completely disable a package by calling #disable == Version 1.6.5 * bump required rake version == Version 1.6.4 * quickfix: add missing dependency on highline == Version 1.6.3 * quickfix: force ordering of doc and build tasks (see commit b5efd01 for details) == Version 1.6.2 * implement a generic retry_count option for all importers * fix concurrent display of progress messages * implement env_source_before and env_source_after (env_source calls env_source_after for backward compatibility reasons) * in subcommand, properly handle Interrupt when within the fork (before the exec) == Version 1.6.1 * workaround "recursive call to Dir.chdir" warnings from subcommand by not changing directory if Dir.pwd is already the target directory == Version 1.6.0 * implement cross-package parallelism. Autobuild is now able to build packages in parallel when parallel_build_level is greater than 1, better distributing the workload. Additionally, if GNUmake is in use, this interfaces with the GNUmake job server mechanism to allow the different make jobs to dynamically distribute jobs among themselves (and with the main autoproj process) * fix some issues with Ruby 1.9.3 == Version 1.5.61 * orogen: fix regeneration logic. Autobuild would not generate an oroGen project if a type definition file contained in the orogen package changed. == Version 1.5.60 * patching: fix some more issues regarding the interaction of patching and VCS: * autobuild will now properly remove patches before we try to update This fixes un-updateable systems on which the update would fail before the patch, but autobuild would try to update before removing the patches * if a patch conflicts with a VCS update, the reported error will now be that the patch can't be applied, NOT that the VCS cannot update. The latter behaviour was too confusing. * patching: better progress messages. == Version 1.5.59 * orogen: try to autodetect the orogen_file value earlier, if not provided * added Autobuild.color? and Autobuild.color= to control whether the output should use colors or not == Version 1.5.57 * added Autobuild.color? and Autobuild.color= to control whether the output should use colors or not == Version 1.5.55 * quickfix release * last attempt to fix the same issue than in 1.5.55 and 1.5.54 == Version 1.5.55 * quickfix release * really fix update vs. patching problem. The issue was related to patches that create new files == Version 1.5.54 * quickfix release * fix update in zip importer. The zip importer was previously always keeping the current version of the source files. It broke the update / patching process == Version 1.5.53 * remove RMail and Daemons from the dependency list of the gem. autobuild can work fine without them, and they are seldom used anyway. The RMail dependency is notified to the user if he uses --mail-to. * git: improve the behaviour on commit pinning. The importer avoids creating detached HEAD as much as it can now. * archive: fix some issues regarding patching and checkout. The list of patches was not reset when the package was re-checkout, which was leading to errors later. == Version 1.5.52 * fix local in the git importer * in log files, display the command both before and after the environment dump. This makes the browsing of these files easier * autotools: fix some issues on package checkout * orogen: add raw option support * stats: add a timestamp on each log line * fix core count detection on MacOSX == Version 1.5.51 * quickfix release for broken LD_LIBRARY_PATH update == Version 1.5.50 * quickfix release for installations where dpkg-architecture does not report a DEB_BUILD_MULTIARCH variable == Version 1.5.49 * when starting a command, save the command environment in the logfile == Version 1.5.48 * fix pkg-config support for Debian multiarch == Version 1.5.47 * fix behaviour of parallel_build_level if the parsing of /proc/cpuinfo fails. This fixes issues in particular on ARM-based Linux platforms == Version 1.5.46 * make the subversion importers accept :patches (the same way than 1.5.43 fixed that for CVS). The other importers should be fine as well. == Version 1.5.45 * fix zip support in the archive importer (patch from Thomas Roehr) == Version 1.5.44 * when autodetecting the parallel build level, use the number of physical cores (ignore "logical processors" that are present due to SMT technologies like HyperThreading) * add an experimental feature to make autobuild run doxygen by itself instead of using "make doc" for CMake targets. This will sped up documentation generation in simple cases, as dependencies won't need to be installed before "make doc" can be run. This feature is turned OFF by default, and can be turned ON by doing Autobuild::CMake.always_use_doc_target = false == Version 1.5.43 * cvs: accept the common importer options, such as :patches (Patch from Charles Lesire-Cabaniols) * autotools: regenerate the configure script on initial checkout This is to workaround people that *do* have autogen scripts but still include the configure scripts in their VCS. autotools is pretty fragile, to it is much more robust to just regenerate the whole thing in these cases. == Version 1.5.42 * archive: fix support for using local files * git: make "switching branch" messages stand out a bit more * cvs: make the CVS support compatible with autoproj (should remain backward compatible as well) == Version 1.5.41 * git: properly handle push_to_branch at checkout (was working during updates) * cmake: more specific progress message for configuration == Version 1.5.40 * remove changes that should never have been released == Version 1.5.39 * fix compatibility with rake 0.9.0 == Version 1.5.38 * add the 'revision' option for the SVN importer. It allows to pick a particular revision number, as usually specified by the -r option to svn co and svn up == Version 1.5.37 Quickfix release * broke Autobuild::Orogen.always_regenerate by converting attr_accessor to attr_reader instead of attr_writer. As we say in french "better is the ennemy of good" == Version 1.5.36 Quickfix release * fix wrong caching behaviour in the orogen handler, which was leading to having failures in the orogen package handler == Version 1.5.35 * fix some bad behaviour when using fallback importers - git does not update the git configuration with the bad URLs anymore * orogen: removed automatic dependency detection, it was half-broken anyway. * orogen: avoid unnecessary regeneration (experimental, disabled by default). It can be enabled by setting Autobuild::Orogen.always_regenerate = true == Version 1.5.34 * make sure oroGen handlers will trigger a new generation on force-build == Version 1.5.33 * fix autobuild failing if the generated documentation is not in the doc_dir, as expected. It now reports a warning, as it should == Version 1.5.32 * autobuild importers delete the source directory when initial checkouts fail. They now display a message when they do so to avoid user confusion * the Autobuild::Orogen.transports array can be used to configure which transports are generated in orogen packages == Version 1.5.31 * allow to override the type export policy for oroGen >= 1.1 * allow to provide CMAKE_MODULE_PATH in the cmake handler. Unfortunately, cmake does not support setting this through environment variables, so we have to pass it as -D * make ignore_errors work for updates as well. We obviously still have to fail on checkout == Version 1.5.30 * make the autotools handler behave more normally, calling "configure" without --no-create and not calling config.status before make by default. The old behaviour can be restored by setting #force_config_status to true on the package. == Version 1.5.29 * added --version == Version 1.5.28 * fix failure when all packages are built in a different prefix than Autobuild.prefix. The main log directory was not created, which was leading to a failure to create stats.log == Version 1.5.27 * small fixes == Version 1.5.26 * add statistics support == Version 1.5.25 * small bugfixes == Version 1.5.24 * fix bug with git importer and the push_to option. The pushurl configuration option was not set in just-cloned repositories * improve error message in the "merge" case of git updates * fix appearance of a backtrace when CTRL+C was hit just at the same time that we start a subcommand == Version 1.5.23 * fix bug with paths that contain regexp special characters like C++ == Version 1.5.22 * minor change to #env_add_path. The provided directory is not filtered out anymore if it does not exist, to avoid the API user to *have* to call it *after* the packages have been installed == Version 1.5.21 * add an argument to status() to avoid using the network (for importers that can do that, i.e. git) * disable changing the subprocess priorities by default. This is so that people can use 'nice' on the autobuild script if they don't know that autobuild supports changing the priority itself. * add the Autobuild.ignore_errors option. If set, the build will go on even if some errors occur. Errors are properly reported at the end of the build. * git: update branch tracking information to track the specified branch * git: offer the push_to option as a way to specify a push URL, in cases where having separate read-only and read-write URLs makes sense. == Version 1.5.20 * cmake: inform the user if a CMake configuration value gets changed == Version 1.5.19 * git: fix cases where the importer was assuming that a branch did not exist while it was * orogen: import_types_from accepts arguments for loading files. Be compatible with that. == Version 1.5.18 * minor addition to the API for autoproj == Version 1.5.17 * add a way to specify global ignores for listing files in source directories == Version 1.5.16 * update the TYPELIB_RUBY_PLUGIN_PATH and OROCOS_ROBY_PLUGIN_PATH environment variables, as oroGen now installs plugin files from the oroGen project into these directories == Version 1.5.15 * display a message when git switches branches == Version 1.5.14 * fix Ruby 1.9 rejecting some git logs if they have a weird encoding == Version 1.5.13 * fix error messages in the oroGen packages, when the loaded oroGen file has an error == Version 1.5.12 * fix exception when git logs contain non-ASCII characters on Ruby 1.9 version compiled with another default encoding than UTF-8 (!) == Version 1.5.11 * don't sleep unnecessarily on filesystems that have sub-second modification time resolutions. This speeds up builds. == Version 1.5.10 * avoid unnecessary reconfigurations in the autotools handler == Version 1.5.9 * small fixes * fixed some corner-case problems with log files not being created in the right folders == Version 1.5.8 * fix major issue while setting up dependencies * small 1.8/1.9 compatibility fix in Autotools#use * small backward compatibility fix w.r.t. Configurable.builddir == Version 1.5.7 * the "importer" package will now rebuild if the main prefix is deleted. It was previously not, which was leading to partial builds if the actual installation was done by a post_install block * fix the documentation mode == Version 1.5.6 * fix the directory in error message when a git importer detects a non-git repository == Version 1.5.5 * small API additions == Version 1.5.4 * support orogen's --extended-states * small API fix when subclassing CMake package handler == Version 1.5.3 * quickfix for RUBYLIB on OSes that install libraries in usr/lib32 or usr/lib64 instead of usr/lib == Version 1.5.2 * fix broken mail reporting. The mail report was always saved in a file since 1.5.1. * fix small bugs in the patching part of the import - be error tolerant: if patching/unpatching fails, we go back to a well defined state instead of having to fix the package by hand - do not apply patches unnecessarily == Version 1.5.1 * autotools: must run libtool before the other tools * autotools: properly autodetect need for autoconf (autoconf was always enabled before) * logs: properly log everything that happens in one session. The previous behaviour was to have, in each log file, only the last command that has been run. * logs: only attach relevant logs to report mails. The previous behaviour was to attach all log files that were in /log == Version 1.5.0 * now Ruby1.9 compatibility fixes, can be run with ruby1.9.1 on Debian * properly runs if the ruby interpreter is not called 'ruby', as ruby1.9.1 on Debian * fix some issues with the usage of #depends_on *before* Package#srcdir #logdir and #prefix were set. It fixes an autoproj bug in case the autobuild files use #depends_on * the archive importer now properly handles interruptions * the archive importer now properly autodetects file names if the URLs contains '?' * fixed the importer package type * fixed some rare issues with internal dependency definitions. This bug was usually manifesting itself with rake exceptions whose message were "do not know how to build -stamp" == Version 1.4.9 * quickfix an issue related to a discrepancy between the definition of the installstamp and the definition of the log dir. == Version 1.4.8 * make the archive importer nicer to use: - the archive_dir is unneeded for tarballs from now on - filename detection works better (and therefore the :filename option will be less needed) == Version 1.4.7 * have the git importer update the autobuild remote on update. == Version 1.4.6 * add missing importer/archive.rb file == Version 1.4.5 * add support for zip in TarImporter, which is renamed ArchiveImporter to reflect that. Backward compatibility is retained. * support sourceforge-like setups in ArchiveImporter: use wget for download and add a :filename option to specify what is the name of the downloaded file. * improve configurability of the progress display for tools built on top of autobuild * always call with_doc in orogen packages, as orogen itself adds a documentation target == Version 1.4.4 * minor bug fixes == Version 1.4.3 * minor changes in how the shell environment is managed * update LD_LIBRARY_PATH when applicable * fix parsing of genom 'require' statements (fix from Matthieu Gallien) * fix issues with tracking tags and commits (fix from Matthieu Gallien) == Version 1.4.2 * call subversion with the --non-interactive option, otherwise the build will block indefinitely. Note that git "questions" are properly passed to the user. * don't forcefully depend on orogen being available. This fixes bootstrapping situations where both orogen and some orogen modules need to be built. * workaround CMake heavy-caching behaviour. When a reconfiguration is needed, delete the CMakeCache.txt file instead of recalling cmake on top of it. It should fix most of the problems of CMake related to caching of pkg-config files for instance. == Version 1.4.0 * cmake package handler now displays progress value * added support for parallel builds * added the long-awaited --force-build and --rebuild options. The first one forces the call to all the build steps, but without deleting the build products. The second one deletes all build products and retriggers a full build. == Version 1.3.3 * fix: changing Orogen.corba now affects packages that have already been declared but for which the #corba attribute has not been set explicitely to true or false. * fix issues with the parsing of codel requirement in the genom package handler == Version 1.3.2 * fix stupid issues with the genom package * import caller's environment instead of erasing it. == Version 1.3.1 * 1.3.* now depend on utilrb, add it to the gem dependency list == Version 1.3.0 * major update of the user interaction. Autobuild is now much less verbose, and (hopefully) displays more useful error messages in most cases. * make the library easier to use to build other tools (i.e. not so much autobuild-centered anymore) * add the :branch and :tag targets to the git importer. The git importer should now be used as: Autobuild.git(URL, :branch => branch_name) OR Autobuild.git(URL, :tag => tag_name_or_commit_id) This puts it in line with the other importers which have a Autobuild.importer_type(URL, option_hash) form. == Version 1.2.15 * fix branch switching in the git importer: the build will not fail anymore if autobuild has to switch to an already existing branch == Version 1.2.14 * fix git importer's handling of branch names: the importer now always works on a local branch that has the same name than the remote branch. == Version 1.2.12 * reconfigure orogen packages if orogen itself has been updated == Version 1.2.11 * fix small issues with CMake - CMake 2.6 can convert option values between what the user provides (for instance YES) and what is written in the cache (ON). Take that into account - if the first configuration fails, no Makefile is generated but a CMakeCache.txt is there. Autobuild was failing in that situation and will now handle it gracefully. == Version 1.2.10 * small fix logs are sorted into subdirectories, following the structure of the packages. Up until now, the mailing code was not searching for logfiles in the subdirectories. This commit fixes this. == Version 1.2.9 * small usability issue - provide the --keep-oldlogs command line option and the Autobuild.erase_oldlogs configuration flag to configure whether old logs should be kept (new data being appended to them), or erased - change the default behaviour from keeping old logs to erasing them == Version 1.2.8 * small fix - fixes --mail-smtp. This now works even without port specification. == Version 1.2.7 * fixes to documentation support - '--no-doc' now works - failures to generate documentation are now simple warnings, an error can be obtained by setting Autobuild.doc_errors or by using the --doc-errors command line flag == Version 1.2.6 * really fix the dependency problem * add documentation support in autotools == Version 1.2.5 * really fix the git fetch phase * fix a dependency issue between code generation and CMake configuration in the orogen package type == Version 1.2.4 * git update phase now fetches the repository and branch specified by the autobuild script. It previously was using remote tracking branches. This will allow to detect branch changes in the autobuild specification. * documentation support. Packages can now declare that they can generate documentation (see Package#doc_task and CMake#with_doc). That documentation is generated post-build and installed. * fix build updates in the CMake package class. == Version 1.2.3 * Fix git update again. FETCH_HEAD may resolve as an ID which is not the one to be selected for merge * Make the dependency on RMail optional * added the orogen package type == Version 1.2 * Fix git update * Fix cmake dependency handling. Give a way to always run cmake before running make (needed sometime) * Fix the genom package handling == Version 1.1 * Make the CVS importer discard differences on method and username between the current root and the configured root * Allow to specify exclusions in the importer package, which are used to ignore some changes in the source tree. Useful if some packages are built inside the imported source tree * added the git importer * added the cmake package * set the current repository as default global prefix and srcdir * misc fixes w.r.t. handling dependencies * added Autobuild.post_success_message == Version 1.0.1 * The "test suites are there for something" release * Fixes bugs introduced in the last version * Added a real example in samples/openrobots.rb * Fixed documentation in various places * Fail more gracefully on circular dependencies == Version 1.0 * Releasing 1.0. Autobuild is stable, and is in daily use at my work * Handle .tgz as valid tar extension (Closes #11722) * Fix bug in the tar importer, which made checkout fail (Closes #11716) == Version 0.6.7 * put install-stamp files into logdir, to clean up the installation prefix * added Autobuild.post_install: run an external program or call a block after all packages have been successfully built * bugfix: darcs get expects that the path to the destination directory already exists. Create it ourselves if it does not exist. * bugfix: when computing the timestamp of a source tree, exclude .svn and _darcs directories * bugfix: 'opencv.pc' were searched in PkgConfig packages instead of the actual .pc file ... * bugfix: installed_pkgconfig is supposed to be a singleton method of Autobuild * bugfix: "darcs get" expects that the path leading to the destination directory exists. Create it. * bugfix: fix handling of Genom's requires lists: we were previously expecting packages to be exactly separated by ', ' == Version 0.6.6 * add Package#post_install: executes either a block or an external command after the package has been installed * allow to reference pkg-config packages not built by autobuild. The .pc file is then used as installation stamp file * the configure.ac.user file generated by Genom may not be present in the RCS. Do not expect it to be there after import. * removed the Ruby package. If there are extensions to build, better have a post_install script to do that == Version 0.6.5 * add Autobuild.default_packages * big rdoc update == Version 0.6.4 This is a bugfix release * More checks for working copy sanity: check that the target working copy has been created by the right tools before doing anything. Update test suite so that these parts of the importers is tested * Since we grep 'svn info' output, make sure that its output will be in english by setting LC_ALL to C == Version 0.6.3 * CVS and SVN importing plugins check that the current working copy comes from the right source * the autotools and genom package are now reconfiguring if the flags (configureflags and/or genomflags) changed * bugfixes == Version 0.6.2 Small changes * added the Ruby package, which does an import and builds all C extensions * added the pkgconfig package, which allows to use an already-installed package if this packages can be found through pkg-config * check that working copies that are already checked out are from the right source (for CVS and Subversion) == Version 0.6.1 Bugfixes * fix dependency handling for Genom modules. In particular, we add dependencies between the module generation and the installed genom files (includes, canvas, and the genom executable). Information is taken from the pkg-config file * new package types: InstalledPkgConfig, to reuse pkg-config based packages installed by another autobuild script == Version 0.6 Use a Ruby-based DSL instead of YAML config files. It is waaaaaay more powerful and waaay cleaner. See demo.rb for an example * Added the Darcs importer * Fixes in dependency handling * Uses Rake 0.7 == Version 0.5.1 Fixes the release process, in which the bin/ directory was not distributed * 0.5 gem did not include bin/autobuild (which obviously was not good). Fix that == Version 0.5 Fixes the mail default behaviour. Added the 'tar' importer. * all the API is now in a separate module * genflags has been renamed back to genomflags. The convention is now to have a flags option. For instance: genomflags, configureflags * added the --[no-]build option to do only import * changed behaviour for mail reports: - set sensible default options for mail - mail: true uses default options - mail: is equivalent to mail: to: * if a value is undefined in the config file, parameter expansion tries to get it from the program environment, and raises an error if it is not present in the environment vars * changed the names of log files. All importers now uses -.log * added the 'tar' importer, which downloads and uncompress a tarball == Version 0.4 * added support to split import and build. For instance whole_tree: type: import import: cvs source: [ a, repository ] package1: type: autotools srcdir: whole_tree/package1 depends: whole_tree package2: type: autotools srcdir: whole_tree/package2 depends: whole_tree Works as it should * the autotools package has now an autogen options, which gives a name for a script which creates the autotools environment * renamed 'genomflags' -> 'genflags' * variable interpolation checks for environment variables * bugfixes == Version 0.3 * added support for patching source code. Add patch: [ patches ] to the package configuration * renamed autobuild-config, common-config and clean-log to autobuild, common and clean_log. Autobuild warns if it finds one the previous spelling but ignores it anyway