The contributors are happy to announce, that Optim.jl version 0.5 has now been released.
Notice that this version is breaking in a few different ways, so please update your code as necessary, and don't hesitate to ask over at https://github.com/JuliaOpt/Optim.jl/issues or join Kristoffer Carlsson and I at https://gitter.im/JuliaOpt/Optim.jl ! If you have a package that depends on Optim, we've changed your required version at METADATA, so please remove the upper bound when your code has been fixed to accommodate the changes in Optim v0.5. *Major changes* All the old functions such as bfgs(), newton(), neldermead(), and so on are now fully deprecated in favor of the new optimize(f, ..., BFGS()), optimize(f, ..., Newton()), etc signatures. This means that we now use dispatch to chose solver. This was possible in v0.4.5 as well, but the tag removes the deprecated functions. It is also important to note that keywords have changes names to match the api for retrieving results (x_tol, f_tol, g_tol, etc in stead of xtol, ftol, grtol, etc). For several reasons it is difficult to deprecate keyword args, so be aware of this change. A new implementation of preconditioners for conjugate gradient, gradient descent, and lbfgs has been developed (thanks @cortner). See the README for further details. It leverages dispatch of A_ldiv_B! to ease the use of preconditioners for illconditioned problems. Nelder Mead now uses the keyword g_tol for the main convergence tolerance. This might seem peculiar, as there is no gradient used in the solver, but the stopping rule is based on the variance in function values at the current vertices, and the tolerance f_tol has been restored to 1e-32 for all solvers. *Minor changes*Improved trace in Nelder Mead. f_tol is again 1e-32 by default Fixed bug in Brent's method for univariate optimization (thanks @anriseth) Fixed deprecation warnings on v0.5 (thanks @KristofferC) *Future*Going forward, we're going to keep a proper NEWS.md file, so changes will be easier to locate. A proper documentation is underway, performance benchmarking, solver improvements, and much more. So stay tuned! This tag has breaking changes, and we cannot promise that this is the last time. A pretty important planned breaking change, is to change the order of the arguments in the g! and h! functions, such that they will take the preallocated array first, instead of last: g!(stor, x) instead of g!(x, stor) and similar for h!. This is more in line with most of Julia code. *Gitter*As mentioned above, we've started a chat over at Gitter. Please join us with usage questions, for development discussions, or to tell us how you're using Optim! It's very valuable to know how, where, and when Optim is being used out in the wild. Again, please report issues at the issue tracker, and ask questions on the julia-opt mailing list or over at Gitter.