[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