-------------------
Added
^^^^^
- Add the ``Instance.diverse_solutions`` method to use the MiniZinc
experimental feature to model diversity and try and find a set of diverse
solutions for the given problem.
Removed
^^^^^^^
- **BREAKING:** The project no longer supports Python 3.7. This change will make
it easier to manage MiniZinc Python's build system.
Changed
^^^^^^^
- Minimum supported version of MiniZinc has increased from 2.5.4 to 2.6.0.
- ``Instance.solutions`` is now able to use the ``intermediate_solutions`` flag
correctly and will only yield a single solution when it is set to ``False``.
- ``helpers.check_solution`` now includes an optional time limit flag. If the
time limit is exceeded, then a ``TimeoutError`` exception will be raised.
- ``helpers.check_solution`` will no longer capture MiniZinc exceptions.
Capturing these exceptions sometimes hid problems.
- The ``timeout`` parameter has been renamed to ``time_limit`` in
``Instance.solve``, ``Instance.solve_async``, and ``Instance.solutions``. The
``timeout`` parameter is still accepted, but will add a
``DeprecationWarning`` and will be removed in future versions.
- The ``intermediate_solutions`` parameter can now be explicitly set to
``False`` to avoid the ``-i`` flag to be passed to MiniZinc, which is
generally added to ensure that a final solution is available.
Fixed
^^^^^
- Fix problem where some exceptions when creating processes where hidden and
would then cause errors where the ``proc`` variable did not exist.
- Fix issue where MiniZinc would not correctly be terminated on Windows when
the Python process was interrupted.