Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/pyomo/pyomo into cyipopt-ev…
Browse files Browse the repository at this point in the history
…alerror
  • Loading branch information
Robbybp committed Sep 15, 2023
2 parents ddc60d7 + 376a2f7 commit 7c2a4b1
Show file tree
Hide file tree
Showing 215 changed files with 5,501 additions and 4,324 deletions.
4 changes: 2 additions & 2 deletions .coin-or/projDesc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e
Use explicit overrides to disable use of automated
version reporting.
-->
<stableVersionNumber>6.6.1</stableVersionNumber>
<releaseNumber>6.6.1</releaseNumber>
<stableVersionNumber>6.6.2</stableVersionNumber>
<releaseNumber>6.6.2</releaseNumber>

</developmentStatus>

Expand Down
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
<!-- ##################################################################### -->
<!-- PLEASE READ BEFORE OPENING THIS PULL REQUEST -->

<!-- All changes must adhere to PEP8 standards as enforced by Black. -->
<!-- If your changes do NOT adhere, the test suite will fail. -->
<!-- Please read our Contributing guide for instructions on how to apply these standards. -->
<!-- Contributing Guide: https://pyomo.readthedocs.io/en/stable/contribution_guide.html -->
<!-- ##################################################################### -->

## Fixes # .

## Summary/Motivation:
Expand Down
30 changes: 11 additions & 19 deletions .github/workflows/test_branches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,18 +133,6 @@ jobs:
echo "PYTHON_PACKAGES=$PYTHON_PACKAGES" \
| tr '\n' ' ' | sed 's/ \+/ /g' >> $GITHUB_ENV
# Ideally we would cache the conda downloads; however, each cache is
# over 850MB, and with 5 python versions, that would consume 4.2 of
# the 5 GB GitHub allows.
#
#- name: Conda package cache
# uses: actions/cache@v3
# if: matrix.PYENV == 'conda'
# id: conda-cache
# with:
# path: cache/conda
# key: conda-${{env.CACHE_VER}}.0-${{runner.os}}-${{matrix.python}}

#- name: Pip package cache
# uses: actions/cache@v3
# if: matrix.PYENV == 'pip'
Expand Down Expand Up @@ -222,10 +210,8 @@ jobs:
if: matrix.PYENV == 'conda'
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-update-conda: false
python-version: ${{ matrix.python }}
channels: conda-forge,gurobi,ibmdecisionoptimization,fico-xpress
channel-priority: strict

# GitHub actions is very fragile when it comes to setting up various
# Python interpreters, expecially the setup-miniconda interface.
Expand Down Expand Up @@ -283,16 +269,22 @@ jobs:
if: matrix.PYENV == 'conda'
run: |
# Set up environment
mkdir -p $GITHUB_WORKSPACE/cache/conda
conda config --set always_yes yes
conda config --set auto_update_conda false
conda config --prepend pkgs_dirs $GITHUB_WORKSPACE/cache/conda
conda config --remove channels defaults
conda config --append channels nodefaults
conda config --append channels conda-forge
# Try to install mamba
conda install -q -y -n base conda-libmamba-solver || MAMBA_FAILED=1
conda install --update-deps -q -y -n base conda-libmamba-solver \
|| MAMBA_FAILED=1
if test -z "$MAMBA_FAILED"; then
echo "*** Activating the mamba environment solver ***"
conda config --set solver libmamba
fi
# Add the rest of the channels
conda config --append channels gurobi
conda config --append channels ibmdecisionoptimization
conda config --append channels fico-xpress
# Print environment info
echo "*** CONDA environment: ***"
conda info
Expand Down Expand Up @@ -326,7 +318,7 @@ jobs:
fi
done
echo "*** Install Pyomo dependencies ***"
conda install -q -y $CONDA_DEPENDENCIES
conda install --update-deps -q -y $CONDA_DEPENDENCIES
if test -z "${{matrix.slim}}"; then
echo "*** Install CPLEX ***"
conda install -q -y 'cplex>=12.10' docplex \
Expand Down
30 changes: 11 additions & 19 deletions .github/workflows/test_pr_and_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,18 +159,6 @@ jobs:
echo "PYTHON_PACKAGES=$PYTHON_PACKAGES" \
| tr '\n' ' ' | sed 's/ \+/ /g' >> $GITHUB_ENV
# Ideally we would cache the conda downloads; however, each cache is
# over 850MB, and with 5 python versions, that would consume 4.2 of
# the 5 GB GitHub allows.
#
#- name: Conda package cache
# uses: actions/cache@v3
# if: matrix.PYENV == 'conda'
# id: conda-cache
# with:
# path: cache/conda
# key: conda-${{env.CACHE_VER}}.0-${{runner.os}}-${{matrix.python}}

#- name: Pip package cache
# uses: actions/cache@v3
# if: matrix.PYENV == 'pip'
Expand Down Expand Up @@ -248,10 +236,8 @@ jobs:
if: matrix.PYENV == 'conda'
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-update-conda: false
python-version: ${{ matrix.python }}
channels: conda-forge,gurobi,ibmdecisionoptimization,fico-xpress
channel-priority: strict

# GitHub actions is very fragile when it comes to setting up various
# Python interpreters, expecially the setup-miniconda interface.
Expand Down Expand Up @@ -309,16 +295,22 @@ jobs:
if: matrix.PYENV == 'conda'
run: |
# Set up environment
mkdir -p $GITHUB_WORKSPACE/cache/conda
conda config --set always_yes yes
conda config --set auto_update_conda false
conda config --prepend pkgs_dirs $GITHUB_WORKSPACE/cache/conda
conda config --remove channels defaults
conda config --append channels nodefaults
conda config --append channels conda-forge
# Try to install mamba
conda install -q -y -n base conda-libmamba-solver || MAMBA_FAILED=1
conda install --update-deps -q -y -n base conda-libmamba-solver \
|| MAMBA_FAILED=1
if test -z "$MAMBA_FAILED"; then
echo "*** Activating the mamba environment solver ***"
conda config --set solver libmamba
fi
# Add the rest of the channels
conda config --append channels gurobi
conda config --append channels ibmdecisionoptimization
conda config --append channels fico-xpress
# Print environment info
echo "*** CONDA environment: ***"
conda info
Expand Down Expand Up @@ -352,7 +344,7 @@ jobs:
fi
done
echo "*** Install Pyomo dependencies ***"
conda install -q -y $CONDA_DEPENDENCIES
conda install --update-deps -q -y $CONDA_DEPENDENCIES
if test -z "${{matrix.slim}}"; then
echo "*** Install CPLEX ***"
conda install -q -y 'cplex>=12.10' docplex \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ caf = "caf"
WRONLY = "WRONLY"
# Ignore the name Hax
Hax = "Hax"
# Big Sur
Sur = "Sur"
# AS NEEDED: Add More Words Below
72 changes: 72 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,78 @@ Pyomo CHANGELOG
===============


-------------------------------------------------------------------------------
Pyomo 6.6.2 (23 Aug 2023)
-------------------------------------------------------------------------------

ADVANCE CHANGE NOTICE
- This will be the last release to support Python 3.7.

- General
- Fall back on `multiprocessing.dummy` when `multiprocessing.Pool` is not
available (#2890)
- Clean up implicit function imports (#2892)
- Ensure all pyomo modules import without warnings (#2897)
- Resolve `FileDownloader.get_os_version` exception for missing
`lsb_release` (#2911)
- Improve `calculate_variable_from_constraint` error messages (#2914)
- Add function for collecting expressions with unit inconsistencies (#2904)
- Fix loading Scalar Param from `.dat` file (#2923)
- Core
- Resolve kernel pickle/clone errors (#2916)
- Reorganize numeric expression modules (#2909)
- Resolve error categorizing some Var discrete domains as "integer" (#2954)
- Named expressions: `expr` should always return `NumericValue` (#2948)
- Support kwargs in partial objects passed to Initializer() (#2960)
- Remove `expr.current` (#2910)
- Documentation
- Fixing a 'that' vs. 'which' mistake in error about bounds crossing (#2950)
- Add Explicit Linting Instructions to PR Template (#2947)
- Update `pyomo.common` documentation (#2912)
- Remove HTML4 Forcing in Online Docs (#2949)
- Improved documentation for SOS (#2875)
- Silence deprecation warnings (#2854)
- Solvers Interfaces
- Resolve handling of `{}**0` in Linear/QuadraticRepn (#2857)
- Fix Linear/QuadraticRepnVisitor handling of `{}**{float}` (#2863, #2865)
- GAMS: fix pickling models, update tests (#2913)
- Xpress: fix NLP results processing for Xpress 9.2.0 (#2921)
- Improve NaN handling in LP, NL writers (#2930)
- Ensure constants written correctly to LP/NL files (#2953)
- Testing
- Remove the 'singletest' job from "branches" builds (#2917)
- Reactivate NEOS-MOSEK Tests (#2870)
- New version of `crate-ci/typos` GitHub Actions (#2869, #2931)
- DAE
- Improve error message when attempting to discretize models with circular
references (#2943)
- GDP
- Fixing a typo in gdp.hull transformation (#2915)
- Add some more instances to the GDP constrained layout example (#2838)
- Adding (reversible) `gdp.transform_current_disjunctive_logic`
transformation (#2809)
- Contributed Packages
- APPSI: change default behavior to not care where variables live (#2903)
- APPSI: Correctly Process Objective Bounds from Gurobi for Nonconvex QCPs
(#2898)
- community_detection: fix networkx dependency in doctests (#2885)
- cp: Fix bug with `land` in `contrib.logical_to_disjunctive` transformation
(#2879)
- DoE: Update tutorial notebook (#2889)
- incidence_analysis: Filter variables with non-constant, fixed expressions
that resolve to zero in `get_incident_variables` (#2882)
- incidence_analysis: Correct behavior of `linear_only` argument in
`get_incident_variables` (#2883)
- MindtPy: Refactor to improve extensibility and maintainability (#2887)
- PyNumero: Add `PyNumeroEvaluationError` (#2901)
- PyNumero: Make min and max work with MPIBlockVector when some blocks have
size 0 (#2896)
- PyNumero: Remove old, unused PyNumero code (#2895)
- PyNumero: Fix typo in docstring (#2873)
- sensitivity_toolbox: Send lists to `numpy.vstack` rather than iterators
(#2881)
- viewer: Fix model viewer (#2924)

-------------------------------------------------------------------------------
Pyomo 6.6.1 (30 May 2023)
-------------------------------------------------------------------------------
Expand Down
31 changes: 31 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- name: "Pyomo contributors"
title: "Pyomo: a Python-based, open-source optimization modeling language with a diverse set of optimization capabilities"
url: "https://github.com/Pyomo/pyomo"
license-url: "https://github.com/Pyomo/pyomo/blob/main/LICENSE.md"
preferred-citation:
type: book
authors:
- family-names: "Bynum"
given-names: "Michael L"
- family-names: "Hackebeil"
given-names: "Gabriel A"
- family-names: "Hart"
given-names: "William E"
- family-names: "Laird"
given-names: "Carl D"
- family-names: "Nicholson"
given-names: "Bethany L"
- family-names: "Siirola"
given-names: "John D"
- family-names: "Watson"
given-names: "Jean-Paul"
- family-names: "Woodruff"
given-names: "David L"
title: "Pyomo - optimization modeling in Python, 3rd Edition"
publisher: "Springer"
volume: 67
year: 2021
doi: "10.1007/978-3-030-68928-5"
2 changes: 1 addition & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
We are pleased to announce the release of Pyomo 6.6.1.
We are pleased to announce the release of Pyomo 6.6.2.

Pyomo is a collection of Python software packages that supports a
diverse set of optimization capabilities for formulating and analyzing
Expand Down
7 changes: 0 additions & 7 deletions doc/OnlineDocs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,13 +146,6 @@

html_theme = 'sphinx_rtd_theme'

# Force HTML4: If we don't explicitly force HTML4, then the background
# of the Parameters/Returns/Return type headers is shaded the same as the
# method prototype (tested 15 April 21 with Sphinx=3.5.4 and
# sphinx-rtd-theme=0.5.2).
html4_writer = True
# html5_writer = True

if not on_rtd: # only import and set the theme if we're building docs locally
import sphinx_rtd_theme

Expand Down
20 changes: 12 additions & 8 deletions doc/OnlineDocs/contributed_packages/incidence/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,19 @@ from Bethany Nicholson and John Siirola at Sandia.
How can I cite Incidence Analysis?
----------------------------------

We are working on a journal article about Incidence Analysis and the underlying
methods. In the meantime, if you use Incidence Analysis in your research, you
may cite the following conference paper:
If you use Incidence Analysis in your research, we would appreciate you citing
the following paper:

.. code-block:: bibtex
@inproceedings{Parker2023Dulmage,
title={{An application of the Dulmage-Mendelsohn partition to the analysis of a discretized dynamic chemical looping combustion reactor model}},
author={Robert Parker and Chinedu Okoli and Bethany Nicholson and John Siirola and Lorenz Biegler},
booktitle={Proceedings of FOCAPO/CPC 2023},
year={2023}
@article{parker2023dulmage,
title = {Applications of the {Dulmage-Mendelsohn} decomposition for debugging nonlinear optimization problems},
journal = {Computers \& Chemical Engineering},
volume = {178},
pages = {108383},
year = {2023},
issn = {0098-1354},
doi = {https://doi.org/10.1016/j.compchemeng.2023.108383},
url = {https://www.sciencedirect.com/science/article/pii/S0098135423002533},
author = {Robert B. Parker and Bethany L. Nicholson and John D. Siirola and Lorenz T. Biegler},
}
Loading

0 comments on commit 7c2a4b1

Please sign in to comment.