pyomo icon indicating copy to clipboard operation
pyomo copied to clipboard

[PEP] Promotion process for packages in `pyomo.contrib`

Open mrmundt opened this issue 2 years ago • 2 comments

Summary

There are several contributions to pyomo.contrib that have gained popular usage (e.g., PyNumero) and have been considered numerous times for promotion out of contrib into the core offering of Pyomo. There is currently no documented process for such a promotion.

Rationale

Some packages within pyomo.contrib have existed at this point for many years, are mostly stable / not actively under development, and have popular usage. Because contrib is more intended for items that are under active development/"use at your own risk" (see #2460 ), those packages which have a shown amount of stability and usage should be given a promotion path.

Additional Information

While this topic has been floated a few times, we currently have no solidly proposed solution and want to open the discussion for suggestions. Some considerations to keep in mind:

  • Life/duration of package
  • Code coverage
  • Documentation
  • Popularity/usage by Pyomo users
  • Maintainability

mrmundt avatar Jul 12 '22 19:07 mrmundt

My advice is to mimic Python and keep Pyomo itself as small as possible. This argues in favor of only rarely moving something "up" from contrib and doing so only when there is compelling evidence that the benefits of doing so outweigh the potential costs.

DLWoodruff avatar Jul 15 '22 20:07 DLWoodruff

Supposing that we eventually want to move something out of contrib (into Pyomo "proper"), one of the first steps should probably be to partition the code into what we do want to promote and what we don't (yet) want to promote. I mention this as while PyNumero has some components that are stable and fairly widely used (e.g. PyomoNLP), it also has some components that are not (e.g. ExternalPyomoModel).

Robbybp avatar Jul 26 '22 20:07 Robbybp