@@ -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
367370These 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
369373automatically used by the active environment. You can create another conda
370374environment 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+
372383Review Process
373384--------------
374385
@@ -380,11 +391,11 @@ think a PR should be merged or if more changes are necessary.
380391
381392Reviewers 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
458470For 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
464473Submitting a Contributed Package
465474--------------------------------
@@ -472,14 +481,15 @@ contributed packages are treated as optional packages, which are not
472481maintained by the Pyomo developer team. Thus, it is the responsibility
473482of 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,
476485which will be reviewed by the Pyomo developer team. Specifically,
477486this review will consider the suitability of the proposed capability,
478487whether tests are available to check the execution of the code, and
479488whether documentation is available to describe the capability.
480489Contributed packages will be tested along with Pyomo. If test failures
481490arise, 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
484494When submitting a new contributed package (under either ``addons `` or
485495``devel ``), please ensure that:
@@ -497,7 +507,7 @@ Contributed Packages within Pyomo
497507+++++++++++++++++++++++++++++++++
498508
499509Third-party contributions can be included directly within the
500- ``pyomo.devel `` or ``pyomo.addons `` packages .
510+ ``pyomo.devel `` or ``pyomo.addons `` namespaces .
501511The ``pyomo/devel/example `` package
502512provides an example of how this can be done, including a directory
503513for plugins and package tests. For example, this package can be
0 commit comments