[buildgear-devel] [ANNOUNCE] Build Gear version 0.9.21

Martin Lund martin.lund at keep-it-simple.com
Thu Sep 4 04:34:24 MDT 2014


Hi all,

Build Gear version 0.9.21 is now available for download:

http://buildgear.org/release/buildgear-0.9.21.tar.xz

This is mainly a feature release but it also includes various fixes and 
documentation updates.

New features include automatic layer assignment by path location, new 
buildfile layer variable support (removed support for .layer file), new 
buildfile nostrip options (removed support for .nostrip file), support 
for new special options array, support for new special build lock 
option, added more build and download details to build log, added 
metrics to load chart.

See the changelog for more details.



*WARNING*: This release breaks backwards compatibility!

Don't upgrade to the new version if you don't want to break your current 
project. However, it is quite easy to adapt to the new changes.

The new changes which breaks backwards compatibility is the removal of 
support for .layer and .nostrip files.

The reason for removing support for the .layer and .nostrip files is to 
consolidate all settings in the Buildfile to make the Buildfile more 
unambiguous. Making the Buildfile the single source of build information 
will also help avoid users overlooking any nostrip or layer settings. In 
the future, there will be no more hidden . files. Everything will be 
defined in the Buildfile.

Here is is a quick 3 step migration guide:

1. If you have an empty .nostrip file, add 'options=(nostrip)' to 
Buildfile. Delete .nostrip file.
2. If you have a non-empty .nostrip file, add eg. 
'nostrip=(/usr/lib/libtest.so /usr/lib/libtest.a)' to Buildfile. Delete 
.nostrip file.
3. If you have a .layer file, put the corresponding build in the correct 
path (buildfiles/cross/cross-<layer>/* or 
buildfiles/native/native-<layer>/*) so that it will be automatically 
assigned to <layer> OR add eg. 'layer=mylayer' to Buildfile. Delete 
.layer file.



Expect the mini-distribution repositories to be updated to reflect the 
new changes within a few days from now.

Thanks to Jesper for adding the footprint and checksum cleaning feature 
which comes quite handy.

Also thanks to Qing Jin for reporting the issue with building under 
Jenkins which has now been resolved.

The new version will be available via Ubuntu PPA as soon as possible:
https://launchpad.net/~team-buildgear/+archive/buildgear

/Martin


Changelog:

=== Build Gear v0.9.21 ===


Changes since Build Gear v0.9.20:

Jeser Larsen:

  * template: Add License field to buildfile template

  * Support cleaning both footprint and checksum

Martin Lund:

  * handbook: Added strip configuration text

  * handbook: Updated layer text

  * Updated handbook year

  * Renamed special option 'build-lock' -> 'buildlock'

    Renamed it to make it in the same style as the special 'nostrip' option.

  * Added layer man text

  * Added nostrip man text

  * Removed '.nostrip' file support

    Defining whether or not a Buildfile is stripped or not using the
    .nostrip file is now deprecated.

    Instead the nostrip feature can now be defined in the Buildfile itself
    in either of two ways:

    1. Disable strip entirely

       Adding a 'nostrip' option to the 'options' list like so:

       options=(nostrip)

       Will disable any strip of the build entirely.

    2. Selective nostrip

       It is possible to select which files will not be stripped by adding a
       nostrip array. For example:

       nostrip=(/usr/lib/libtest.so /usr/lib/libtest.a)

       Entries in the nostrip array are treated as regular expressions (as
       used by grep).

    Note: (2) will have no effect if (1) is used.

    Note: By default all executables and .so and .a files are stripped.

    This change is part of a plan to consolidate all settings inside the
    Buildfile to make the Buildfile more precise to avoid that the user
    overlooks any settings.

  * Removed '.layer' file support

    Defining which layer a Buildfile belongs to using the .layer file is now
    deprecated.

    Instead the layer can now be defined in the Buildfile itself by adding
    the "layer" variable. For example, to assign a Buildfile to "mylayer"
    simply add:

    layer=mylayer

    If the layer is not defined in the master config LAYERS list, then the
    Buildfile will default to the "default" layer.

    Please note that the preferred method for assigning layers is by
    Buildfile path location (eg. cross-<layer>) and not by using the "layer"
    variable.

    This is part of a plan to consolidate all settings inside the Buildfile
    to make the Buildfile more precise to avoid that the user misses any
    settings.

  * Added some metrics to load chart

    Added the following metrics to the loaad chart:

     * Average System CPU Usage
     * Maximum System Memory Usage
     * Minimum System Memory Usage

  * Added info header to log

    Added info header to log when building or downloading.

  * Added download status to log

  * Print 'Configured parallel builds..' when building

    Added print of 'Configured parallel builds..' when the build command is
    fired.

  * Fixed 'buildgear config --list' command

    Buildgear now correctly distinguishes between local, global, and default
    settings when showing the configuration listing.

  * Revert some compacting of the output

    Previous commit went a little to far with compacting the build output -
    added one space of indentation so the spinner is not cramped to the
    terminal wall.

  * Added support for "build-lock" option

    This feature adds support for locking a build so that it will be the
    only one building at any given time (even when parallel_builds > 1).
    This is done by introducing a new "options" list and a special toggle
    option named "build-lock".

    To force a buildfile to be built in non-parallel, simply add to the
    buildfile:

    options=build-lock

    This is reported to be useful for eg. kernel module builds which must
    avoid to be built in parallel at the same time because they need to
    operate in the same kernel build workspace in order to produce coherent
    kernel and modules.

    In the future, more options can be added to the options list.

  * Compacted build output

    Compacted build output a little bit to save horizontal space.

  * Prettyfied build output

    Added padding so that layer and status fields align nicely into columns.

  * Improve buildfile type identification

  * Automatic assigment of layer by buildfile location

    Buildfiles are now automatically assigned to <layer> when placed in:

    buildfiles/cross/cross-<layer>
    buildfiles/native/native-<layer>

    Provided that <layer> is defined in the master config LAYERS list.

    If <layer> is not defined in the LAYERS list buildfiles in these
    locations will continue to default to the "default" layer.

    However, the .layer file will still take priority if used.

    This feature makes it much more easy to assign multiple buildfiles to a
    single layer by not having to create a .layer file for each buildfile
    but instead by simply putting them in the right layer directory
    location.

  * Bumped version

  * Updated .gitignore

    Ignore buildgear-* directory created by 'make dist'.

  * Improved download error message

  * Fixed tty terminal handling

    Added tty terminal detection so that no tty reconfiguration will be
    performed when no tty terminal is attached to the buildgear process.

    This was reported to be an issue when deploying builds under Jenkins.





More information about the buildgear-devel mailing list