Skip to content

Adds CONOPT to solvers documentation#4193

Merged
odow merged 6 commits into
jump-dev:masterfrom
stephenjmaher:master
Jul 14, 2026
Merged

Adds CONOPT to solvers documentation#4193
odow merged 6 commits into
jump-dev:masterfrom
stephenjmaher:master

Conversation

@stephenjmaher

@stephenjmaher stephenjmaher commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Adding the CONOPT.jl package to the solvers documentation.

We would like to discuss the possibility of bringing CONOPT.jl under the JuMP-dev organisation, similar to KNITRO.jl. The intention would be for us to continue the maintenance of CONOPT.jl as part of the JuMP community. We would include the line "Contact GAMS Software if you encounter any problem with this interface or the solver." in the documentation, as is the case for KNITRO.jl.

Basic

  • Check that the solver is a registered Julia package
  • Check that the solver supports the long-term support release of Julia
  • Check that the solver has a MathOptInterface wrapper
  • Check that the tests call MOI.Test.runtests. Some test excludes are
    permissible, but the reason for skipping a particular test should be
    documented.
  • Check that the README and/or documentation provides an example of how to
    use the solver with JuMP

Documentation

  • Add a new row to the table in docs/src/installation.md

Optional

  • Add package metadata to docs/packages.toml

@odow

odow commented Jul 6, 2026

Copy link
Copy Markdown
Member

See this checklist: https://jump.dev/JuMP.jl/stable/developers/checklists/#Adding-a-new-solver-to-the-documentation

You should also edit the installation table.

We would like to discuss the possibility of bringing CONOPT.jl under the JuMP-dev organisation

I'm going to discuss this privately with the core contributors. Let's proceed with it in gams-dev and we'll get back to you.

The intention would be for us to continue the maintenance of CONOPT.jl as part of the JuMP community

I think we'd need more than an intention. We'd probably also reserve the right to deprecate the package and archive it if GAMS stopped maintaining it.

@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.93%. Comparing base (b0fc1a7) to head (99a8caa).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4193   +/-   ##
=======================================
  Coverage   99.93%   99.93%           
=======================================
  Files          42       42           
  Lines        6278     6302   +24     
=======================================
+ Hits         6274     6298   +24     
  Misses          4        4           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@stephenjmaher

Copy link
Copy Markdown
Contributor Author

The intention would be for us to continue the maintenance of CONOPT.jl as part of the JuMP community

I think we'd need more than an intention. We'd probably also reserve the right to deprecate the package and archive it if GAMS stopped maintaining it.

We would be happy for a maintenance agreement to be put in place. Then we can include conditions about the expected maintenance. Setting out a maintenance agreement might serve well for other new and existing solvers in JuMP-dev as well.

@stephenjmaher

Copy link
Copy Markdown
Contributor Author

Regarding

Check that the solver is a registered Julia package

A PR has been created for this JuliaPackaging/Yggdrasil#14008

You should add the checklist to https://jump.dev/JuMP.jl/stable/packages/solvers/, or at least a link. Its current location is not well connected to the "Adding new solvers" section.

@odow

odow commented Jul 8, 2026

Copy link
Copy Markdown
Member

We would like to discuss the possibility of bringing CONOPT.jl under the JuMP-dev organisation

Our conclusion is no, and that we'd prefer to de-emphasise the distinction between packages in jump-dev and those outside it.

I've opened a PR to update the docs: #4195. We can discuss more there.

From a user-perspective, they just do ] add CONOPT or ] add KNITRO. There's no signal to them on install that they are using a "JuMP" package or a "GAMS" package.

We have a policy for this: https://jump.dev/pages/governance/#transferring-repositories-to-jump-dev

The key part is

the bar for transferring repositories to the JuMP-dev GitHub organization is high, and can be summarized by the following: The maintenance of the package would be simplified if core contributors have Admin permission to the repository.

Commercial wrappers like Gurobi.jl and KNITRO.jl exist in jump-dev as a historical accident; they were originally written by the JuMP community, and we have maintained them (to various levels of effort) since. We would like more of the commercial solvers to move out of jump-dev and into the maintenance hands of others. One in-progress example is Xpress: https://github.com/fico-xpress/XpressAPI.jl.

@odow odow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is blocked by GAMS-dev/CONOPT.jl#11. CONOPT is not yet a registered package.

@stephenjmaher

Copy link
Copy Markdown
Contributor Author

Our conclusion is no, and that we'd prefer to de-emphasise the distinction between packages in jump-dev and those outside it.

This is reasonable.

The changes in #4195 are very good, since it puts all solvers on the same level. Previously, the JuMP-dev solvers looked more official than the contributed solvers.

@stephenjmaher

Copy link
Copy Markdown
Contributor Author

CONOPT.jl is now a registered package JuliaRegistries/General#160410

Comment thread docs/packages.toml Outdated
@odow
odow merged commit 024b5ba into jump-dev:master Jul 14, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants