@@ -10,31 +10,71 @@ we drop the official support for Python 3.9.
1010
1111## 0.5.0
1212
13- This is a major release with several breaking changes and deprecations. On a high level,
14- the major changes are:
13+ This is a major release with several breaking changes and deprecations. In this
14+ release we started implementing two major enhancement proposals and renamed the package
15+ from estimagic to optimagic (while keeping the ` estimagic ` namespace for the estimation
16+ capabilities).
1517
16- - Implement EP-02: Static typing
17- - Implement EP-03: Alignment with SciPy
18- - Rename the package from ` estimagic ` to ` optimagic ` (while keeping the ` estimagic `
19- namespace for the estimation capabilities).
18+ - [ EP-02: Static typing] ( https://estimagic.org/en/latest/development/ep-02-typing.html )
19+ - [ EP-03: Alignment with SciPy] ( https://estimagic.org/en/latest/development/ep-03-alignment.html )
2020
21+ The implementation of the two enhancement proposals is not complete and will likely
22+ take until version ` 0.6.0 ` . However, all breaking changes and deprecations (with the
23+ exception of a minor change in benchmarking) are already implemented such that updating
24+ to version ` 0.5.0 ` is future proof.
2125
2226- {gh}` 500 ` removes the dashboard, the support for simopt optimizers and the
2327 ` derivative_plot ` ({ghuser}` janosg ` )
28+ - {gh}` 502 ` renames estimagic to optimagic ({ghuser}` janosg ` )
2429- {gh}` 504 ` aligns ` maximize ` and ` minimize ` more closely with scipy. All related
2530 deprecations and breaking changes are listed below. As a result, scipy code that uses
2631 minimize with the arguments ` x0 ` , ` fun ` , ` jac ` and ` method ` will run without changes
2732 in optimagic. Similarly, to ` OptimizeResult ` gets some aliases so it behaves more
2833 like SciPy's.
34+ - {gh}` 506 ` introduces the new ` Bounds ` object and deprecates ` lower_bounds ` ,
35+ ` upper_bounds ` , ` soft_lower_bounds ` and ` soft_upper_bounds ` ({ghuser}` janosg ` )
36+ - {gh}` 507 ` updates the infrastructure so we can make parallel releases under the names
37+ ` optimagic ` and ` estimagic ` ({ghuser}` timmens ` )
38+ - {gh}` 508 ` introduces the new ` ScalingOptions ` object and deprecates the
39+ ` scaling_options ` argument of ` maximize ` and ` minimize ` ({ghuser}` timmens ` )
40+ - {gh}` 512 ` implements the new interface for objective functions and derivatives
41+ ({ghuser}` janosg ` )
42+ - {gh}` 513 ` implements the new ` optimagic.MultistartOptions ` object and deprecates the
43+ ` multistart_options ` argument of ` maximize ` and ` minimize ` ({ghuser}` timmens ` )
44+ - {gh}` 514 ` and {gh}` 516 ` introduce the ` NumdiffResult ` object that is returned from
45+ ` first_derivative ` and ` second_derivative ` . It also fixes several bugs in the
46+ pytree handling in ` first_derivative ` and ` second_derivative ` and deprecates
47+ Richardson Extrapolation and the ` key ` ({ghuser}` timmens ` )
48+ - {gh}` 517 ` introduces the new ` NumdiffOptions ` object for configuring numerical
49+ differentiation during optimization or estimation ({ghuser}` timmens ` )
50+ - {gh}` 519 ` rewrites the logging code and introduces new ` LogOptions ` objects
51+ ({ghuser}` schroedk ` )
52+ - {gh}` 521 ` introduces the new internal algorithm interface.
53+ ({ghuser}` janosg ` and {ghuser}` mpetrosian ` )
54+ - {gh}` 522 ` introduces the new ` Constraint ` objects and deprecates passing
55+ dictionaries or lists of dictionaries as constraints ({ghuser}` timmens ` )
56+
2957
3058### Breaking changes
3159
3260- When providing a path for the argument ` logging ` of the functions
3361 ` maximize ` and ` minimize ` and the file already exists, the default
3462 behavior is to raise an error now. Replacement or extension
3563 of an existing file must be explicitly configured.
36- - The argument ` if_table_exists ` has no effect anymore and a
64+ - The argument ` if_table_exists ` in ` log_options ` has no effect anymore and a
3765 corresponding warning is raised.
66+ - ` OptimizeResult.history ` is now a ` optimagic.History ` object instead of a
67+ dictionary. Dictionary style access is implemented but deprecated. Other dictionary
68+ methods might not work.
69+ - The result of ` first_derivative ` and ` second_derivative ` is now a
70+ ` optimagic.NumdiffResult ` object instead of a dictionary. Dictionary style access is
71+ implemented but other dictionary methods might not work.
72+ - The dashboard is removed
73+ - The ` derivative_plot ` is removed.
74+ - Optimizers from Simopt are removed.
75+ - Passing callables with the old internal algorithm interface as ` algorithm ` to
76+ ` minimize ` and ` maximize ` is not supported anymore. Use the new
77+ ` Algorithm ` objects instead. For examples see: https://tinyurl.com/24a5cner
3878
3979
4080### Deprecations
@@ -62,10 +102,29 @@ the major changes are:
62102 - ` convergence_scaled_gradient_tolerance ` -> ` convergence_gtol_scaled `
63103 - ` stopping_max_criterion_evaluations ` -> ` stopping_maxfun `
64104 - ` stopping_max_iterations ` -> ` stopping_maxiter `
65- - The ` log_options ` argument of ` minimize ` and ` maximize ` is deprecated,
66- an according FutureWarning is raised.
105+ - The arguments ` lower_bounds ` , ` upper_bounds ` , ` soft_lower_bounds ` and
106+ ` soft_upper_bounds ` are deprecated and replaced by ` optimagic.Bounds ` . This affects
107+ ` maximize ` , ` minimize ` , ` estimate_ml ` , ` estimate_msm ` , ` slice_plot ` and several
108+ other functions.
109+ - The ` log_options ` argument of ` minimize ` and ` maximize ` is deprecated. Instead,
110+ ` LogOptions ` objects can be passed under the ` logging ` argument.
67111- The class ` OptimizeLogReader ` is deprecated and redirects to
68112 ` SQLiteLogReader ` .
113+ - The ` scaling_options ` argument of ` maximize ` and ` minimize ` is deprecated. Instead a
114+ ` ScalingOptions ` object can be passed under the ` scaling ` argument that was previously
115+ just a bool.
116+ - Objective functions that return a dictionary with the special keys "value",
117+ "contributions" and "root_contributions" are deprecated. Instead, likelihood and
118+ least-squares functions are marked with a ` mark.likelihood ` or ` mark.least_squares `
119+ decorator. There is a detailed how-to guide that shows the new behavior. This affects
120+ ` maximize ` , ` minimize ` , ` slice_plot ` and other functions that work with objective
121+ functions.
122+ - The ` multistart_options ` argument of ` minimize ` and ` maximize ` is deprecated. Instead,
123+ a ` MultistartOptions ` object can be passed under the ` multistart ` argument.
124+ - Richardson Extrapolation is deprecated in ` first_derivative ` and ` second_derivative `
125+ - The ` key ` argument is deprecated in ` first_derivative ` and ` second_derivative `
126+ - Passing dictionaries or lists of dictionaries as ` constraints ` to ` maximize ` or
127+ ` minimize ` is deprecated. Use the new ` Constraint ` objects instead.
69128
70129## 0.4.7
71130
0 commit comments