Skip to content

Commit ed7f9dd

Browse files
committed
Address blnicho's comments
1 parent 5d7f102 commit ed7f9dd

File tree

4 files changed

+26
-16
lines changed

4 files changed

+26
-16
lines changed

doc/OnlineDocs/contribution_guide.rst

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ Markers are declared in ``pyproject.toml``. Some commonly used markers are:
101101
- ``solver(name)``: dynamic marker to label a test for a specific solver,
102102
e.g., ``@pytest.mark.solver("gurobi")``
103103

104+
More details about Pyomo-defined default test behavior can be found in
105+
the `conftest.py file <https://github.com/Pyomo/pyomo/blob/main/conftest.py>`_.
106+
104107
.. note::
105108
If you are having issues getting tests to pass on your Pull Request,
106109
please tag any of the core developers to ask for help.
@@ -365,10 +368,18 @@ Finally, move to the directory containing the clone of your Pyomo fork and run:
365368
pip install -e .[tests,docs,optional]
366369

367370
These commands register the cloned code with the active python environment
368-
(``pyomodev``). This way, your changes to the source code for ``pyomo`` are
371+
(``pyomodev``) and installs all possible optional dependencies.
372+
This way, your changes to the source code for ``pyomo`` are
369373
automatically used by the active environment. You can create another conda
370374
environment to switch to alternate versions of pyomo (e.g., stable).
371375

376+
.. note::
377+
378+
The ``optional`` and ``docs`` dependencies are not strictly required;
379+
however, we recommend installing them to ensure that a large number of
380+
tests can be run locally. Optional packages that are not available will
381+
cause tests to skip.
382+
372383
Review Process
373384
--------------
374385

@@ -380,11 +391,11 @@ think a PR should be merged or if more changes are necessary.
380391

381392
Reviewers look for:
382393

383-
* **Core and Addons:** Code rigor, standards compliance, appropriate test
384-
coverage, and avoidance of unintended side effects
394+
* **Core and Addons:** Code rigor, standards compliance, test coverage above
395+
a threshold, and avoidance of unintended side effects (e.g., regressions)
385396
* **Devel:** Basic code correctness and clarity, with an understanding that
386397
these areas are experimental and evolving
387-
* **All areas:** Reasonable documentation and tests
398+
* **All areas:** Code formatting (using ``black``), documentation, and tests
388399

389400
.. note::
390401

@@ -426,7 +437,8 @@ model with two clear namespaces:
426437
* ``pyomo.addons`` – For mostly stable, supported extensions that build on
427438
the Pyomo core. These packages are maintained by dedicated
428439
contributors, follow Pyomo's coding and testing standards, and adhere
429-
to the same deprecation policies as the rest of the codebase.
440+
to the same backwards compatibility and deprecation policies as the
441+
rest of the codebase.
430442

431443
* ``pyomo.devel`` – For experimental or rapidly evolving
432444
contributions. These modules serve as early experimentation for research ideas,
@@ -456,10 +468,7 @@ unexpected changes in stable areas of the codebase.
456468
- Fully supported and versioned
457469

458470
For specific inclusion requirements and maintenance expectations for each
459-
namespace, see:
460-
461-
* :doc:`../../pyomo/addons/README`
462-
* :doc:`../../pyomo/devel/README`
471+
namespace, see each directory's accompanying ``README.md``.
463472

464473
Submitting a Contributed Package
465474
--------------------------------
@@ -472,14 +481,15 @@ contributed packages are treated as optional packages, which are not
472481
maintained by the Pyomo developer team. Thus, it is the responsibility
473482
of the code contributor to keep these packages up-to-date.
474483

475-
Contributed package will be considered as pull requests,
484+
Contributed packages will be considered as pull requests,
476485
which will be reviewed by the Pyomo developer team. Specifically,
477486
this review will consider the suitability of the proposed capability,
478487
whether tests are available to check the execution of the code, and
479488
whether documentation is available to describe the capability.
480489
Contributed packages will be tested along with Pyomo. If test failures
481490
arise, then these packages will be disabled and an issue will be
482-
created to resolve these test failures.
491+
created to resolve these test failures. The Pyomo team reserves the
492+
right to remove contributed packages that are not maintained.
483493

484494
When submitting a new contributed package (under either ``addons`` or
485495
``devel``), please ensure that:
@@ -497,7 +507,7 @@ Contributed Packages within Pyomo
497507
+++++++++++++++++++++++++++++++++
498508

499509
Third-party contributions can be included directly within the
500-
``pyomo.devel`` or ``pyomo.addons`` packages.
510+
``pyomo.devel`` or ``pyomo.addons`` namespaces.
501511
The ``pyomo/devel/example`` package
502512
provides an example of how this can be done, including a directory
503513
for plugins and package tests. For example, this package can be

doc/OnlineDocs/principles.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Solvers
134134

135135
Pyomo does not bundle or directly distribute optimization solvers.
136136
We recognize that solver installation can be challenging for new users.
137-
To assist with this process, the documentation includes a solver
137+
To assist with this process, see the solver
138138
availability table and installation guidance in
139139
:doc:`/getting_started/solvers`. This table lists solvers that can be
140140
installed via ``pip`` or ``conda`` where available, but Pyomo itself

pyomo/addons/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ following criteria.
3030
- The code must be **mostly stable** with minimal expected API changes.
3131
- There must be at least one **designated maintainer** responsible for upkeep,
3232
compatibility, and user support.
33-
- The package must not rely on deprecated or experimental Pyomo internals.
33+
- The package must not rely on deprecated or `pyomo.devel` functionality.
3434

3535
### Testing
3636
- Test coverage should be **at least 80%**, or comparable to similar supported modules.
@@ -41,7 +41,7 @@ following criteria.
4141
### Documentation
4242
- Each addon must include:
4343
- (PREFERABLE) A **reference page** in the Pyomo online documentation.
44-
- (MINIMUM) A **README.md** file in the addon directory summarizing:
44+
- (MINIMUM) A **README.md** file summarizing:
4545
- Functionality
4646
- Example usage or link to docs
4747

pyomo/devel/example/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#
1313
# Import "public" symbols and sub-packages.
1414
#
15-
from pyomo.devel.example.foo import *
15+
from pyomo.devel.example.foo import a
1616
from pyomo.devel.example import bar
1717

1818
#

0 commit comments

Comments
 (0)