Skip to content

[docs] update Changelog with latest changes #589

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
May 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 50 additions & 11 deletions docs/src/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ changes.
### Breaking

* This release involved a substantial rewrite of Convex.jl to integrate better
with MathOptInterface. (#504)
with MathOptInterface. (#504), (#551), (#584), (#588), (#637)
* `x + A` will error if `x` is a scalar variable and `A` is an array.
Instead, use `x * ones(size(A)) + A`.
* The `RelativeEntropyAtom` now returns a scalar value instead o
Expand All @@ -28,8 +28,19 @@ changes.
(Following the convention in MathOptInterface, the dual of `a <= b` is
always negative, regardless of optimization sense.) (#593)
* The structs `LtConstraint`, `GtConstraint`, `EqConstraint`
`SOCConstraint` and `SDPConstraint` have
been replaced by `GenericConstraint{S}` where `S<:MOI.AbstractSet` (#590)
`SOCConstraint`, `ExpConstraint`, `GeoMeanEpiConeConstraint`,
`GeoMeanHypoConeConstraint`, and `SDPConstraint` have been replaced by
`GenericConstraint{S}` where `S<:MOI.AbstractSet` (#590), (#597), (#598),
(#599), (#601), (#602), (#604), (#623), (#632), (#648)
* The set `GeomMeanEpiCone` has been renamed to `GeometricMeanEpiConeSquare`
and `GeomMeanHypoCone` has been renamed to `GeometricMeanHypoConeSquare`
(#638)
* **Subtle breaking change**: scalar row indexing like `x[i, :]` now produces a
column vector instead of a row vector. This better aligns with Julia Base,
but it can result in subtle differences, particularly for code like
`x[i, :] * y[i, :]'`: this used to be equivalent to the inner product, but it
is now the outer product. In Base Julia, this is the outer product, so the
previous code may be been silently broken (#624)
* The syntaxes `dot(*)`, `dot(/)` and `dot(^)` have been removed in favor of
explicit broadcasting (`x .* y`, `x ./ y`, and `x .^ y`). These were (mild)
type piracy. In addition, `vecdot(x,y)` has been removed. Call
Expand All @@ -38,43 +49,71 @@ changes.
individual variable, has been renamed `get_constraints` (#527)
* DCP violations now throw a `DCPViolationError` exception, rather than a
warning. Relatedly, `Convex.emit_dcp_warnings` has been removed (#523)
* Removed the undocumented an internal function `latex_formulation` (#551)
* The strict inequalities `>` and `<` have been deprecated. They will be
removed in the next breaking release. Note that these never enforced strict
inequalities, but instead were equivalent to `>=` and `<=` respectively (#555)
* The functions `norm_inf`, `norm_1`, and `norm_fro` have been deprecated. They
will be removed in the next breaking release (#567)
* The syntax `x in :PSD` to create a semidefinite constraint is deprecated and
will be removed in the next breaking release (#578)
* Fixed setting a `Constant` objective function. This is breaking because it
now has an objective sense instead of ignoring the objective. (#581)
* `quadform` now errors when fixed variables are used instead of silently
giving incorrect answers if the value of the fixed variable is modified
between solves (#586)
* The `Context` struct has been refactored and various fields have been
changed. The internal details are now considered private. (#645)

### Added

* SDP, SOC, and exponential cone constraints now have dual values populated
(#504)
* `geomean` supports more than 2 arguments (#504)
* Added `Convex.Optimizer` (#511), (#530), (#534)
* Added `write_to_file` (#531)
* Added `write_to_file` (#531), (#591)
* Added `entropy_elementwise` (#570)
* `norm` on `AbstractExpr` objects now supports matrices (treating them like
vectors), matching Base's behavior (#528)
* Added `root_det` (#605)
* Added `VcatAtom` which is a more efficient implementation of `vcat` (#607)
* Added support for `SparseArrays.SparseMatrixCSC` in `Constant`. This fixed
performance problems with some atoms (#631)
* `solve!` now reports the time and memory allocation during compilation from
the DCP expression graph to MathOptInterface (#633)
* Added support for using `Problem` as an atom (#646)
* `show(::IO, ::Problem)` now includes some problem statistics (#650)

### Fixed

* `sumlargesteigs` now enforces that it's argument is hermitian. (#504)
* [Type piracy](https://docs.julialang.org/en/v1/manual/style-guide/#Avoid-type-piracy)
of `imag` and `real` has been removed. This should not affect use of Convex. (#504)
* Bugfix: `dot` now correctly complex-conjugates its first argument (#524)
* Add tests and fix a number of bugs in various atoms (#546), (#550), (#554),
(#556), (#558), (#559), (#561), (#562), (#563), (#565), (#566), (#567) (#568)
of `imag` and `real` has been removed. This should not affect use of Convex.
(#504)
* Fix `dot` to now correctly complex-conjugates its first argument (#524)
* Fixed ambiguities identified by Aqua.jl (#642), (#647)
* Add tests and fix a number of bugs in various atoms (#546), (#547), (#550),
(#554), (#556), (#558), (#559), (#561), (#562), (#563), (#565), (#566),
(#567), (#568), (#608), (#609), (#617), (#626), (#654), (#655)
* Fixed performance issues in a number of issues related to scalar indexing
(#618), (#619), (#620), (#621), (#625), (#634)
* Fixed `show` for `Problem` (#649)

### Other

* Improved the documentation (#517), (#529)
* Improved the documentation (#506), (#517), (#529), (#571), (#573), (#574),
(#576), (#579), (#587), (#594), (#628), (#652), (#656)
* Refactored the tests into a functional form (#532)
* Updated `Project.toml` (#535)
* Added `test/Project.toml` (#536)
* Refactored imports to explicitly overload methods (#537)
* Tidied and renamed various atoms and files clarity. This should be
non-breaking as no public API was changed. (#538), (#539), (#540), (#541),
(#543), (#545)
(#543), (#545), (#549), (#553), (#582), (#583)
* Removed the unused file `src/problem_depot/problems/benchmark.jl` (#560)
* Added various tests to improve code coverage (#522), (#572), (#575), (#577),
(#580)
* Updated versions in GitHub actions (#596), (#612), (#629)
* Added license headers (#606)

## v0.15.4 (October 24, 2023)

Expand Down