Release notes
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v1.46.0 (October 21, 2025)
Added
- Added 
VectorNonlinearOracle(#2860) 
Fixed
- Fixed 
Bridges.Constraint.IndicatorToMILPBridgewhen thezvariable was not binary (#2857), (#2868) - Fixed an 
errortoGetAttributeNotAllowedinBridges.Variable.ZerosBridge(#2863) - Fixed various bridges to throw MOI error subtypes instead of 
Base.error()(#2866) 
Other
v1.45.0 (September 20, 2025)
Added
- Added 
Bridges.Objective.ToScalarNonlinearBridge(#2834), (#2835) - Added support for querying 
ConstraintConflictStatuswhen the constraint was bridged (#2839) 
Fixed
- Fixed a type instability in 
Utilities.set_dot(#2831) - Rewrote 
Base.read!(::IO, ::FileFormats.LP.Model)to use a proper recursive descent parser. This fixed numerous performance issues, and the resulting parser is simpler to maintain and extend. (#2840), (#2841), (#2842), (#2843), (#2844), (#2846), (#2847), (#2848), (#2852), (#2853) - Rewrote the error handling in 
read!(::IO, ::FileFormats.MPS.Model)to throw aFileFormats.MPS.ParseError(#2845), (#2849) 
Other
v1.44.0 (September 4, 2025)
Added
- Added support for 
VariableNamein variable bridges (#2822) 
Fixed
- Fixed use of deprecated 
IntDisjointSets(#2824), (#2828) - Fixed 
Utilities.get_fallbackforDualObjectiveValuewith open intervals (#2823) (#2826) 
v1.43.0 (August 21, 2025)
Added
- Added 
ConflictCountandconflict_indextoConstraintConflictStatus(#2775), (#2800), (#2801) - Added 
Bridges.Constraint.IntervalToHyperRectangleBridge(#2754), (#2806), (#2809) 
Fixed
- Fixed the MPS reader to support any whitespace as a field separator (#2798)
 - Fixed tests with duplicate names and added a CI test (#2804), (#2805)
 - Fixed parsing 
x * xasx^2inNonlinear.Model(#2799) - Fixed a bug in 
Utilities.operatewith quadratic outputs when aIntegercoefficient differs from the machineInteger(#2807) - Fixed 
MOI.supportsofMOI.ObjectiveFunctionin all file formats (#2814) - Fixed free rows in 
Bridges.Constraint.SplitHyperRectangleBridge(#2816) - Fixed deleting a variable with constraint bridges (#2818)
 - Fixed 
Utilities.AbstractModelwith no constraints (#2819) 
Other
- Added an OPF benchmark (#2739)
 - Updated to DataStructures@0.19 (#2796)
 - Filter 
identity_bridge.jlout fromruntests(#2812) 
v1.42.1 (August 1, 2025)
Fixed
- Fixed reading MPS models with extra ROWS fields (#2793)
 
Other
- Added more packages to solver-tests.yml (#2785)
 - Added a test to MPS reader that duplicate entries are summed (#2787)
 - Fixed docstring of 
inverse_trimap(#2790) - Removed useless prefix in 
set_dot(#2791) 
v1.42.0 (July 10, 2025)
Added
- Added an option to disable warnings in 
Utilities.PenaltyRelaxation(#2774) 
Fixed
- Fixed a bug writing objective constant in 
MAX_SENSEwithFileFormats.MPS(#2778) - Fixed a change in how 
==(::Expr, ::Expr)works on for Julia nightly (#2780) - Fixed a performance bug in the Hessian computation of 
Nonlinear.ReverseAD(#2783) 
v1.41.0 (June 9, 2025)
Added
- Added support for different number types in the various file format readers and writers. By default, the files assume 
Float64. To change how the values are parsed, use; coefficient_type = T. The supported file formats are LP, MOF, MPS, and SDPA (#2768) (#2769) (#2770) (#2771) (#2772) 
v1.40.2 (June 2, 2025)
Fixed
- Fixed bug reading 
.nlfiles withuse_nlp_block = false(#2766) 
Other
- Improved error thrown in 
ToMILPBridgewhen variable is not bounded (#2764) 
v1.40.1 (May 20, 2025)
Fixed
- Fixed a missing 
dual_setforHermitianPositiveSemidefiniteConeTriangle(#2749) - Fixed 
Utilities.get_fallbackofDualObjectiveValuewithHyperRectangle(#2755) - Fixed reading SDPA files with 
{}punctuation (#2759) 
Other
- Fixed a flakey doctest that depended on the runtime of a function (#2748)
 - Changed to use 
Base.onlywhen appropriate (#2751) - Removed the experimental warning from Nonlinear module docstring (#2752)
 - Changed to use 
throw_if_scalar_and_constant_not_zerowhen appropriate (#2753) - Improved the text of 
showerrorforNotAllowedError(#2757) 
v1.40.0 (May 4, 2025)
Added
- Added 
Utilities.distance_to_setforPositiveSemidefiniteConeTriangleandPositiveSemidefiniteConeSquare(#2729) - Added 
Bridges.Constraint.HermitianToComplexSymmetricBridge(#2724) 
Fixed
- Fixed Bridge tests for non-invertible constraint bridge (#2713)
 - Fixed bridge weights for SOS(1|2)ToMILPBridge (#2723)
 - Fixed 
Bridges.Constraint.SetMapBridgewithComplexnumber types (#2733) 
Other
- Clarified comment about binary format in 
FileFormats.NL(#2720) - Added more packages to solver-tests.yml (#2721)
 - Removed 
@showfrom test of MockOptimizer (#2725) - Added 
@testsettoBridges.runtests(#2726), (#2734) - Updated JuliaFormatter to v2 (#2731)
 - Various improvements to 
Nonlinear.ReverseAD(#2730), (#2736), (#2737), (#2738), (#2740), (#2744), (#2745) - Bumped Julia version to v1.10 for documentation (#2735)
 - Fixed tests on nightly (#2742)
 - Added import MathOptInterface as MOI to DocTestSetup (#2746)
 
v1.39.0 (April 10, 2025)
Added
- Added 
test_modulekeyword toTest.runtests(#2710) - Added support for reading the binary 
bformat inFileFormats.Nonlinear(#2718) 
Fixed
- Fixed 
ListOfVariableIndicesreturned byBridges.LazyBridgeOptimizerwhen there is a chain of variable bridges (#2716) 
Other
- Updated 
solver-tests.yml(#2715) 
v1.38.1 (April 7, 2025)
Fixed
- Fixed a redundant constraint in 
Bridges.Constraint.CircuitToMILPBridge(#2694) - Fixed the ordering of 
ListOfVariableIndicesreturned byBridges.LazyBridgeOptimizer(#2695) - Fix 
Test.test_nonlinear_constraint_logto exclude undefined points (#2704) 
Other
- Improve various docstrings (#2698), (#2699), (#2700), (#2701), (#2712)
 - Add support for 
ForwardDiff@1(#2703), (#2708) - Update 
solver-tests.yml(#2697), (#2709) - Add a 
@test_brokenfor issue #2696 (#2705) 
v1.38.0 (March 13, 2025)
Added
Fixed
- Fixed a bug in 
Utilities.operate(vcat, ) -> VectorNonlinearFunctionwhich previously did not ensure that the returned function could be mutated (#2682) - Fixed 
getforConstraintFunctionofBridges.Constraint.SplitHyperRectangleBridgeto not add spurious+0and-0(#2681) - Fixed 
test_basic_tests to useNonlinear.SymbolicAD.simplifywhen comparing constraint functions. This fixes some tests withVectorNonlinearFunctionthat failed because the bridge reformulations were not recognized as being equivalent (#2686) - Fixed 
FileFormats.MOF.Modelto useuse_nlp_block = falseby default if the model containsScalarNonlinearFunction. This change could be regarded as technically breaking because writing and reading a model withScalarNonlinearFunctionused to return aNLPBlock, but now it reads functions as the expectedScalarNonlinearFunction(#2688) - Fixed 
Test.version_addedfor a number of tests that were added in recent versions (#2690), (#2691) 
Other
- Refactor some tests in 
Bridges(#2684) 
v1.37.2 (March 4, 2025)
Fixed
- Fixed a bug introduced by (#2661) in which various 
ToMILPbridges were broken ifdeletewas called beforeUtilities.final_touch(#2678) - Fixed a bug introduced by (#2665) in which 
attribute_value_typewas too strict for existing implementations ofBridges.ListOfNonstandardBridges(#2679) 
v1.37.1 (March 3, 2025)
Fixed
- Fixed 
modifywithMultirowChangeinBridges.Constraint.SetMapBridge(#2662) - Fixed 
attribute_value_typeforBridges.ListOfNonstandardBridges(#2665) 
Other
- This release contains a large number of pull requests that increase test coverage (#2657), (#2658), (#2659), (#2660), (#2661), (#2663), (#2670), (#2671), (#2672), (#2675)
 - Changed 
Bridges.Variable.ParameterToEqualToBridgeto be a subtype ofBridges.Variable.SetMapBridge(#2664) - Improved parallelism in the CI tests (#2674)
 
v1.37.0 (February 24, 2025)
Added
- Added constructors for 
VectorAffineFunctionandVectorQuadraticFunctionthat acceptAbstractVector{MOI.ScalarAffineFunction}andAbstractVector{MOI.ScalarQuadraticFunction}respectively (#2636) 
Fixed
- Fixed a bug reading 
QCMATRIXinFileFormats.MPS(#2628) - Fixed reading 
VariablePrimalStart,ConstraintPrimalStart, andConstraintDualStartfromFileFormats.MOF(#2652) - Fixed writing unsupported variable types in a number of file formats (#2654)
 
Other
- Removed the "experimental" warning from 
Nonlinear(#2625) - This release contains a large number of pull requests that increase test coverage (#2630), (#2631), (#2632), (#2637), (#2638), (#2639), (#2640), (#2641), (#2642), (#2644), (#2645), (#2646), (#2647), (#2648), (#2649), (#2650)
 - Fixed link to the coverage badge (#2634)
 - Removed the mention of MathProgBase from the README (#2635)
 - Removed 
precompilestatements. Packages using MOI should address precompilation usingPrecompileTools.jlin their own package (#2643) - Removed unneeded 
Unicodedependency (#2656) 
v1.36.0 (February 12, 2025)
Added
- Added support for 
Indicatorconstraints inUtilities.Model(#2618) (#2619) - Added features to improve performance of evaluating univariate operators in 
Nonlinear(#2620):- Added 
Nonlinear.eval_univariate_function_and_gradient Nonlinear.eval_univariate_function,Nonlinear.eval_univariate_gradient, andNonlinear.eval_univariate_hessiannow support calls with theIntegerindex of the operator instead of requiring aSymbol
 - Added 
 
Other
- Removed 
mutablefrom the struct definition ofNonlinear.ReverseAD._FunctionStorageandNonlinear.ReverseAD._SubexpressionStorage(#2621) - Fixed docstrings in the 
Coloringsubmodule (#2622) 
v1.35.2 (January 29, 2025)
Fixed
- Fixed including non-
.jlfiles inBridges(#2615) 
v1.35.1 (January 17, 2025)
Fixed
- Fixed 
Base.copy(::MOI.ScalarNonlinearFunction)(#2612) 
Other
- Performance improvements to 
FileFormats.MOFreading and writing: 
v1.35.0 (January 9, 2025)
Added
- Added 
Bridges.Constraint.InequalityToComplementsBridge. This bridge is not added by default (#2582) - Added 
Bridges.Constraint.ExponentialConeToScalarNonlinearFunctionBridge. This bridge is not added by default (#2587) - Added support for 
SetMapbridges to use the value of a bridge inmap_functioninstead of the type (#2198) 
Fixed
- Fixed a bug querying result attributes in a bridge with 
result_index != 1(#2583) - Fixed various nonlinear tests to add a starting point (#2585)
 - Fixed a bug with 
variable_startinBridges.runtests(#2592) - Fixed 
test_basic_tests forIndicatorsets to make the first variableZeroOne(#2600) - Changed the weights of the 
SOCtoPSDandRSOCtoPSDbridges so that they are used only if necessary. Previously, these depended on the order in which they were added to aLazyBridgeOptimizer(#2596) (#2598) (#2599) 
Other
- Added more tests for nonlinear programs (#2584)
 - Renamed files in 
Bridgesto reflect the type of the bridge (#2586) - Added more tests for 
DualObjectiveValue(#2588) - Added a test for multiple PSD variables in the same constraint (#2594)
 
v1.34.0 (November 7, 2024)
Added
- Added 
Bridges.Constraint.SetConversionBridge(#2536) - Added a new method to 
add_constrained_variableto support passing a tuple ofGreaterThanandLessThan. This is intended to be a fast way of adding scalar variables with both lower and upper bounds (#2574) 
Fixed
- Fixed error when adding unsupported constraints to 
Utilities.AbstractModel(#2572) - Fixed creating 
Interval,SemicontinuousandSemiintegerif the bound values are different types (#2577) - Attributes are now ignored in 
ListOfXXXAttributesSetinUtilities.UniversalFallbackif they are set tonothing(#2575) 
Other
v1.33.0 (October 28, 2024)
Added
- Added support for specifying the lower and upper bound suffixes for variable duals in 
FileFormats.NL.SolFileResults(#2567) 
Fixed
- Fixed 
MOI.objective_expr(::InvalidEvaluator)(#2569) 
v1.32.0 (October 21, 2024)
Added
- Added support for user-defined univariate operators which do not support second derivatives (#2542)
 - Added the 
NodeLimitattribute (#2552) - Added support for 
Utilities.filter_variableswithVectorNonlinearFunction(#2556) 
Fixed
- Fixed 
Bridges.Constraint.TableToMILPBridgeif there is a constant in the function (#2544) - Fixed 
FileFormats.MPSandFileFormats.LPto read separate variable bounds instead of anIntervalset (#2548) - Fixed the variable domains in 
Test.test_nonlinear_expression_hs110(#2551) - Fixed the dimension of 
VectorNonlinearFunctionin tests (#2555) - Fixed the use of 
1:length(x)inNonlinear.Coloring(#2559) - Fixed an index conflict in 
Nonlinear.Coloring(#2561) 
Other
v1.31.2 (August 30, 2024)
Fixed
- Fixed a bug writing 
FileFormats.MPSfiles withMAX_SENSEand quadratic objectives (#2539) 
Other
- Improved the docstrings in 
src/nlp.jl(#2537) 
v1.31.1 (August 7, 2024)
Fixed
- Fixed 
NLPBlockwhen used with bridges (#2524) 
Other
v1.31.0 (June 26, 2024)
Added
- Added default 
show(::IO, ::ModelLike)method (#2505) (#2510) - Set map bridges can now implement the various 
map_functionmethods to use the value of the bridge as the first argument, instead of passing the type of the bridge. (#2509) - Added 
cannot_unbridgeargument toBridges.runtests 
Fixed
- Fixed 
supports_constraintforIndicatorSOS1Bridge(#2507) - Fixed getting 
ConstraintDualin slack bridges (#2508) (#2514) (#2515) - Fixed 
FileFormats.NLto read linear constraints asScalarAffineFunction(#2512) - Changed 
default_copy_toto maintain the order of variables duringcopy_to. This change is marked as non-breaking, but it may cause different (but mathematically equivalent) models to be formulated, particularly conic models with bridges. (#2495) (#2520) 
Other
v1.30.0 (May 23, 2024)
Added
- Added input and output functions to 
Bridges.runtests(#2497) 
Fixed
- Improved the heuristic of when to write variable cones in 
FileFormats.CBF(#2494) - Fixed 
Bridges.runtestswhen model has no variable (#2499) - Fixed getting an attribute of an empty vector (#2501)
 
Other
- Fixed links in the documentation (#2502)
 
v1.29.0 (April 19, 2024)
Added
Fixed
- The CBF writer now attempts to write 
VectorOfVariablesconstraints in theVARsection, instead of automatically promoting them toVectorAffineFunction. (#2478) (#2482) (#2486) - Fixed a performance issue adding 
ScalarAffineFunctionandScalarQuadraticFunctions toNonlinear.Model(@2487) - Fixed a bug reading MPS files with integer variables and an entry in the 
BOUNDSsection (#2490) - Fixed the MPS writer to use 
LIandUIinstead ofLOandUPfor integer variables (#2492) 
Other
v1.28.1 (April 13, 2024)
Fixed
- Fixed a bug reading MPS files with integer variables and no corresponding entry in the 
BOUNDSsection (#2480) 
v1.28.0 (April 11, 2024)
Added
Fixed
- Fixed a correctness bug getting the set of a constraint that used both variable and constraint bridges (#2464) (#2472)
 - Fixed 
MethodErrorin some bridges when called withComplex-valued functions (#2468) (#2475) - Fixed reading MPS files that use 
*as the start of a name and not as a comment (#2470) 
Other
- Updated 
solver-tests.yml(#2465) - Removed two unused methods from 
MOI.Bridges(#2466) - Documentation updates (#2467), (#2473), (#2474)
 - Simplify reading CBF files (#2476)
 
v1.27.1 (March 27, 2024)
Fixed
- Fixed passing non-
IndexMapinUtilities.pass_attributes(#2458) - Fixed getting 
MOI.ListOfConstraintAttributesSetforVectorOfConstraints(#2459) 
Other
v1.27.0 (February 27, 2024)
Added
- Added support for 
sign(x)inNonlinear(#2444) 
Fixed
v1.26.0 (February 22, 2024)
Added
- Added 
.initialize_timertoNonlinear.Evaluator(#2438) 
Fixed
- Fixed writing binary variables with bounds in 
FileFormats.MPS(#2431) - Fixed parsing suffixes in 
FileFormats.NL(#2436) - Fixed writing free constraints in 
FileFormats.NL(#2437) - Fixed potential for unsafe out-of-bounds write in Hessian evaluation (#2441)
 
Other
- Fixed formatting of 
BasisStatusCodedocstring (#2430) - Refactor 
test/Fileformats/MPS/MPS.jl(#2433) 
v1.25.3 (February 14, 2024)
Fixed
- Fixed number type in 
get_fallback(#2414) - Fixed error type thrown when a variable bridge cannot un-bridge the function. It used to throw 
ErrorException. It now throwsMOI.GetAttributeNotAllowed{MOI.ConstraintFunction}. This enablesUtilities.CachingOptimizerto more uniformly implement fallbacks for common bridges likeBridges.Variable.ZerosBridge. (#2415) - Fixed tests on upcoming Julia v1.11 (#2428)
 
Other
- Improved performance of 
Bridges.Constraint.CountDistinctToMILPBridge(#2416) - Improved performance of 
FileFormats.MPSwriter (#2421) (#2424) (#2426) - Updated 
solver-tests.yml(#2423) - Fixed typos in 
src/attributes.jl(#2429) 
v1.25.2 (January 29, 2024)
Fixed
- Fixed getting 
ConstraintPrimalif variable bridges are present (#2396) - Fixed 
modify_function!forScalarQuadraticCoefficientChange(#2408) - Fixed writing 
FileFormats.MOFfiles ifScalarNonlinearFunctioncontainsScalarAffineFunctionorScalarQuadraticFunction(#2409) 
Other
- Clarified ordering of nonlinear tape in documentation (#2401)
 - Updated vale.sh (#2403) (#2404)
 - Tidied `src/Utilities/results.jl (#2411)
 
v1.25.1 (January 11, 2024)
Fixed
- Fixed 
map_indicesforAbstractAutomaticDifferentiation(#2394) - Fixed deleting a variable in 
Bridges.Variable.VectorizeBridge(#2393) - Fixed super type of 
LowerBoundAlreadySetandUpperBoundAlreadySet(#2397) 
Other
- Removed a duplicated test (#2395)
 
v1.25.0 (January 5, 2024)
Added
- Added the 
AutomaticDifferentiationBackendattribute (#2386) 
Fixed
- Fixed 
initializeforNonlinear.ExprGraphOnly(#2387) - Fixed converting 0-valued 
ScalarAffineFunctionandScalarQuadraticFunctiontoScalarNonlinearFunction(#2388) - Fixed reading 
.nlfiles with non-empty variable and constraint names (#2390) - Fixed reading 
.nlfiles with no objective (#2391) - Fixed reading 
.nlfiles with free ranged constraints (#2392) 
v1.24.0 (January 2, 2024)
Added
- Added 
get_fallbackforConstraintDualof variable bounds (#2373) 
Fixed
- Fixed 
RSOCtoPSDBridgefor dimension 2 (#2359) - Fixed getting 
ConstraintFunctionin conversion bridge (#2360) - Fixed 
map_indices(#2367) - Fixed 
SlackBridgePrimalDualStartfor non-slack bridges (#2365) - Fixed 
test_attribute_TimeLimitSec(#2370) - Fixed order of model attributes during 
copy_to(#2372) - Fixed 
ConstraintIndexconflicts between variable and constraint bridges (#2362) - Fixed corner-case deletion in bridges (#2377)
 - Fixed 
ListOfVariablesWithAttributeSetfor variable bridges (#2380) - Fixed 
SlackBridgeif scalar constant is not zero (#2382) - Fixed setting multiple bounds on a bridged variable (#2383)
 
Other
- Minor documentation improvements (#2355), (#2374)
 - Improved 
side_dimension_for_vectorized_dimension(#2356) - Added DiffOpt and ParametricOptInterface to 
solver-tests.yml(#2368) - Refactored 
SDPAModelinto a separate test file and test more widely (#2364), (#2357) 
v1.23.0 (November 29, 2023)
Added
- Added 
ConstraintPrimalStartforBridges.Constraint.GeoMeanBridge(#2348) - Added 
verbosekeyword argument toTest.runtests(#2347) - Added 
Bridges.FirstBridgeattribute (#2211) 
Fixed
- Fixed 
Test.test_model_Name_VariableName_ConstraintName(#2349) - Fixed errors thrown when querying an attribute is not supported, like when 
Utilities.CachingOptimizeris not attached to an optimizer (#2350) 
v1.22.0 (November 6, 2023)
Added
- Added new bridges (#2318)
 - Added starting values for bridges (#2330) (#2337) (#2338) (#2339)
 - Added 
ListOfVariablesWithAttributeSetandListOfConstraintsWithAttributeSet(#2331) (#2342) - Added support for printing 
ConstraintNamewhen models are printed (#2336) 
Fixed
ScalarFunctionConstantNotZeroerrors are now skipped inTest.runtests(#2325)- Fixed 
VectorNonlinearFunctionsupport inBridges.Constraint.NormOneBridgeandBridges.Constraint.NormInfinityBridge(#2324) - Fixed various 
getforConstraintFunctionto return a copy, and added tests (#2328) - Fixed 
supportsofConstraintPrimalStartandVariablePrimalStartfor some bridges (#2340) 
Other
- Fixed typo in docstring of 
ScalarAffineFunction(#2326) - Added Gurobi to 
solver-tests.yml(#2332) - Improved the error message when a bridge does not support an attribute (#2329)
 - Improved documentation for implementing a bridge (#2334)
 - Updated 
[compat]bounds inProject.toml(#2344) 
v1.21.0 (October 25, 2023)
Added
- Added 
SolutionLimitattribute (#2291) - Added support for MathOptFormat v1.6 and v1.7 (#2293) (#2298) (#2299) (#2321)
 - Added 
ScalarQuadraticCoefficientChange(#2296) (#2320) (#2322) - Added 
Utilities.modify_constants(#2300) - Added support for 
is_emptyandempty!ofNonlinear.Model(#2305) - Added 
Bridges.Objective.FunctionConversionBridge(#2303) - Added 
Bridges.ModifyBridgeNotAllowed(#2307) - Added more sets for 
Utilities.distance_to_set(#2314) 
Fixed
Other
- Fixed flakey link checking in documentation (#2297)
 - Minor documentation fixes (#2304) (#2313)
 - Fixed 
[compat]section ofProject.toml(#2310) - Added MultiObjectiveAlgorithms to 
solver-tests.yml(#2312) 
v1.20.1 (September 24, 2023)
Fixed
- Removed incorrect 
kwargsin somecopy_tomethods (#2272) - Fixed 
ConstraintDualStartforBridges.Constraint.SplitIntervalBridge(#2275) - Fixed 
MethodErrorwhen trying to modify a variable objective (#2278) - Fixed stack-overflow in 
Utilities.operate(+,...)with many arguments (#2285) (#2290) 
Other
- Added MathOptSetDistances to 
solver-tests.yml(#2265) - Updated Documenter (#2266)
 - Fixed various JET errors (#2267) (#2269) (#2270) (#2271) (#2276) (#2277) (#2289)
 - Various style improvements
 - Refactored 
src/Utilities/model.jl(#2287) 
v1.20.0 (September 7, 2023)
Added
Other
- Updated dependencies (#2258)
 - Improved performance of 
ScalarNonlinearFunctionutilities (#2259) - Fixed docstrings (#2261)
 
v1.19.0 (August 15, 2023)
Added
- Added 
VectorNonlinearFunction(#2201) - Added new bridges
 - Added 
Bridges.bridging_costfor setting a bridge-specific cost in the bridging graph (#2235) - Added 
Utilities.eval_variablessupport forScalarNonlinearFunction(#2218) (#2219) - Added support for 
ScalarNonlinearFunctioninFileFormats.NL(#2228) (#2231) - Added support for writing non-
Float64functions inFileFormats.MOF - Added 
Utilities.lazy_map(#2254) 
Fixed
- Fixed method ambiguities in 
operate(#2224) - Fixed reading LP file with a 
-infinity <= x <= +infinityvariable (#2225) - Fixed missing 
requireinTest.test_nonlinear_duals(#2230) - Fixed bug in 
ConstraintPrimalofBridges.Constraint.QuadtoSOCBridge(#2240) 
Other
- Added extensions to 
solver-tests.yml(#2229) - Refactored 
test/Benchmarks(#2234) - Fixed warnings in tests (#2241) (#2243)
 - Small refactoring of bridges for upcoming 
VectorNonlinearFunction(#2244) (#2245) - Fixed various typos (#2251) (#2255)
 - Partitioned how we run the tests on GitHub actions (#2252) (#2253)
 
v1.18.0 (June 23, 2023)
Added
- Added 
Bridges.Objective.SlackBridgePrimalDualStart(#2194) - Added 
constraint_gradient_structureandeval_constraint_gradient(#2200) 
Fixed
- Fixed a missing 
@requireinMOI.Test(#2195) (#2196) - Fixed incorrect usage of 
Utilities.operate!in bridges (#2207) (#2216) - Fixed splatting nonlinear expression with univariate operator (#2221)
 
Other
- Removed unused argument names (#2199)
 - Reduced memory requirement for tests (#2204)
 - Refactored 
Utilities.promote_operation(#2206) - Improved code style in 
Utilities/mutable_arithmetics.jl(#2209) - Refactored various methods in 
Utilities/functions.jl(#2208) (#2212) (#2213) (#2214) (#2215) 
v1.17.1 (June 6, 2023)
Fixed
- Fixed comparison of 
ScalarFunctionConstantNotZero(#2190) 
Other
- Added documentation for enum instances (#2186)
 - Updated chatroom links in documentation (#2188)
 - Changed the documentation to build on Julia v1.9 (#2191)
 
v1.17.0 (June 1, 2023)
Added
- Added 
ScalarNonlinearFunction(#2059) - Added a variety of tests for 
NormSpectralCone,NormNuclearCone, andHermitianPositiveSemidefiniteConeTriangle(#2174) - Added 
Utilities.value_typefor computing the value type of a function (#2176) 
Fixed
- Fixed support for external sets in 
Utilities.loadfromstring!(#2177) - Fixed 
promote_operationforScalarNonlinearFunction(#2179) - Fixed two issues in 
FileFormats.LPwhen reading files with quadratic functions (#2182) (#2184) 
v1.16.0 (May 16, 2023)
Added
- Added support for MathOptFormat v1.3 and v1.4 (#2158) (#2169)
 - Added new method to the nonlinear API (#2162) (#2164)
 - Added new sets
 
Fixed
- Fixed support for Julia v1.9 to work around a bug in the upstream Julia compiler (#2161) (#2163)
 - Fixed a correctness bug in 
Bridges.Constraint.HermitianToSymmetricPSDBridge(#2171) - Fixed 
convert(::VariableIndex, ::ScalarAffineFunction)when the function has terms with0coefficients (#2173) 
Other
- Fixed 
solver-tests.yml(#2157) - Updated documentation links to developer chatroom (#2160)
 - Added various tests for bridges (#2156)
 - Added checklists to the developer documentation (#2167) (#2168)
 
v1.15.1 (April 25, 2023)
Fixed
- Fixed deleting a variable in a bridged objective (#2150)
 
v1.15.0 (April 19, 2023)
Added
Fixed
- Fixed support for 
RationalinBridges.Constraint.SplitIntervalBridge(#2137) - Fixed printing of LaTeX models (#2141)
 - Fixed 
modifyinBridges.Objective.VectorSlackBridge(#2144) - Fixed NAME record with spaces in 
FileFormats.MPS(#2146) - Fixed deleting a variable in a bridged objective (#2147)
 
Other
- Add a test for variables in one-sided open 
Intervalsets (#2133) - Minor style fixes in the source code (#2148)
 
v1.14.1 (April 6, 2023)
Fixed
- Fixed a bug in 
Bridges.print_active_bridges(#2135) 
Other
- Added a warning when an ambiguous string is passed to 
excludeinTest.runtests(#2136) 
v1.14.0 (April 4, 2023)
Added
- Added support for starting values in 
Bridges.Constraint.QuadtoSOCBridge(#2115) - Added support for 
Regexin theincludeandexcludearguments toTest.runtests(#2129) - Added 
Bridges.print_active_bridgesmethods for individual objectives and constraints (#2128) 
Fixed
- Fixed 
ResultCountwhen parsing.solfiles inFileFormats.NL(#2130) 
v1.13.2 (March 21, 2023)
Fixed
- Fixed splatting of containers in 
MOI.Nonlinear(#2120) - Fixed a bug reading LP files with default bounds (#2121)
 - Fixed a bug in which 
Bridges.Constraint.HermitianToSymmetricPSDBridgewas not enabled by default (#2123) 
Other
- Fixed typos in the documentation (#2114)
 - Functions now print to the REPL in algebraic form. This is potentially breaking if you have tests which rely on a specific 
Stringform of MOI functions. (#2112) (#2126) 
v1.13.1 (March 3, 2023)
Other
- Added the Google style guide to the documentation linter Vale, and fixed the resulting warnings (#2110)
 - Improved the docstrings in 
src/functions.jl(#2108) 
v1.13.0 (February 28, 2023)
Added
- Added 
Bridges.Constraint.NumberConversionBridge(#2091) - Added 
Parameterset (#2095) (#2105) (#2106) (#2109) - Added 
with_cache_typeargument toinstantiate(#2097) - Added support for 
HermitianPositiveSemidefiniteConeTriangleinUtilities.Model(#2100) 
Fixed
- Fixed bug when 
Utilities.@product_of_setsis empty (#2101) - Fixed 
Bridges.print_active_bridgeswhen variable bridge is anAbstractScalarSet(#2107) 
Other
- Added tests for vector-valued objective functions in 
FileFormats.MOF(#2093) - Used and documented preference for 
import MathOptInterface as MOI(#2096) - Fix and test links in the documentation with 
linkcheck = true(#2098) - Improved docstrings of sets in 
src/sets.jl(#2099) - Skip checking flakey links in documentation with 
linkcheck_ignore(#2103) 
v1.12.0 (February 10, 2023)
Added
- Added support for vector-valued objective functions (#2070)
 - Added a 
Utilities.distance_to_setmethod forSecondOrderCone(#2060) 
Fixed
- Fixed a number of constraint bridges so that 
Bridges.final_touchcan be called multiple times without forcing a rebuild of the reformulation (#2089) 
Other
- Added new tests that a set 
ObjectiveFunctionappears inListOfModelAttributesSet(#2085) - Improved the docstrings of a number of constraint-programming related sets (#2087)
 
v1.11.5 (January 24, 2023)
Fixed
- Fixed a bug writing 
.lpfiles with an off-diagonal quadratic objective (#2082) 
Other
- Added 
SnoopPrecompiledirectives for reduced time-to-first-X in Julia v1.9 (#2080) 
v1.11.4 (January 12, 2023)
Fixed
- Fixed a bug reading 
.lpfiles with anIntegersection (#2078) 
v1.11.3 (January 12, 2023)
Fixed
- Fixed a performance bug when deleting a vector of constraints (#2072)
 - Fixed a bug reading 
.lpfiles with terms likex -1 y(#2076) 
Other
v1.11.2 (January 2, 2023)
Fixed
- Fixed a bug reading 
.mof.jsonfiles withConstraintNameset forVariableIndexconstraints (#2066) - Fixed a bug reading 
.mof.jsonfiles with nonlinear objectives and no constraints (#2068) 
v1.11.1 (December 22, 2022)
Fixed
- Fixed a bug reading 
.mof.jsonfiles with integer coefficients for affine and quadratic functions (#2063) 
v1.11.0 (December 2, 2022)
Added
- Added 
Utilities.PenaltyRelaxationandUtilities.ScalarPenaltyRelaxation(#1995) - Added 
Utilities.distance_to_set(#2048) - Added support for 
ConstraintPrimalStartandConstraintDualStartinFileFormats.MOF(#2056) 
Other
- Tidied these release notes (#2055)
 
v1.10.0 (November 22, 2022)
Added
- Added new methods 
set(::OptimizerWithAttributes, ::RawOptimizerAttribute, value)andget(::OptimizerWithAttributes, ::RawOptimizerAttribute)(#2049) - Added new methods 
Utilities.DoubleDicts.outer_keysandUtilities.DoubleDicts.nonempty_outer_keys(#2052) 
Fixed
- Fixed 
Bridges.Objective.SlackBridgewhen the objective function is complex-valued (#2036) (#2038) - Fixed docstring of 
Test.runteststo clarify thewarn_unsupportedargument (#2037) - Fixed reading of free variables in 
FileFormats.LP(#2044) - Fixed numerous edge cases reading files from QPLIB using 
FileFormats.LP(#2042) (#2044) - Fixed situations in which 
x^yreturns a complex value inNonlinear(#2050) 
Other
- Improved the error message thrown when a user-defined nonlinear function does not accept splatted input (#2032)
 - Removed specialized iterators for 
keysandvaluesinUtilities.CleverDicts(#2051) 
v1.9.0 (October 29, 2022)
Added
- Added default fallback for getting 
ListOfConstraintIndicesandNumberOfConstraintswhen the constraint type is unsupported by the model (#2021) - Added support for 
minandmaxin nonlinear expressions (#2023) - Added support for 
Indicator{EqualTo{T}}constraints inFileFormats.MPS(#2022) - Added default fallback for 
write_to_fileandread_from_file(#2029) 
Fixed
- Fixed 
Constraint.ZeroOneBridgeby adding new bounds as affine constraints instead of variable bounds (#1879) - Fixed reading free rows in 
FileFormats.MPSfiles (#2009) - Fixed parsing of 
OBJSENSEblocks inFileFormats.MPSfiles (#2016) (#2019) - Fixed the parsing of deeply nested nonlinear expressions by removing the use of recursion (#2020)
 - Fixed the requirements check in 
Test.test_constraint_get_ConstraintIndex(#2024) 
v1.8.2 (September 20, 2022)
Documentation
- Added vale as a documentation linter (#2002)
 - Improved styling of code blocks in the PDF (#1999) (#2000)
 - Fixed a number of typos in the documentation (#2001) (#2003)
 
v1.8.1 (September 12, 2022)
Fixed
v1.8.0 (September 1, 2022)
Added
Fixed
- Lazily construct expressions in 
Nonlinearso that expressions are updated whenNonlinear.Parametervalues are updated (#1984) - Allow 
NORM_LIMITas aTerminationStatusfor unbounded problems inTest(#1990) 
v1.7.0 (August 16, 2022)
Added
- Added new sets
 - Added new optimizer-independent options
 - Added new bridges
Bridges.Constraint.GeoMeanToPowerBridgeBridges.Constraint.HermitianToSymmetricPSDBridgeBridges.Constraint.IndicatorGreaterToLessThanBridgeBridges.Constraint.IndicatorLessToGreaterThanBridgeBridges.Constraint.SplitComplexZerosBridgeBridges.Constraint.SplitComplexEqualToBridgeBridges.Objective.QuadratizeBridge
 - Added support for generic number types in 
Utilities.loadfromstring! - Updated 
FileFormats.MOFto MathOptFormat v1.1, enabling support for constraint programming sets in theMOFfile format - Added support in various 
FileFormatsfor- indicator constraints in 
FileFormats.MPS - quadratic constraints and an objective in 
FileFormats.LP - quadratic constraints and an objective in 
FileFormats.MPS 
 - indicator constraints in 
 
Fixed
- Fixed some missing promotion rules
 
Other
- Improved the performance of Jacobian products in 
Nonlinear - Removed an un-needed 
copyinUtilities.modify_function - Various clean-ups in 
Bridges/bridge_optimizer.jl 
v1.6.1 (July 23, 2022)
Fixed
- Added support for 
ExponentialConeinMatrixOfConstraints - Fix 
PSDSquare_3test to reflect a previously fixed bug getting theConstraintDualof aPositiveSemidefiniteConeSquareconstraint 
v1.6.0 (July 2, 2022)
Added
- Added 
Bridges.needs_final_touchandBridges.final_touch - Added new bridges from constraint programming sets to mixed-integer linear programs:
AllDifferentToCountDistinctBridgeCountAtLeastToCountBelongsBridgeCountBelongsToMILPBridgeCountDistinctToMILPBridgeCountGreaterThanToMILPBridgeCircuitToMILPBridge
 
Fixed
- Relax an instance of 
::Vectorto::AbstractVectorinMOI.Nonlinear - Fix 
BinPackingToMILPBridgeto respect variable bounds - Fix 
SemiToBinaryBridgeto throw error if other bounds are set 
v1.5.0 (June 27, 2022)
Added
- Added 
GetAttributeNotAllowedfor solvers to indicate when getting an attribute encounters an error - Added 
Utilities.get_fallbacksupport forObjectiveValueandDualObjectiveValue - Added new bridges:
RootDetConeSquaretoRootDetConeTriangleLogDetConeSquaretoLogDetConeTriangleBinPackingto a mixed-integer linear programTableto a mixed-integer linear program
 - Added 
Bridges.print_active_bridgesto display the current optimal hyper-path in aBridges.LazyBridgeOptimizer 
Fixed
- Fixed 
ZeroOnetests with lower and upper bounds - Fixed error in 
FileFormats.LPwhen reading a malformed file - Fixed reading of nonlinear programs in 
FileFormats.MOF - Fixed bug in 
ConstraintDualwhen usingSquareBridge 
Other
- Improved documentation of nonlinear API
 - Documented duality convention for 
PositiveSemidefiniteConeSquaresets - Fixed typo in 
Bridges.Constraint.QuadToSOCBridgedocstring 
v1.4.0 (June 9, 2022)
Added
- Added a number of sets for constraint programming:
AllDifferentBinPackingCircuitCountAtLeastCountBelongsCountDistinctCountGreaterThanCumulativePathTable
 - Added support for user-defined hessians in 
Nonlinear - Added 
Bridges.runteststo simplify the testing of bridge implementations 
Fixed
- Fixed a bug in 
FileFormats.NLwhen writing univariate* 
Other
- Began a large refactoring of the 
Bridgessubmodule, with greatly improved documentation. 
v1.3.0 (May 27, 2022)
Added
- Add 
MOI.Nonlinearsubmodule. This is a large new submodule that has been refactored from code that was in JuMP. For now, it should be considered experimental. - Add 
FileFormats.NL.SolFileResults(::IO, ::Model) - Add 
FileFormats.NL.read!(::IO, ::Model) - Add 
MOI.modifythat accepts a vector of modifications 
Fixed
- Fixed a bug in 
Testwhich attempted to include non-.jlfiles - Fixed a bug in 
FileFormatsfor models with open interval constraints 
Other
- Fixed a performance issue in 
Utilities.DoubleDict - Various minor improvements to the documentation
 
v1.2.0 (April 25, 2022)
Added
- Add support for the 
FORMAT_REW/.rewfile format inFileFormats. 
Fixed
- Fix bug handling of default variable bounds in 
FileFormats.LP - Fix 
FileFormats.MPSto not writeOBJSENSEby default since this is only supported by some readers. 
v1.1.2 (March 31, 2022)
Fixed
- Fix a range of bugs in 
FileFormats.LP - Fix reading of problem dimensions in 
FileFormats.SDPA 
v1.1.1 (March 23, 2022)
Fixed
- Fix bug in 
test_model_UpperBoundAlreadySet - Fix bug in 
test_infeasible_tests - Fix bug in 
test_objective_ObjectiveFunction_blank - Relax restriction of 
MOI.AbstractOptimizertoMOI.ModelLikeinUtilities.CachingOptimizerandinstantiate. 
New tests
- Add 
test_conic_empty_matrixthat checks conic solvers support problems with no variables. 
v1.1.0 (March 2, 2022)
Added
- Added 
MOI.Utilities.throw_unsupported(::UniversalFallback)for simplifying solver wrappers which copy from aUniversalFallback. 
v1.0.2 (March 1, 2022)
Fixed
- Fixed a bug in the 
test_model_ScalarFunctionConstantNotZerotest - Fixed the error type when an 
AbstractFunctionConversionBridgecannot get or set an attribute - Identified a correctness bug in 
RSOCtoPSDBridge. We now thrown an error instead of returning an incorrect result. 
v1.0.1 (February 25, 2022)
Fixed
- Fixed a bug in which OptimizerAttributes were not copied in CachingOptimizer
 - Fixed a bug in which 
shift_constantdid not promote mixed types of coefficients - Fixed a bug in which deleting a constraint of a bridged variable threw 
ErrorExceptioninstead ofMOI.DeleteNotAllowed - Fixed a bug in which 
add_constraintinMatrixOfConstraintsdid not canonicalize the function - Fixed a bug when modifying scalar constants of a function containing a bridged variable
 - Fixed a bug in which 
final_touchwas not always called with aCachingOptimizer 
v1.0.0 (February 17, 2022)
Although tagged as a breaking release, v1.0.0 is v0.10.9 with deprecations removed, similar to how Julia 1.0 was Julia 0.7 with deprecations removed.
Breaking
- Julia 1.6 is now the minimum supported version
 - All deprecations have been removed
 
Troubleshooting problems when updating
If you experience problems when updating, you are likely using previously deprecated features. (By default, Julia does not warn when you use deprecated features.)
To find the deprecated features you are using, start Julia with --depwarn=yes:
$ julia --depwarn=yesThen install MathOptInterface v0.10.9:
julia> using Pkg
julia> pkg"add MathOptInterface@0.10"And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.
v0.10.9 (February 16, 2022)
Added
- Added 
MOI.Utilities.FreeVariablesas a newVariablesConstrainerfor conic solvers - Added 
MOI.default_cachefor specifying the model used inCachingOptimizer 
Fixed
- Fixed LaTeX printing of 
MOI.Intervalsets 
Other
- Added Aqua.jl as a CI check, and fixed suggested issues
 - The constructors of GeoMeanBridge, StructOfConstraints, and CachingOptimizer were changed from outer to inner constructors. This change is technically breaking, but does not impact users who followed the documented API.
 
v0.10.8 (February 3, 2022)
Added
- Added a 
Base.read!forFileFormats.LP. 
Fixed
- Fixed a bug in 
MutableSparseMatrix - Fixed a bug when calling 
operate!(vcat, ...)withNumberarguments - Removed unintended export of deprecated symbols
 - Fixed a bug with 
PowerConeandDualPowerConeinMatrixOfConstraints. 
v0.10.7 (January 5, 2022)
Added
- Added test for modifying the constant vector in a 
VectorAffineFunction-in-Zerosconstraint. 
Fixed
- Fixed the order in which sets are added to a 
LazyBridgeOptimizer. Compared to v0.10.6, this may result in bridged models being created with a different number (and order) of variables and constraints. However, it was necessary to fix cases which were previously rejected as unsupported, even though there was a valid bridge transformation. - Fixed an error message in 
FileFormats.CBF - Fixed comparison in 
test_linear_integration_Interval - Fixed errors for 
ConstraintPrimalin aCachingOptimizer - Fixed printing of models with non-
Float64coefficients. 
Other
- Various improvements to reduce time-to-first-solve latency
 - Improved error message when an optimizer does not support 
compute_conflict! 
v0.10.6 (November 30, 2021)
Added
- Added new documentation and tests for infeasibility certificates
 - Added a version control system for the tests in 
MOI.Test.runtests. Passexclude_tests_after = v"0.10.5"to run tests added in v0.10.5 and earlier. MOI.Test.runtestsnow supports generic number types. To specify the number typeT, passMOI.Test.Config(T).- Added 
infeasible_statustoMOI.Test.Configfor solvers which returnLOCALLY_INFEASIBLE - CachingOptimizers now use a fallback for 
ConstraintPrimal. This should enable solvers using a CachingOptimizer to pass tests requiringConstraintPrimal. 
Fixed
- Fixed a StackOverflow bug in 
copy_to - Fixed error thrown when nonconvex quadratic constraints cannot be bridged
 - Fixed a bug in 
copy_toforFileFormats.NL.Model - Fixed a bug in 
FileFormats.NLwhen printing large integers - Remove a common test failure for 
LowerBoundAlreadySettests Utilities.num_rowsis now exported- Remove parts of failing 
test_model_copy_to_xxxtests due to bridges 
v0.10.5 (November 7, 2021)
Fixed
- Fixed getter in 
UniversalFallback - Fixed 
test_solve_conflict_zeroone_ii 
Other
- Make 
normalize_and_add_constraintmore flexible - Update paper BibTeX
 
v0.10.4 (October 26, 2021)
Added
- Add 
SolverVersionattribute - Add new tests:
test_solve_conflict_zeroone_iitest_nonlinear_objective
 Utilities.VariablesContainernow supportsConstraintFunctionandConstraintSet- The documentation is now available as a PDF
 
Other
- Update to MutableArithmetics 0.3
 - Various improvements to the documentation
 
v0.10.3 (September 18, 2021)
Fixed
- Fixed bug which prevented callbacks from working through a CachingOptimizer
 - Fixed bug in 
Testsubmodule 
v0.10.2 (September 16, 2021)
- Updated MathOptFormat to v1.0
 - Updated JSONSchema to v1.0
 - Added 
Utilities.set_with_dimension - Added two-argument 
optimize!(::AbstractOptimizer, ::ModelLike) - The experimental feature 
copy_to_and_optimize!has been removed Detbridges now support gettingConstraintFunctionandConstraintSet- Various minor bug fixes identified by improved testing
 
v0.10.1 (September 8, 2021)
- Various fixes to 
MOI.Test 
v0.10.0 (September 6, 2021)
MOI v0.10 is a significant breaking release. There are a large number of user-visible breaking changes and code refactors, as well as a substantial number of new features.
Breaking in MOI
SingleVariablehas been removed; useVariableIndexinsteadSingleVariableConstraintNameErrorhas been renamed toVariableIndexConstraintNameErrorSettingSingleVariableFunctionNotAllowedhas been renamed toSettingVariableIndexFunctionNotAllowedVariableIndexconstraints should not supportConstraintNameVariableIndexconstraints should not supportConstraintBasisStatus; implementVariableBasisStatusinsteadListOfConstraintshas been renamed toListOfConstraintTypesPresentListOfConstraintTypesPresentshould now returnTuple{Type,Type}instead ofTuple{DataType,DataType}SolveTimehas been renamed toSolveTimeSecIndicatorSethas been renamed toIndicatorRawParameterhas been renamed toRawOptimizerAttributeand now takesStringinstead ofAnyas the only argument- The 
.Nfield in result attributes has been renamed to.result_index - The 
.variable_indexfield inScalarAffineTermhas been renamed to.variable - The 
.variable_index_1field inScalarQuadraticTermhas been renamed to.variable_1 - The 
.variable_index_2field inScalarQuadraticTermhas been renamed to.variable_2 - The order of 
affine_termsandquadratic_termsinScalarQuadraticFunctionandVectorQuadraticFunctionhave been reversed. Both functions now accept quadratic, affine, and constant terms in that order. - The 
index_valuefunction has been removed. Use.valueinstead. isapproxhas been removed forSOS1andSOS2.- The 
dimensionargument toComplements(dimension::Int)should now be the length of the corresponding function, instead of half the length. AnArgumentErroris thrown ifdimensionis not even. copy_tono longer takes keyword arguments:copy_names: now copy names if they are supported by the destination solverfilter_constraints: useUtilities.ModelFilterinsteadwarn_attributes: never warn about optimizer attributes
Breaking in Bridges
Constraint.RSOCBridgehas been renamed toConstraint.RSOCtoSOCBridgeConstraint.SOCRBridgehas been renamed toConstraint.SOCtoRSOCBridge- Bridges now return vectors that can be modified by the user. Previously, some bridges returned views instead of copies.
 Bridges.IndexInVectorhas been unified into a single type. Previously, there was a different type for each submodule withinBridges- The signature of indicator bridges has been fixed. Use 
MOI.Bridges.Constraint.IndicatortoSOS1{Float64}(model). 
Breaking in FileFormats
FileFormats.MOF.Modelno longer acceptsvalidateargument. Use the JSONSchema package to validate the MOF file. See the documentation for more information.
Breaking in Utilities
- The datastructure of 
Utilities.Model(and models created withUtilities.@model) has been significantly refactored in a breaking way. This includes the way that objective functions and variable-related information is stored. Utilities.supports_default_copyhas been renamed tosupports_incremental_interfaceUtilities.automatic_copy_tohas been renamed toUtilities.default_copy_to- The allocate-load API has been removed
 CachingOptimizers are now initialized asEMPTY_OPTIMIZERinstead ofATTACHED_OPTIMIZER. If your code relies on the optimizer being attached, callMOIU.attach_optimizer(model)after creation.- The field names of 
Utilities.IndexMaphave been renamed tovar_mapandcon_map. Accessing these fields directly is considered a private detail that may change. Use the publicgetindexandsetindex!API instead. - The size argument to 
Utilities.CleverDicts.CleverDict(::Integer)has been removed. - The size argument to 
Utilities.IndexMap(::Integer)has been removed. Utilities.DoubleDictshave been significantly refactored. Consult the source code for details.Utilities.test_models_equalhas been moved toMOI.Test
Breaking in Test
MOI.Testhas been renamed toMOI.DeprecatedTest- An entirely new 
MOI.Testsubmodule has been written. See the documentation for details. The newMOI.Testsubmodule may find many bugs in the implementations of existing solvers that were previously untested. 
Other changes:
attribute_value_typehas been addedcopy_to_and_optimize!has been addedVariableBasisStatushas been addedprint(model)now prints a human-readable description of the model- Various improvements to the 
FileFormatssubmoduleFileFormats.CBFwas refactored and received bugfixes- Support for MathOptFormat v0.6 was added in 
FileFormats.MOF FileFormats.MPShas had bugfixes and support for more features such asOBJSENSEand objective constants.FileFormats.NLhas been added to support nonlinear files
 - Improved type inference throughout to reduce latency
 
Updating
A helpful script when updating is:
for (root, dirs, files) in walkdir(".")
    for file in files
        if !endswith(file, ".jl")
            continue
        end
        path = joinpath(root, file)
        s = read(path, String)
        for pair in [
            ".variable_index" => ".variable",
            "RawParameter" => "RawOptimizerAttribute",
            "ListOfConstraints" => "ListOfConstraintTypesPresent",
            "TestConfig" => "Config",
            "attr.N" => "attr.result_index",
            "SolveTime" => "SolveTimeSec",
            "DataType" => "Type",
            "Utilities.supports_default_copy_to" =>
                "supports_incremental_interface",
            "SingleVariableConstraintNameError" =>
                "VariableIndexConstraintNameError",
            "SettingSingleVariableFunctionNotAllowed" =>
                "SettingVariableIndexFunctionNotAllowed",
            "automatic_copy_to" => "default_copy_to",
        ]
            s = replace(s, pair)
        end
        write(path, s)
    end
endv0.9.22 (May 22, 2021)
This release contains backports from the ongoing development of the v0.10 release.
- Improved type inference in 
Utilities,BridgesandFileFormatssubmodules to reduce latency. - Improved performance of 
Utilities.is_canonical. - Fixed 
Utilities.pass_nonvariable_constraintswith bridged variables. - Fixed performance regression of 
Utilities.Model. - Fixed ordering of objective setting in parser.
 
v0.9.21 (April 23, 2021)
- Added 
supports_shift_constant. - Improve performance of bridging quadratic constraints.
 - Add precompilation statements.
 - Large improvements to the documentation.
 - Fix a variety of inference issues, benefiting precompilation and reducing initial latency.
 RawParameters are now ignored when resetting aCachingOptimizer. Previously, changing the underlying optimizer afterRawParameters were set would throw an error.Utilities.AbstractModelis being refactored. This may break users interacting with private fields of a model generated using@model.
v0.9.20 (February 20, 2021)
- Improved performance of 
Utilities.ScalarFunctionIterator - Added support for 
compute_conflictto MOI layers - Added test with zero off-diagonal quadratic term in objective
 - Fixed double deletion of nested bridged 
SingleVariable/VectorOfVariablesconstraints - Fixed modification of un-set objective
 - Fixed function modification with duplicate terms
 - Made unit tests abort without failing if the problem class is not supported
 - Formatted code with JuliaFormatter
 - Clarified 
BasisStatusCode's docstring 
v0.9.19 (December 1, 2020)
- Added 
CallbackNodeStatusattribute - Added bridge from 
GreaterThanorLessThantoInterval - Added tests for infeasibility certificates and double optimize
 - Fixed support for Julia v1.6
 - Re-organized MOI docs and added documentation for adding a test
 
v0.9.18 (November 3, 2020)
- Various improvements for working with complex numbers
 - Added 
GeoMeantoRelEntrBridgeto bridge aGeometricMeanConeconstraint to a relative entropy constraint 
v0.9.17 (September 21, 2020)
- Fixed 
CleverDictwith variable of negative index value - Implement 
supports_add_constrained_variableforMockOptimizer 
v0.9.16 (September 17, 2020)
- Various fixes:
- 32-bit support
 CleverDictwith abstract value type- Checks in test suite
 
 
v0.9.15 (September 14, 2020)
- Bridges improvements:
- (R)SOCtoNonConvexQuad bridge
 - ZeroOne bridge
 - Use 
supports_add_constrained_variableinLazyBridgeOptimizer - Exposed 
VariableBridgeCostandConstraintBridgeCostattributes - Prioritize constraining variables on creation according to these costs
 - Refactor bridge debugging
 
 - Large performance improvements across all submodules
 - Lots of documentation improvements
 - FileFormats improvements:
- Update MathOptFormat to v0.5
 - Fix supported objectives in 
FileFormats 
 - Testing improvements:
- Add name option for 
basic_constraint_test 
 - Add name option for 
 - Bug fixes and missing methods
- Add 
lengthfor iterators - Fix bug with duplicate terms
 - Fix order of 
LinearOfConstraintIndices 
 - Add 
 
v0.9.14 (May 30, 2020)
- Add a solver-independent interface for accessing the set of conflicting constraints an Irreducible Inconsistent Subsystem (#1056).
 - Bump JSONSchema dependency from v0.2 to v0.3 (#1090).
 - Documentation improvements:
- Fix typos (#1054, #1060, #1061, #1064, #1069, #1070).
 - Remove the outdated recommendation for a package implementing MOI for a solver 
XXXto be calledMathOptInterfaceXXX(#1087). 
 - Utilities improvements:
- Fix 
is_canonicalfor quadratic functions (#1081, #1089). - Implement 
add_constrained_variable[s]forCachingOptimizerso that it is added as constrained variables to the underlying optimizer (#1084). - Add support for custom objective functions for 
UniversalFallback(#1086). - Deterministic ordering of constraints in 
UniversalFallback(#1088). 
 - Fix 
 - Testing improvements:
- Add 
NormOneCone/NormInfinityConetests (#1045). 
 - Add 
 - Bridges improvements:
 - FileFormats improvements:
 
v0.9.13 (March 24, 2020)
- Added tests for 
SemicontinuousandSemiintegervariables (#1033). - Added tests for using 
ExprGraphs from NLP evaluators (#1043). - Update version compatibilities of dependencies (#1034, #1051, #1052).
 - Fixed typos in documentation (#1044).
 
v0.9.12 (February 28, 2020)
- Fixed writing 
NLPBlockin MathOptFormat (#1037). - Fixed 
MockOptimizerfor result attributes with non-one result index (#1039). - Updated test template with 
instantiate(#1032). 
v0.9.11 (February 21, 2020)
- Add an option for the model created by 
Utilities.@modelto be a subtype ofAbstractOptimizer(#1031). - Described dual cone in docstrings of 
GeoMeanConeandRelativeEntropyCone(#1018, #1028). - Fixed typos in documentation (#1022, #1024).
 - Fixed warning of unsupported attribute (#1027).
 - Added more rootdet/logdet conic tests (#1026).
 - Implemented 
ConstraintDualforConstraint.GeoMeanBridge,Constraint.RootDetBridgeandConstraint.LogDetBridgeand test duals in tests withGeoMeanConeandRootDetConeTriangleandLogDetConeTrianglecones (#1025, #1026). 
v0.9.10 (January 31, 2020)
- Added 
OptimizerWithAttributesgrouping an optimizer constructor and a list of optimizer attributes (#1008). - Added 
RelativeEntropyConewith corresponding bridge into exponential cone constraints (#993). - Added 
NormSpectralConeandNormNuclearConewith corresponding bridges into positive semidefinite constraints (#976). - Added 
supports_constrained_variable(s)(#1004). - Added 
dual_set_type(#1002). - Added tests for vector specialized version of 
delete(#989, #1011). - Added PSD3 test (#1007).
 - Clarified dual solution of 
Tests.pow1vandTests.pow1f(#1013). - Added support for 
EqualToandZeroinBridges.Constraint.SplitIntervalBridge(#1005). - Fixed 
Utilities.vectorizefor empty vector (#1003). - Fixed free variables in LP writer (#1006).
 
v0.9.9 (December 29, 2019)
- Incorporated MathOptFormat.jl as the FileFormats submodule. FileFormats provides readers and writers for a number of standard file formats and MOF, a file format specialized for MOI (#969).
 - Improved performance of deletion of vector of variables in 
MOI.Utilities.Model(#983). - Updated to MutableArithmetics v0.2 (#981).
 - Added 
MutableArithmetics.promote_operationallocation tests (#975). - Fixed inference issue on Julia v1.1 (#982).
 
v0.9.8 (December 19, 2019)
- Implemented MutableArithmetics API (#924).
 - Fixed callbacks with 
CachingOptimizer(#959). - Fixed 
MOI.dimensionforMOI.Complements(#948). - Added fallback for 
add_variables(#972). - Added 
is_diagonal_vectorized_indexutility (#965). - Improved linear constraints display in manual (#963, #964).
 - Bridges improvements:
- Added 
IndicatorSettoSOS1bridge (#877). - Added support for starting values for 
Variable.VectorizeBridge(#944). - Fixed 
MOI.add_constraintswith non-bridged variable constraint on bridged variable (#951). - Fixed corner cases and docstring of 
GeoMeanBridge(#961, #962, #966). - Fixed choice between variable or constraint bridges for constrained variables (#973).
 - Improve performance of bridge shortest path (#945, #946, #956).
 - Added docstring for 
test_delete_bridge(#954). - Added Variable bridge tests (#952).
 
 - Added 
 
v0.9.7 (October 30, 2019)
- Implemented 
_result_index_fieldforNLPBlockDual(#934). - Fixed copy of model with starting values for vector constraints (#941).
 - Bridges improvements:
- Improved performance of 
add_bridgeand addedhas_bridge(#935). - Added 
AbstractSetMapBridgefor bridges between setsS1,S2such that there is a linear mapAsuch thatA*S1 = S2(#933). - Added support for starting values for 
FlipSignBridge,VectorizeBridge,ScalarizeBridge,SlackBridge,SplitIntervalBridge,RSOCBridge,SOCRBridgeNormInfinityBridge,SOCtoPSDBridgeandRSOCtoPSDBridge(#933, #936, #937, #938, #939). 
 - Improved performance of 
 
v0.9.6 (October 25, 2019)
- Added complementarity constraints (#913).
 - Allowed 
ModelLikeobjects as value of attributes (#928). - Testing improvements:
 - Bridges improvements:
 
v0.9.5 (October 9, 2019)
- Clarified 
PrimalStatus/DualStatusto beNO_SOLUTIONifresult_indexis out of bounds (#912). - Added tolerance for checks  and use 
ResultCount+ 1 for theresult_indexinMOI.Test.solve_result_status(#910, #917). - Use 
0.5instead of2.0for power in PowerCone inbasic_constraint_test(#916). - Bridges improvements:
 
v0.9.4 (October 2, 2019)
- Added solver-independent MIP callbacks (#782).
 - Implements submit for 
Utilities.CachingOptimizerandBridges.AbstractBridgeOptimizer(#906). - Added tests for result count of solution attributes (#901, #904).
 - Added 
NumberOfThreadsattribute (#892). - Added 
Utilities.get_boundsto get the bounds on a variable (#890). - Added a note on duplicate coefficients in documentation (#581).
 - Added result index in 
ConstraintBasisStatus(#898). - Added extension dictionary to 
Utilities.Model(#884, #895). - Fixed deletion of constrained variables for CachingOptimizer (#905).
 - Implemented 
Utilities.shift_constraintforTest.UnknownScalarSet(#896). - Bridges improvements:
 
v0.9.3 (September 20, 2019)
- Fixed ambiguity detected in Julia v1.3 (#891, #893).
 - Fixed missing sets from 
ListOfSupportedConstraints(#880). - Fixed copy of 
VectorOfVariablesconstraints with duplicate indices (#886). - Added extension dictionary to MOIU.Model (#884).
 - Implemented 
MOI.getfor function and set forGeoMeanBridge(#888). - Updated documentation for SingleVariable indices and bridges (#885).
 - Testing improvements:
 - Improvements for arbitrary coefficient type:
 
v0.9.2 (September 5, 2019)
- Implemented model printing for 
MOI.ModelLikeand specialized it for models defined in MOI (864). - Generalized 
contlineartests for arbitrary coefficient type (#855). - Fixed 
supports_constraintforSemiintegerandSemicontinuousandsupportsforObjectiveFunction(#859). - Fixed Allocate-Load copy for single variable constraints (#856).
 - Bridges improvements:
 
v0.9.1 (August 22, 2019)
- Fix support for Julia v1.2 (#834).
 - L1 and L∞ norm epigraph cones and corresponding bridges to LP were added (#818).
 - Added tests to 
MOI.Test.nametest(#833). - Fix 
MOI.Test.soc3testfor solvers not supporting infeasibility certificates (#839). - Implements 
operatefor operators*and/between vector function and constant (#837). - Implements 
showforMOI.Utilities.IndexMap(#847). - Fix corner cases for mapping of variables in 
MOI.Utilities.CachingOptimizerand substitution of variables inMOI.Bridges.AbstractBridgeOptimizer(#848). - Fix transformation of constant terms for 
MOI.Bridges.Constraint.SOCtoPSDBridgeandMOI.Bridges.Constraint.RSOCtoPSDBridge(#840). 
v0.9.0 (August 13, 2019)
- Support for Julia v0.6 and v0.7 was dropped (#714, #717).
 - A 
MOI.Utilities.Modelimplementation ofModelLike, this should replace most use cases ofMOI.Utilities.@model(#781). add_constrained_variableandadd_constrained_variableswere added (#759).- Support for indicator constraints was added (#709, #712).
 DualObjectiveValueattribute was added (#473).RawParameterattribute was added (#733).- A 
dual_setfunction was added (#804). - A 
Benchmarkssubmodule was added to facilitate solver benchmarking (#769). - A 
submitfunction was added, this may for instance allow the user to submit solutions or cuts to the solver from a callback (#775). - The field of 
ObjectiveValuewas renamed toresult_index(#729). - The 
_constantandUtilities.getconstantfunction were renamed toconstant REDUCTION_CERTIFICATEresult status was added (#734).- Abstract matrix sets were added (#731).
 - Testing improvements:
- The testing guideline was updated (#728).
 - Quadratic tests were added (#697).
 - Unit tests for 
RawStatusString,SolveTime,SilentandSolverNamewere added (#726, #741). - A rotated second-order cone test was added (#759).
 - A power cone test was added (#768).
 - Tests for 
ZeroOnevariables with variable bounds were added (#772). - An unbounded test was added (#773).
 - Existing tests had a few updates (#702, #703, #763).
 
 - Documentation improvements:
 - Utilities improvements:
- A 
CleverDictutility was added for a vector that automatically transform into a dictionary once a first index is removed (#767). - The 
Utilities.constantfunction was renamed toUtilities.constant_vector(#740). - Implement optimizer attributes for CachingOptimizer (#745).
 - Rename 
Utilities.add_scalar_constrainttoUtilities.normalize_and_add_constraint(#801). operatewithvcat,SingleVariableandVectorOfVariablesnow returns aVectorOfVariables(#616).- Fix a type piracy of 
operate(#784). - The 
load_constraintfallback signature was fixed (#760). - The 
set_dotfunction was extended to work with sparse arrays (#805). 
 - A 
 - Bridges improvements:
- The bridges no longer store the constraint function and set before it is bridged, the bridges now have to implement 
ConstraintFunctionandConstraintSetif the user wants to recover them. As a consequence, the@bridgemacro was removed (#722). - Bridge are now instantiated with a 
bridge_constraintfunction instead of using a constructor (#730). - Fix constraint attributes for bridges (#699).
 - Constraint bridges were moved to the 
Bridges/Constraintsubmodule so they should now inherit fromMOI.Bridges.Constraint.Abstractand should implementMOI.Bridges.Constraint.concrete_bridge_typeinstead ofMOI.Bridges.concrete_bridge_type(#756). - Variable bridges were added in (#759).
 - Various improvements (#746, #747).
 
 - The bridges no longer store the constraint function and set before it is bridged, the bridges now have to implement 
 
v0.8.4 (March 13, 2019)
- Performance improvement in 
default_copy_toand bridge optimizer (#696). - Add 
Silentand implement setting optimizer attributes in caching and mock optimizers (#695). - Add 
Functionizebridges (SingleVariable and VectorOfVariables) (#659). - Minor typo fixes (#694).
 
v0.8.3 (March 6, 2019)
- Use zero constant in scalar constraint function of 
MOI.Test.copytest(#691). - Fix variable deletion with 
SingleVariableobjective function (#690). - Fix 
LazyBridgeOptimizerwith bridges that add no constraints (#689). - Error message improvements (#673, #685, #686, #688).
 - Documentation improvements (#682, #683, #687).
 - Basis status:
 - Fix inference of 
NumberOfVariablesandNumberOfConstraints(#677). - Implement division between a quadratic function and a number (#675).
 
v0.8.2 (February 7, 2019)
- Add 
RawStatusStringattribute (#629). - Do not set names to the optimizer but only to the cache in 
CachingOptimizer(#638). - Make scalar MOI functions act as scalars in broadcast (#646).
 - Add function utilities:
 - Improve support for starting values:
 - Bridges improvements:
- Fix 
StackOverFlowinLazyBridgeOptimizerwhen there is a cycle in the graph of bridges. - Add 
Slackbridges (#610, #650). - Add 
FlipSignbridges (#658). 
 - Fix 
 - Add tests with duplicate coefficients in 
ScalarAffineFunctionandVectorAffineFunction(#639). - Use tolerance to compare 
VariablePrimalinrotatedsoc1test (#632). - Use a zero constant in 
ScalarAffineFunctionof constraints inpsdt2(#622). 
v0.8.1 (January 7, 2019)
- Adding an NLP objective now overrides any objective set using the 
ObjectiveFunctionattribute (#619). - Rename 
fullbridgeoptimizerintofull_bridge_optimizer(#621). - Allow custom constraint types with 
full_bridge_optimizer(#617). - Add 
Vectorizebridge which transforms scalar linear constraints into vector linear constraints (#615). 
v0.8.0 (December 18, 2018)
- Rename all enum values to follow the JuMP naming guidelines for constants, for example, 
OptimalbecomesOPTIMAL, andDualInfeasiblebecomesDUAL_INFEASIBLE. - Rename CachingOptimizer methods for style compliance.
 - Add an 
MOI.TerminationStatusCodecalledALMOST_DUAL_INFEASIBLE. 
v0.7.0 (December 13, 2018)
- Test that 
MOI.TerminationStatusisMOI.OptimizeNotCalledbeforeMOI.optimize!is called. - Check 
supports_default_copy_toin tests (#594). - Key pieces of information like optimality, infeasibility, etc., are now reported through 
TerminationStatusCode. It is typically no longer necessary to check the result statuses in addition to the termination status. - Add perspective dimension to log-det cone (#593).
 
v0.6.4 (November 27, 2018)
- Add 
OptimizeNotCalledtermination status (#577) and improve documentation of other statuses (#575). - Add a solver naming guideline (#578).
 - Make 
FeasibilitySensethe defaultObjectiveSense(#579). - Fix 
Utilities.@modelandBridges.@bridgemacros for functions and sets defined outside MOI (#582). - Document solver-specific attributes (#580) and implement them in 
Utilities.CachingOptimizer(#565). 
v0.6.3 (November 16, 2018)
- Variables and constraints are now allowed to have duplicate names. An error is thrown only on lookup. This change breaks some existing tests. (#549)
 - Attributes may now be partially set (some values could be 
nothing). (#563) - Performance improvements in Utilities.Model (#549, #567, #568)
 - Fix bug in QuadtoSOC (#558).
 - New 
supports_default_copy_tomethod that optimizers should implement to control caching behavior. - Documentation improvements.
 
v0.6.2 (October 26, 2018)
- Improve hygiene of 
@modelmacro (#544). - Fix bug in copy tests (#543).
 - Fix bug in UniversalFallback attribute getter (#540).
 - Allow all correct solutions for 
solve_blank_objunit test (#537). - Add errors for Allocate-Load and bad constraints (#534).
 - [performance] Add specialized implementation of 
hashforVariableIndex(#533). - [performance] Construct the name to object dictionaries lazily in model (#535).
 - Add the 
QuadtoSOCbridge which transformsScalarQuadraticFunctionconstraints intoRotatedSecondOrderCone(#483). 
v0.6.1 (September 22, 2018)
- Enable 
PositiveSemidefiniteConeSquareset and quadratic functions inMOIB.fullbridgeoptimizer(#524). - Add warning in the bridge between 
PositiveSemidefiniteConeSquareandPositiveSemidefiniteConeTrianglewhen the matrix is almost symmetric (#522). - Modify 
MOIT.copytestto not add multiples constraints on the same variable (#521). - Add missing keyword argument in one of 
MOIU.add_scalar_constraintmethods (#520). 
v0.6.0 (August 30, 2018)
- The 
MOIU.@modelandMOIB.@bridgemacros now support functions and sets defined in external modules. As a consequence, function and set names in the macro arguments need to be prefixed by module name. - Rename functions according to the JuMP style guide:
copy!with keyword argumentscopynamesandwarnattributes->copy_towith keyword argumentscopy_namesandwarn_attributes;set!->set;addvariable[s]!->add_variable[s];supportsconstraint->supports_constraint;addconstraint[s]!->add_constraint[s];isvalid->is_valid;isempty->is_empty;Base.delete!->delete;modify!->modify;transform!->transform;initialize!->initialize;write->write_to_file; andread!->read_from_file.
 - Remove 
free!(useBase.finalizeinstead). - Add the 
SquarePSDbridge which transformsPositiveSemidefiniteConeTriangleconstraints intoPositiveSemidefiniteConeTriangle. - Add result fallback for 
ConstraintDualof variable-wise constraint,ConstraintPrimalandObjectiveValue. - Add tests for 
ObjectiveBound. - Add test for empty rows in vector linear constraint.
 - Rework errors: 
CannotErrorhas been renamedNotAllowedErrorand the distinction betweenUnsupportedErrorandNotAllowedErroris now about whether the element is not supported (for example, it cannot be copied a model containing this element) or the operation is not allowed (either because it is not implemented, because it cannot be performed in the current state of the model, or because it cannot be performed for a specific index) cangetis removed.NoSolutionis added as a result status to indicate that the solver does not have either a primal or dual solution available (See #479).
v0.5.0 (August 5, 2018)
- Fix names with CachingOptimizer.
 - Cleanup thanks to @mohamed82008.
 - Added a universal fallback for constraints.
 - Fast utilities for function canonicalization thanks to @rdeits.
 - Renamed 
dimensionfield toside_dimensionin the context of matrix-like sets. - New and improved tests for cases like duplicate terms and 
ObjectiveBound. - Removed 
cantransform,canaddconstraint,canaddvariable,canset,canmodify, andcandeletefunctions from the API. They are replaced by a new set of errors that are thrown: Subtypes ofUnsupportedErrorindicate unsupported operations, while subtypes ofCannotErrorindicate operations that cannot be performed in the current state. - The API for 
copy!is updated to remove the CopyResult type. - Updates for the new JuMP style guide.
 
v0.4.1 (June 28, 2018)
- Fixes vector function modification on 32 bits.
 - Fixes Bellman-Ford algorithm for bridges.
 - Added an NLP test with 
FeasibilitySense. - Update modification documentation.
 
v0.4.0 (June 23, 2018)
- Helper constructors for 
VectorAffineTermandVectorQuadraticTerm. - Added 
modify_lhstoTestConfig. - Additional unit tests for optimizers.
 - Added a type parameter to 
CachingOptimizerfor theoptimizerfield. - New API for problem modification (#388)
 - Tests pass without deprecation warnings on Julia 0.7.
 - Small fixes and documentation updates.
 
v0.3.0 (May 25, 2018)
- Functions have been redefined to use arrays-of-structs instead of structs-of-arrays.
 - Improvements to 
MockOptimizer. - Significant changes to 
Bridges. - New and improved unit tests.
 - Fixes for Julia 0.7.
 
v0.2.0 (April 24, 2018)
- Improvements to and better coverage of 
Tests. - Documentation fixes.
 SolverNameattribute.- Changes to the NLP interface (new definition of variable order and arrays of structs for bound pairs and sparsity patterns).
 - Addition of NLP tests.
 - Introduction of 
UniversalFallback. copynameskeyword argument toMOI.copy!.- Add Bridges submodule.
 
v0.1.0 (February 28, 2018)
- Initial public release.
 - The framework for MOI was developed at the JuMP-dev workshop at MIT in June 2017 as a sorely needed replacement for MathProgBase.