Brightway (Versions, Compatibility, etc.)#

Versions and Compatibility#

Versions#

Brightway 1#

Brightway (originally without a version number, here referred to as version 1) was originally developed by Chris Mutel as part of his doctoral research in the group of Prof. Stefanie Hellweg[1]. It is no longer available for download.

Brightway 2 (Brightway2)#

Note

Learn about upgrading your Brightway 1 projects to Brightway 2 here.

Brightway2 was a complete rewrite of the oBrightway 1. It is the most widely used version of Brightway.

Warning

Brightway2 is currently the only version of Brightway that is compatible with the ActivityBrowser graphical user interface.

Brightway 2.5 (Brightway25)#

Note

Learn about upgrading your Brightway 2 projects to Brightway 2.5 here.

Brightway 2.5 is the next generation of the Brightway2 framework for life cycle assessment. It provides new capabilities for cloud computing and model interaction, with the use of a new processed data library and a separation between the calculation library and a library for matrix construction and manipulation.

– from the Brightway 2.5 repository readme file

Brightway 2.5 is the next step on the way to the next version of Brightway, as detailed in the Brightway Strategic Development Plan. In practice, this means that the meta-packages brightway-lca/brightway2 and brightway-lca/brightway25 will install different versions of the Brightway packages. For instance:

package

Brightway 2 version

Brightway 2.5 version

bw2analyzer

< 0.10.99

>= 0.11.1

bw2calc

< 1.8.1

>= 2.0.dev5

bw2data

< 3.99

>= 4.0.dev11

bw2io

< 0.8.9

>= 0.9.dev6

This is specified in the respective setup.py files: Brightway25 packages and Brightway2 packages.

Technical Stack#

Storing Python objects in a SQLite3 database is silly! Why not use X document database?#

Where X is one of MongoDB, CouchDB, UnQLite, Vedis, CDB, TinyDB, etc.

This approach may seem strange at first, but is the result of coding, evaluating, and ultimately rejecting several alternatives. Most document databases can’t store all Python objects directly, because they use JSON or some other serialization. We have actually built and tested database backends built on pickle files, JSON files, MongoDB CodernityDB and BlitzDB. SQLite3 also has several real advantages:

  • Most importantly, it is included with Python, no new dependencies or installation steps are required.

  • It is famous for being well tested, and is completely cross-platform.

  • It is also more than fast enough. For example, loading every activity from ecoinvent 3+ takes only a few seconds.