Skip to content

Commit 958a9ae

Browse files
authored
[docs] update Changelog with latest changes (#589)
1 parent 1b25548 commit 958a9ae

File tree

1 file changed

+50
-11
lines changed

1 file changed

+50
-11
lines changed

docs/src/changelog.md

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ changes.
1515
### Breaking
1616

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

4867
### Added
4968

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

5986
### Fixed
6087

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

68101
### Other
69102

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

79118
## v0.15.4 (October 24, 2023)
80119

0 commit comments

Comments
 (0)