Skip to content

Latest commit

 

History

History
248 lines (186 loc) · 7.27 KB

CHANGELOG.rst

File metadata and controls

248 lines (186 loc) · 7.27 KB

CyIpopt Changelog

Info:Change log for CyIpopt releases.
Date: XXXX-XX-XX
Version: 1.3.0.dev0

GitHub holds releases, too

More information can be found on GitHub in the releases section.

About this Changelog

All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Dates should be (year-month-day) to conform with [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

Formatting a New Version

Include sections:

  • Added - for new features.
  • Changed - for changes in existing functionality.
  • Deprecated - for soon-to-be removed features.
  • Removed - for now removed features.
  • Fixed - for any bug fixes.
  • Security - in case of vulnerabilities.

Version History

[1.4.0.dev0] - XXXX-XX-XX

[1.3.0] - 2023-09-23

Added

  • Added a pyproject.toml file with build dependencies. #162
  • Added support for sparse Jacobians in the SciPy interface. #170
  • Added get_current_iterate and get_current_violations methods to Problem class. #182
  • Added installation instructions for Ubuntu 22.04 LTS apt dependencies.
  • Added a script to build manylinux wheels. #189
  • Improved documentation of minimize_ipopt(). #194
  • Added support for all SciPy minimize() methods. #200
  • Added support for SciPy style bounds in minimize_ipopt() and added input validation. #207
  • Added new CyIpoptEvaluationError and included it in relevance callbacks. #215
  • Added dimension checks for Jacobian and Hessian attributes/methods. #216

Fixed

  • Fixed import of MemoizeJac from scipy.optimize. #183
  • args and kwargs can be passed to all functions used in minimize_ipopt(). #197
  • Fixed late binding bug in minimize_ipopt() when defining constraint Jacobians. #208
  • Pinned build dependency Cython to < 3. #212 #214 #223
  • Fixed installation on Windows for official Ipopt binaries adjacent to setup.py. #220

Changed

  • Changed the license to Eclipse Public 2.0. #185
  • Updated all dependency pins to match those in Ubuntu 22.04 LTS. #223

[1.2.0] - 2022-11-28

Added

  • Added instructions for using the HSL binaries with the Conda Forge binaries.
  • Support for Python 3.10 and 3.11.

Fixed

  • Improved the type information in the JAX example.
  • SciPy MemoizeJac deprecation warning handled.
  • Handled KeyErrors upon unknown IPOPT return statuses.
  • Removed unnecessary shebangs.
  • Improved the Github Actions CI.

Removed

  • Dropped support for Python 3.6.

[1.1.0] - 2021-09-07

Added

  • Added support for objective and constraint Hessians and jac=True option for constraints in the scipy interface.
  • Example added showing how to use JAX for calculating derivatives.

Changed

  • Releases have been moved to the PyPi cyipopt distribution namespace: https://pypi.org/project/cyipopt/. Users should now install with pip install cyipopt. Be sure to uninstall the ipopt distribution first.

Removed

  • The six and future dependencies are removed.

[1.0.3] - 2021-04-07

Changed

  • Changed PyPi distribution name back to ipopt, as cyipopt is currently unavailable.

[1.0.2] - 2021-04-06

Changed

  • Corrected the CHANGELOG.

[1.0.1] - 2021-04-06

Changed

  • Corrected the PyPi classifier.

[1.0.0] - 2021-04-06

Added

  • conda/cyipopt-dev.yml conda environment file for development.
  • minimize_ipopt approximates the Jacobian of the objective and the constraints using SciPy's approx_fprime if not provided [#91].
  • Make changes as outlined in Version 1.0 proposal [#14].
  • requirements.txt file.
  • Dedicated tests using pytest in cyipopt/tests/ directory.
  • examples/ directory.
  • Support for Python 3.9.
  • Minimum version requirements for all dependencies.

Changed

  • Installation and development documentation moved from README.rst to docs/.
  • Python logger changed to use the cyipopt namespace [#102].
  • Class and method names now use PEP8 standards. Old class and method names now result in a deprecation warning.
  • Module directory renamed from ipopt. to cyipopt.
  • doc/ folder renamed to docs/.
  • Updated CHANGELOG.rst.

Deprecated

  • Package being imported by import ipopt (replaced by import cyipopt).
  • Use of non-PEP8 named classes/function/methods, e.g. cyipopt.problem (replaced by cyipopt.Problem), cyipopt.problem.addOption (replaced by cyipopt.Problem.add_option), cyipopt.problem.setProblemScaling (replaced by cyipopt.Problem.set_problem_scaling) etc.

Removed

  • test/ folder containing examples, which have mostly been moved to examples/
  • docker/, vagrant/ and Makefile [#83].
  • Support for Python 2.7.
  • Support for Python 3.5.

[0.3.0] - 2020-12-01

  • Added support for Ipopt >=3.13 on Windows [PR #63].
  • Added support for Conda Forge Windows Ipopt >=3.13 binaries using the IPOPTWINDIR="USECONDAFORGEIPOPT" environment variable value [PR #78].

[0.2.0] - 2020-06-05

  • Resolved compatibility issues with Windows [PR #49].
  • Adding installation testing on the Appveyor CI service [PR #50].
  • Drop Python 3.4 support and add Python 3.7 support [PR #51].
  • Improvements to the README and setup.py for Windows installations [PR #54].
  • OSError now raised if pkg-config can't find Ipopt on installation [PR #57].
  • Supporting only Python 2.7 and 3.6-3.8. Python 3.5 support dropped [PR #58].
  • Added custom installation instructions for Ubuntu 18.04.

[0.1.9] - 2019-09-24

  • Fixed encoding issue preventing installation on some OSes.
  • Removed SciPy requirements from examples.

[0.1.8] - 2019-09-22

  • Updated setup.py to be complete and added dependencies.
  • Added support for Travis CI to test build, install, examples, and docs.
  • Made SciPy and optional dependency.
  • Linux/Mac installation now supported via conda and conda-forge.
  • Added LICENSE file and EPL headers to each source file.
  • Fixed some Python 2/3 compatibility issues.
  • Improved documentation formatting for Sphinx.
  • Strings can be passed to addOption instead of bytes strings for Python 2 and 3.