Hyperlinked release notes can be found here:
https://pypsa.org/doc/release_notes.html#pypsa-0-9-0-29th-april-2017
This release mostly contains new features with a few minor API changes.
* Unit commitment as a MILP problem is now available for generators in
the Linear Optimal Power Flow (LOPF). If you set committable == True
for the generator, an addition binary online/offline status is
created. Minimum part loads, minimum up times, minimum down times,
start up costs and shut down costs are implemented. See the
documentation at Generator unit commitment constraints and the unit
commitment example. Note that a generator cannot currently have both
unit commitment and capacity expansion optimisation.
* Generator ramping limits have also been implemented for all
generators. See the documentation at Generator ramping constraints
and the unit commitment example.
* Different mathematically-equivalent formulations for the Linear
Optimal Power Flow (LOPF) are now documented in Passive branch flow
formulations and the arXiv preprint paper Linear Optimal Power Flow
Using Cycle Flows. The new formulations can solve up to 20 times
faster than the standard angle-based formulation.
* You can pass the network.lopf function the solver_io argument for
pyomo.
* There are some improvements to network clustering and graphing.
* API change: The attribute network.now has been removed since it was
unnecessary. Now, if you do not pass a snapshots argument to
network.pf() or network.lpf(), these functions will default to
network.snapshots rather than network.now.
* API change: When reading in network data from CSV files, PyPSA will
parse snapshot dates as proper datetimes rather than text strings.
João Gorenstein Dedecca has also implemented a MILP version of the
transmission expansion, see https://github.com/jdedecca/MILP_PyPSA,
which properly takes account of the impedance with a disjunctive
relaxation. This will be pulled into the main PyPSA code base soon.