Skip to content

Commit

Permalink
Merge remote-tracking branch 'emma_pyomo/add-accidental-formulation' …
Browse files Browse the repository at this point in the history
…into bashar_pwl
  • Loading branch information
bammari committed Sep 29, 2024
2 parents 55941c1 + 5d023cd commit 8e45d4b
Show file tree
Hide file tree
Showing 107 changed files with 13,066 additions and 7,747 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.7.3</stableVersionNumber>
<releaseNumber>6.7.3</releaseNumber>
<stableVersionNumber>6.8.0</stableVersionNumber>
<releaseNumber>6.8.0</releaseNumber>

</developmentStatus>

Expand Down
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ about: Report a bug in Pyomo (command not working as expected, etc.)
labels: "bug"
---

<!-- DO NOT DELETE OR IGNORE THIS TEMPLATE. Failing to adhere to this template and provide the necessary information may lead to your Issue being closed without consideration. -->

## Summary

<!-- Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.
Expand Down
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ labels: enhancement

---

<!-- DO NOT DELETE OR IGNORE THIS TEMPLATE. Failing to adhere to this template and provide the necessary information may lead to your Issue being closed without consideration. -->

<!-- BEFORE SUBMITTING AN ENHANCEMENT REQUEST - please browse the open issues and the [Archived Design Discussions wiki page](https://github.com/Pyomo/pyomo/wiki/Archived-Design-Discussions).-->

## Summary
Expand Down
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
<!-- Contributing Guide: https://pyomo.readthedocs.io/en/stable/contribution_guide.html -->
<!-- ##################################################################### -->

<!-- DO NOT DELETE OR IGNORE THIS TEMPLATE. Failing to adhere to this template and provide the necessary information may lead to your Pull Request being closed without consideration. -->

## Fixes # .

## Summary/Motivation:
Expand Down
59 changes: 50 additions & 9 deletions .github/workflows/release_wheel_creation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
PYOMO_SETUP_ARGS: "--with-cython --with-distributable-extensions"

jobs:

native_wheels:
name: Build wheels (${{ matrix.wheel-version }}) on ${{ matrix.os }} for native and cross-compiled architecture
runs-on: ${{ matrix.os }}
Expand All @@ -31,14 +29,26 @@ jobs:
include:
- wheel-version: 'cp38*'
TARGET: 'py38'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp39*'
TARGET: 'py39'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp310*'
TARGET: 'py310'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp311*'
TARGET: 'py311'
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
- wheel-version: 'cp312*'
TARGET: 'py312'
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"

exclude:
- wheel-version: 'cp311*'
os: windows-latest
- wheel-version: 'cp312*'
os: windows-latest

steps:
- uses: actions/checkout@v4
- name: Build wheels
Expand All @@ -47,13 +57,13 @@ jobs:
output-dir: dist
env:
CIBW_ARCHS_LINUX: "native"
CIBW_ARCHS_MACOS: "native arm64"
CIBW_ARCHS_WINDOWS: "native ARM64"
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_ARCHS_WINDOWS: "AMD64 ARM64"
CIBW_BUILD: ${{ matrix.wheel-version }}
CIBW_SKIP: "*-musllinux*"
CIBW_BUILD_VERBOSITY: 1
CIBW_BEFORE_BUILD: pip install cython pybind11
CIBW_CONFIG_SETTINGS: '--global-option="--with-cython --with-distributable-extensions"'
CIBW_ENVIRONMENT: PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
- uses: actions/upload-artifact@v4
with:
name: native_wheels-${{ matrix.os }}-${{ matrix.TARGET }}
Expand All @@ -72,14 +82,19 @@ jobs:
include:
- wheel-version: 'cp38*'
TARGET: 'py38'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp39*'
TARGET: 'py39'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp310*'
TARGET: 'py310'
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
- wheel-version: 'cp311*'
TARGET: 'py311'
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
- wheel-version: 'cp312*'
TARGET: 'py312'
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
Expand All @@ -93,17 +108,43 @@ jobs:
output-dir: dist
env:
CIBW_ARCHS_LINUX: "aarch64"
CIBW_SKIP: "*-musllinux*"
CIBW_BUILD: ${{ matrix.wheel-version }}
CIBW_SKIP: "*-musllinux*"
CIBW_BUILD_VERBOSITY: 1
CIBW_BEFORE_BUILD: pip install cython pybind11
CIBW_CONFIG_SETTINGS: '--global-option="--with-cython --with-distributable-extensions"'
CIBW_ENVIRONMENT: PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
- uses: actions/upload-artifact@v4
with:
name: alt_wheels-${{ matrix.os }}-${{ matrix.TARGET }}
path: dist/*.whl
overwrite: true

pure_python:
name: pure_python_wheel
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine wheel setuptools pybind11
- name: Build pure python wheel
run: |
python setup.py --without-cython sdist --format=gztar bdist_wheel
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: purepythonwheel
path: dist/*.whl
overwrite: true

generictarball:
name: ${{ matrix.TARGET }}
runs-on: ${{ matrix.os }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test_branches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ defaults:
env:
PYTHONWARNINGS: ignore::UserWarning
PYTHON_CORE_PKGS: wheel
PYPI_ONLY: z3-solver
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels
PYPI_ONLY: z3-solver linear-tree
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels linear-tree
CACHE_VER: v221013.1
NEOS_EMAIL: [email protected]
SRC_REF: ${{ github.head_ref || github.ref }}
Expand Down
17 changes: 1 addition & 16 deletions .github/workflows/test_pr_and_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ env:
PYTHONWARNINGS: ignore::UserWarning
PYTHON_CORE_PKGS: wheel
PYPI_ONLY: z3-solver linear-tree
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels linear-tree
CACHE_VER: v221013.1
NEOS_EMAIL: [email protected]
SRC_REF: ${{ github.head_ref || github.ref }}
Expand All @@ -57,21 +57,6 @@ jobs:
uses: crate-ci/typos@master
with:
config: ./.github/workflows/typos.toml
- name: URL Checker
uses: urlstechie/[email protected]
with:
# A comma-separated list of file types to cover in the URL checks
file_types: .md,.rst,.py
# Choose whether to include file with no URLs in the prints.
print_all: false
# More verbose summary at the end of a run
verbose: true
# How many times to retry a failed request (defaults to 1)
retry_count: 3
# Exclude:
# - Jenkins because it's behind a firewall
# - RTD because a magically-generated string triggers failures
exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html


build:
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/url_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: URL Validation

on:
schedule:
- cron: '0 3 * * 0'
workflow_dispatch:
inputs:
git-ref:
description: Git Hash (Optional)
required: false

jobs:
url_check:
runs-on: ubuntu-latest
steps:
- name: Checkout Pyomo source
uses: actions/checkout@v4
- name: URL Checker
uses: urlstechie/[email protected]
with:
# A comma-separated list of file types to cover in the URL checks
file_types: .md,.rst,.py
# Choose whether to include file with no URLs in the prints.
print_all: false
# More verbose summary at the end of a run
verbose: true
# How many times to retry a failed request (defaults to 1)
retry_count: 3
# Exclude:
# - Jenkins because it's behind a firewall
# - RTD because a magically-generated string triggers failures
exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html
63 changes: 63 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,69 @@ Pyomo CHANGELOG
===============


-------------------------------------------------------------------------------
Pyomo 6.8.0 (20 Aug 2024)
-------------------------------------------------------------------------------

SIGNIFICANT CHANGE NOTICE

- Internal data storage for Constraint objects (see #3293)
- No longer release cythonized wheel for Python 3.11+ (see #3355)

CHANGELOG

- General
- Add ParameterizedQuadraticRepn and corresponding walker (#3324)
- Update Pyomo for NumPy 2.0 compatibility (#3292, #3353)
- Add ParameterizedLinearRepn and corresponding walker (#3268)
- Update Release Process Workflow for changes in `pip` (#3355)
- Core
- Handle uninitialized variable in `propagate_solution` of scaling
transformation (#3275)
- Add `context` option to `SuffixFinder` (#3348)
- Remove the `_suppress_ctypes` attribute from Block (#3347)
- Improve `Set` initialization performance (#3302)
- Update Constraint to only store the original expression (not
lower/body/upper) (#3293)
- Kernel: fix bug in conic geomean (#3310)
- Fix bug with IndexedSet objects and the within argument (#3288)
- Support validate/filter for IndexedSet components using index (#3338)
- Solver Interfaces
- Resolve NLv2 incompatibility with multithreading (#3332)
- Resolve writer performance degradation (#3343)
- Fix bug with inconsistent use of `result` and `results` (#3337)
- LegacySolverWrapper: restore 'options' attribute (#3334)
- Fix bug in XpressDirect._load_slacks (#3318)
- NLv2: support expressions with nested external functions (#3319)
- Ignore errors on ASL solver version check (#3298)
- Add SAS solver interface (#2886, #3309)
- Testing
- Omnibus testing / platform portability fixes (#3335)
- Change BARON download URL (#3328)
- Disable interface/testing for NEOS/octeract (#3322)
- Fix typo in Jenkins driver (#3312)
- Jenkins: update logic for recording variables (#3311)
- Unpin Codecov / Update coverage (#3303)
- GDP
- Don't transform known-to-be infeasible Disjuncts in multiple BigM (#3314)
- Contributed Packages
- alternative_solutions: Add a new contrib package for generating
alternative solutions (#3270)
- APPSI: Allow maingo_solvermodel to be imported without maingopy (#3330)
- APPSI: Sort indices while removing constraints to fix bug in HiGHs
interface (#3281)
- CP: Add beforeChild handling for bools in logical expressions (#3315)
- DoE: Refactor to improve API and maintainability (#3317)
- incidence_analysis: Raise error in `generate_strongly_connected_components`
instead of asserting (#3305)
- parmest: Add missing main call for example file (#3349)
- piecewise: Add incremental PW linear to MIP transformation (#3287)
- piecewise: Add nonlinear-to-piecewise-linear transformation (#3333)
- PyNumero: Support user-provided CyIpopt callbacks with 13 arguments (#3289)
- PyNumero: Support PyomoNLP scaling factors on sub-blocks (#3295)
- PyROS: Temporarily Adjust NL Writer Feasibility Tolerance (#3280)
- viewer: Add option to specify the model by variable name (#3271)

-------------------------------------------------------------------------------
Pyomo 6.7.3 (29 May 2024)
-------------------------------------------------------------------------------
Expand Down
27 changes: 11 additions & 16 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
We are pleased to announce the release of Pyomo 6.7.3.
We are pleased to announce the release of Pyomo 6.8.0.

Pyomo is a collection of Python software packages that supports a
diverse set of optimization capabilities for formulating and analyzing
optimization models.

The following are highlights of the 6.7 release series:

- Added support for Python 3.12
- Removed support for Python 3.7
- New writer for converting linear models to matrix form
- Improved handling of nested GDPs
- Redesigned user API for parameter estimation
- New packages:
- iis: new capability for identifying minimal intractable systems
- latex_printer: print Pyomo models to a LaTeX compatible format
- contrib.solver: preview of redesigned solver interfaces
- simplification: simplify Pyomo expressions
- New solver interfaces
- MAiNGO: Mixed-integer nonlinear global optimization
- ...and of course numerous minor bug fixes and performance enhancements
The following are highlights of the 6.8 release series:

- Support for Numpy2
- Refactor of Design of Experiments (`contrib.doe`)
- New packages:
- alternative_solutions: alternative (near) optimal solutions
- New solver interfaces:
- SAS: Statistical Analysis System
- v2: Ongoing solver interface refactor
- ...and of course numerous minor bug fixes and performance enhancements

A full list of updates and changes is available in the
[`CHANGELOG.md`](https://github.com/Pyomo/pyomo/blob/main/CHANGELOG.md).
Expand Down
Loading

0 comments on commit 8e45d4b

Please sign in to comment.