Bob 0.20 Release Notes
Changes made since Bob 0.19.0 include the following.
New commands
bob init - Initialize out-of-source build tree
This new command initializes a build tree that uses the project recipes from another location. This can be used to create multiple build trees from the same recipes. Every build tree can have a different configuration.
New features
Platform support
Compatibility to Python 3.10 has been added
Bob gained support for PowerShell 5
Recipes
Added support for automatic extraction of
*.txz
archives in URL SCM.The URL SCM gained support for SHA512 digests.
The git SCM now has an option to setup local reference repos.
One or more local repositories can be referenced to speed up cloning of repositories and to save network bandwidth. The local path can optionally be derived from the original URL via a regular expression. See checkoutSCM for more details.
User configuration (default.yaml)
Binary archives can be marked as cache.
An optional “cache” flag can be added to the archive specification. Using this flag, an archive will receive downloaded artifacts from other archives. If a binary artifact was successfully downloaded, it will be uploaded into all archives having the “cache” flag set, unless it already exists there.
This is useful to automatically populate a local download cache. If an artifact needs to be fetched again it can be used from the local cache instead of downloading it from the network.
Most SCM default values can now be adjusted with the new scmDefaults key.
Bob ls
Added an option to show identical packages too.
By default only unique packages of a query are displayed. The
-A
option shows all identical packages too, instead of only the first one.
Bob build / bob dev
Made shallow git clones with explicit commits more reliable.
On a shallow clone the fetched tip(s) are only partially cloned. If the git SCM is configured to use a specific commit it might be possible that the commit was not downloaded if the branch advanced too much. A special fallback was added to re-fetch from the server with the explicit commit id, if the initial fetch failed to download the required commit.
Added support for out-of-tree builds.
A new bob-init command was added, which initializes a build tree that points to the project root directory where the recipes are read from. The build tree might have it’s own
default.yaml
too.
Changed behaviour
Backwards incompatible changes
The plugin load order in conjunction with layers was fixed.
Lower layers have a lower precedence than higher layers. The root project should be able to override settings made by a lower layer. This was already the case for
default.yaml
stuff but plugins were still loaded in the wrong order. Plugins of lower layers are now loaded before plugins of higher layers so that these can override them.
Bug fixes
Fixed location tracking of non-relocatable packages (#410)
Fixed platform detection on recent MSYS2 versions. (#416)
Check
bobMinimumVersion
before applyingconfig.yaml
schema. (#420)Fixed detection of plugin changes. (#430)
Fix crash on Windows if environment has variables that only differ in case. (#432)
Fixed failures to create Jenkins jobs if an artifact is built in different sandboxes. (#438)
Fixed crash if git submodules were enabled for an existing checkout. (#440)