Bonobo ETL v.0.5

October 5, 2017

Bonobo ETL v.0.5.0 is now available. As always, you should upgrade your projects as soon as possible and give feedback if anything goes wrong.

Install or upgrade

The easiest option for installation or upgrade of Bonobo is through PyPI, using "pip install -U bonobo".

More installation options are available in the documentation.


Important highlights

  • bonobo.pprint and bonobo.PrettyPrint have been removed, in favor of bonobo.PrettyPrinter (BC break).
  • The bonobo.config API has suffered a major refactoring. It has been done carefully and most of your code should work unchanged, but you may have surprises. This was necessary for this API to be more uniform (potential BC break).
  • Secondary APIs start to be more uniform (bonobo.config, bonobo.util).

New features

Graphs & Nodes
  • Graphs now have a .copy() method.
  • New helper transformations arg0_to_kwargs and kwargs_to_arg0.
  • The unique pretty printer provided by the core library is now bonobo.PrettyPrinter().
  • Services now have “fs” and “http” configured by default.
Command line
  • New bonobo convert command now allows to run simple conversion jobs without coding anything.
  • New bonobo inspect command now allows to generate graphviz source for graph visualization.
  • Passing environment variables to graph executions now can be done using -e/–env. (cwandrews)
  • Add ability to install requirements with for a requirements.txt residing in the same dir (Alex Vykaliuk)
  • A “transformation factory” makes its first appearance. It is considered a preview unstable feature. Stay tuned.


  • Configurables have undergone a refactoring, all types of descriptors should now behave in the same way.
  • An UnrecoverrableError exception subclass allows for some errors to stop the whole execution.
  • Refactoring of Settings (bonobo.settings).
  • Add a reference to graph context (private) in service container.
  • Few internal APIs changes and refactorings.


  • Check if PluginExecutionContext was started before shutting it down. (Vitalii Vokhmin)
  • Move patch one level up because importlib brakes all the CI tools. (Alex Vykaliuk)
  • Do not fail in ipykernel without ipywidgets. (Alex Vykaliuk)
  • Escaping issues (Tomas Zubiri)


  • Windows console output should now be correct. (Parthiv20)
  • Various bugfixes.
  • More readable statistics on Ubuntu workstation standard terminal (spagoc)
  • Documentation, more documentation, documentation again.

Special thanks

  • Thanks to Parthiv20 for his work on windows support, bonobo should have nice output on windows too, now.
  • Thanks to CW Andrews for his work on environment variables usage and documentation.
  • Thanks to Alex Vykaliuk, Tomas Zubiri and Vitalii Vokhmin for their other contributions.
  • Thanks to anybody who contributed whose name would have tricked my vigilance.


We tried to test as much as we could this release in various setups and using different codebases.

Due to the young age of bonobo, to the limited amount of energy I can invest, to the fact that the internal plumbery is moving a lot and to the «real-world» factor, there may be things that will break.

Please report any issue you'd have so we can try to avoid such problems in the future.