Release notes
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version 0.15.0 (February 19, 2026)
This breaking release removes a number of ParametricOptInterface-specific features in favor of the officially supported MathOptInterface functions for dealing with parameters.
Breaking
Removed
QuadraticObjectiveCoef(#213)This breaking change removed
QuadraticObjectiveCoefand all related functions.To represent a parameter multiplied by a quadratic term, you must now use
MOI.ScalarNonlinearFunctionto define a cubic polynomial:using JuMP, HiGHS import ParametricOptInterface as POI model = Model(() -> POI.Optimizer(HiGHS.Ootimizer)) @variable(model, x) @variable(model, p in Parameter(1)) @objective(model, Min, p * x^2)Removed
ParameterValueandParameterDual(#219)This breaking change removed
ParameterValueandParameterDualand all related functions.In JuMP, follow these replacements:
using JuMP model = Model() @variable(model, x) @variable(model, p in Parameter(1)) # Replace MOI.get(model, POI.ParameterValue(), p) with p_value = parameter_value(p) # Replace MOI.set(model, POI.ParameterValue(), p, 2.0) with set_parameter_value(p, 2.0) # Replace MOI.get(model, POI.ParameterDual(), p) with p_dual = dual(ParameterRef(p))In MathOptInterface, follow these replacements:
import MathOptInterface as MOI model = MOI.Utilities.Model{Float64}() p, cp in MOI.add_constrained_variable(model, MOI.Parameter(1.0)) # Replace MOI.get(model, POI.ParameterValue(), p) with p_value = MOI.get(model, MOI.ConstraintSet(), cp).value # Replace MOI.set(model, POI.ParameterValue(), p, 2.0) with MOI.set(model, MOI.ConstraintSet(), cp, MOI.Parameter(2.0)) # Replace MOI.get(model, POI.ParameterDual(), p) with p_dual = MOI.get(model, MOI.ConstraintDual(), cp)