[bob-build-tool] [Announce] Backwards incompatible changes ahead

  • From: Jan Klötzke <jan@xxxxxxxxxxxx>
  • To: Bob Mailing List <bob-build-tool@xxxxxxxxxxxxx>
  • Date: Wed, 11 Jan 2017 21:30:07 +0100

Hi,

Bob currently has some scalability problems when working on large
projects with hundreds of packages. To address these problems [1] I've
implemented a prototype to reuse identical package trees. So far the
achieved speed gain is impressive but it will require to break the
plugin API in a backwards incompatible way.

The following changes are necessary to implement the optimization:

 * No shell patterns allowed anymore in {checkout,build,package}Vars
 * Plugins cannot iterate environment anymore. Access to specific
   variables of the environment is still possible, though.
 * Custom string functions do not get the package path (stack) anymore.

While changing quite a lot of code I came across some other problems.
Fixing those will also introduce incompatible changes. While I could
keep the old APIs I thought it would be good to clean them up in one big
step:

 * Package.getIndirectDepSteps() does not return used tools and the used
   sandbox anymore. Use getAllDepSteps() instead.
 * Step.getTools() returns the actual tools (bob.input.Tool) instead of
   the execution path referencing the tool.
 * Step.getProvidedEnv(), .getProvidedTools(), .getProvidedDeps() and
   .getProvidedSandbox() were removed.

I hope these changes will not break anything in production...

 -- Jan

[1] https://github.com/jkloetzke/bob/tree/incremental-parsing

Other related posts:

  • » [bob-build-tool] [Announce] Backwards incompatible changes ahead - Jan Klötzke