⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@mrmundt
Copy link
Contributor

@mrmundt mrmundt commented Oct 21, 2025

Fixes None but starts to address #2460

Summary/Motivation:

Stage 1 of the changes inside pyomo.contrib is documenting a lot of different development principles that make the change a lot more reasonably understandable. This PR creates the new directories with their basic READMEs as well as creates documentation about our overarching development principles, including a teaser to the upcoming changes in contrib as part of their contents.

Changes proposed in this PR:

  • Create basic structure for addons and devel
  • Create new principles.rst documentation
  • Update the testing guidance because it was missing something kind of essential
  • (Tiny extra fix) Include doc/OnlineDocs/api in .gitignore because I have almost accidentally committed those files WAY too many times

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

@codecov
Copy link

codecov bot commented Oct 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.40%. Comparing base (bb1203d) to head (88f7cae).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3768      +/-   ##
==========================================
- Coverage   89.40%   89.40%   -0.01%     
==========================================
  Files         903      898       -5     
  Lines      105380   105365      -15     
==========================================
- Hits        94214    94199      -15     
  Misses      11166    11166              
Flag Coverage Δ
builders 29.14% <ø> (-0.01%) ⬇️
default 86.02% <ø> (?)
expensive 34.84% <ø> (?)
linux 86.76% <ø> (-2.41%) ⬇️
linux_other 86.76% <ø> (-0.01%) ⬇️
osx 82.91% <ø> (-0.01%) ⬇️
win 84.98% <ø> (-0.01%) ⬇️
win_other 84.98% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 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.

@mrmundt mrmundt requested a review from michaelbynum October 22, 2025 15:43
Copy link
Member

@blnicho blnicho left a comment

Choose a reason for hiding this comment

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

I have a bunch of minor edit suggestions but overall I think this looks great!

@mrmundt mrmundt requested a review from blnicho October 28, 2025 14:43
Copy link
Contributor

@michaelbynum michaelbynum left a comment

Choose a reason for hiding this comment

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

I'm only about halfway done, but here are a couple comments/questions.

Copy link
Contributor

@michaelbynum michaelbynum left a comment

Choose a reason for hiding this comment

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

I have some minor comments, but I think this looks great overall.


Functionality that is part of the Pyomo source tree but not explicitly
included in the book is also expected to be stable if it resides outside
the ``contrib`` (or future ``addons`` / ``devel``) directories. This is
Copy link
Contributor

Choose a reason for hiding this comment

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

should this just say "devel" instead of "addons / devel"? I think the contribution guide stated that addons was supposed to be stable as well.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm specifically looking under "Namespaces for Contributed and Experimental Code" in contribution_guide.rst.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We call it "mostly stable". I don't want to promise that addons is for sure stable.

Copy link
Contributor

@emma58 emma58 left a comment

Choose a reason for hiding this comment

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

This looks nice--I put a lot of ideas in the comments.

Optional Dependencies
~~~~~~~~~~~~~~~~~~~~~

Extensions to Pyomo, and many of the contributions in ``pyomo.contrib``,
Copy link
Contributor

Choose a reason for hiding this comment

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

Should pyomo.contrib be updated to be pyomo.addons and pyomo.devel here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not yet. We aren't moving anything out of contrib as of this particular PR. This file should be updated when we do actually move things.

@blnicho blnicho moved this from Todo to Review In Progress in Pyomo 6.10 Nov 11, 2025

As a result, Pyomo is transitioning to a more structured contribution
model with two clear namespaces:

Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* ``pyomo`` core - These modules form the foundation of the Pyomo environment,
including the base expression systems, modeling components, model compilers,
and solver interfaces. The core development team has committed to
maintaining these capabilities, adhering to the strictest policies for
testing and backwards compatibility.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree with the words but not the placement here. I put them above so it doesn't confuse the message here, which is primarily focused on, "This is how we are splitting pyomo.contrib."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@mrmundt mrmundt requested review from emma58 and jsiirola January 26, 2026 22:56
└── tests/
├── __init__.py
└── test_example_package.py

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We may want to call out why plugins isn't here but can be seen in a lot of existing packages. Just so people aren't mimicking "bad advice."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Review In Progress

Development

Successfully merging this pull request may close these issues.

6 participants