Bonobo ETL v.0.4

June 10, 2017

Bonobo ETL v.0.4.0 is now available. Amongst a lot of new features, there is now good integration with python logging facilities, better console handling, better command line interface and more exciting, the first preview releases of the bonobo-docker extension, that allows to build images and run ETL jobs in containers. As always, you should upgrade your projects as soon as possible, and of course make 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

  • BC BREAK WARNING New IOFORMAT option determines the default expected input and output format of transformations. New default input/output format of transformations is now kwargs-based, instead of first-argument based. The rationale behind this is that it does not make any sense to put a dict as the only argument of a transformation knowing that python has a well supported syntax to do so already. Of course, it may break some of your transformations but you can require the old behaviour by setting the IOFORMAT=arg0 environment variable.

New features

Command line interface
  • Allow to run directories or modules using “bonobo run”.
  • Bonobo version command now shows where the package is installed, and an optional “–all/-a” flag show all extensions in the same way. (#81)
  • Bonobo run flag “–install/-I” allow to pip install a requirements.txt file if run targets a directory. (#71)
  • Adds python logging facility configuration in bonobo cli commands.
  • Bonobo init now uses cookiecutter template.
  • Exclusive(...) context manager locks an object usage to one thread at a time. (docs)
Standard library
  • New PrettyPrinter and deprecate old crappy modules.
  • New pickle reader and writer (thanks @jelloslinger).


  • ConsoleOutputPlugin now buffers stdout to avoid terminal conflicts. Side effect, output is only done every few tenth of a second.


  • Fixes jupyter widget.


  • First release officially supporting bonobo-docker extension.
  • Docker extension can be now installed using the “docker” extra on bonobo (pip install bonobo[docker]).
  • Jupyter widget now displays the status in topological order, like console.


  • Allow “” as well as “” to be the main entrypoint of an etl job.
  • Better error display (329296c).
  • Better testing.
  • Code sweeping (ecfdc81).
  • Dependencies updated.
  • Filesystem now resolve (expand) ~ in path.
  • Moving project artifact management (Projectfile) to edgy.project 0.3 format.
  • Refactoring and fixes around ioformats.
  • Some really minor changes.


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.