=========================
 coopr.plugins CHANGELOG
=========================

-------------------------------------------------------------------------------
 2.2
-------------------------------------------------------------------------------

- Created ASL solver, which can execute any solver built with the AMPL
  Solver Library.

- Update to account for changes in pyutilib.plugin.* names

- Improvements in CPLEX plugin, mainly to include other solver statistics.

-------------------------------------------------------------------------------
 2.1
-------------------------------------------------------------------------------

- Speed improvement to CPLEX solution reader - accessing solution attributes
  multiple times is expensive.

- Reworking MIP plugins to more selectively print branch-and-bound
  information. Don't print this info unless solving a MIP.

- Update of Pyro solver manager to propagate warm-start files to
  pyro_mip_servers. This currently only works for CPLEX, because CPLEX
  is currently the only solver plug-in that supports warm-starts.

- Adding transmission of solver mipgap across the Pyro distributed solver
  interface.

- Added ability to write the mipgap attribute (if not None) to the
  solver script file for CPLEX and GLPK. This needs to be added to 
  other solvers as well.

- Added fully-tested urc and lrc reduced-cost solution loading to the
  CPLEX plugin.

- CPLEX has warm-start capabilities - over-riding base OptSolver query method
  to indicate so.

- Added MIP solution read capability to GLPK plugin. Now able to read MIP
  solutions in via Pyomo and display attributes!

- Major re-work to GLPK interface, which was failing to read pretty much
  all solutions correctly. In particular, if identifiers are longer than
  the "usual" GLPK field width, the index/name and various values/status
  elements are split across multiple lines. This wrecks unit tests, but
  those will have to be revisited anyway - we still don't handle MIPs
  correctly, as the formats between MIP and LP are radically different.

- Added extraction of reduced-costs for variables in CBC plugin solution
  reader. Additionally, all values need to be pushed into the solution,
  whether non-zero or not. If this isn't done, then when the instance
  is loaded, only a subset of the variable values (and reduced-costs)
  are over-ridden.  Supression of 0 values does happen in the solution
  output routine.

- Extracting solver runtime for CPLEX solver plugin.

- Update to solvers to use the new structure for managing the parsing of
  solution results.

- Fixed bug in CBC when in NL/SOL mode that was setting each primal and dual
  variable twice when reading the solver output.

-------------------------------------------------------------------------------
 2.0
-------------------------------------------------------------------------------

- Initial release of Coopr to create the coopr.plugins package.

- See coopr.dist for previous ChangeLog information related to Coopr.

