Bob 0.21 Release Notes

Changes made since Bob 0.20.0 include the following.

New features

Recipes

  • Added support for dependencies in checkout steps via the checkoutDep flag.

    Normally dependencies are only available to the buildScript. But sometimes it is necessary to access dependencies in the checkoutScript already. Currently this requires to copy the sources in the buildScript where access to all dependencies is possible.

    The newly added checkoutDep flag of dependencies allows to make selected dependencies available for the checkoutScript. The buildScript will still retain access to the dependency as always. Provided dependencies of such packages are not implicitly made available. The number of checkout dependencies should be kept as small as possible to prevent accidental creation of checkout variants, which are usually confusing to users.

Bob Jenkins

  • Improved copyartifact plugin compatibility.

    Since version 1.44, the Copy Artifact plugin checks permissions more thoroughly in its default “Production mode”. If the anonymous user has no right to read jobs and its artifacts, the copy will fail. In such a configuration Bob required to use “Migration mode” which opens some security loopholes.

    Because we known which jobs require access to the artifacts, Bob will now whitelist these jobs explicitly. This works now regardless of the user configuration.

Bob project

Performance improvements

  • Improved performance for projects with complex sandbox recipes.

Bug fixes

Backwards incompatible fixes

  • Fixed whitelist case sensitivity for MSYS2 (#473).

    On MSYS2, environment variables are handled case sensitive. Some of the inherited environment variables are not in all upper case and were not whitelisted correctly. This has been rectified and might result in more variables being available to the executed scripts. Note that native Windows builds are not affected because there environment variables are case insensitive.

  • Fixed scanning of additional include directories when generating projects (-I project generator option, #451).

    Additional include directories are added last to the IDE search paths. These directories were previously scanned recursively but the code to do that was broken. Now these paths are forwarded literally to the IDE. If multiple sub-directories need to be added it is now required to give additional -I options for each directory.

Other fixes

  • Fixed crash when plugins used the PluginsState class (#459)

  • Avoid rebuilds of packages after using --checkout-only. This could happen e.g. after an update of the sources was done using --checkout-only without --sandbox and then rebuilding with --sandbox for example.

  • Fixed potential crashes on Windows related to large inode numbers (#464)

  • Fixed crash in git SCM if shallow clone is active and the commit can’t be reached.

  • Fixed state corruption if no space is left in file system (#470)

  • Improved handling of errors if internal worker pool cannot be initialized (#467)

  • Added mitigation for spurious permission errors on Windows when writing the project state (#475)

  • Fixed crashes when a SCM would write strings with invalid encoding to stdout (#476, #477)