Skip to content

Commit 1401893

Browse files
authored
Merge branch 'main' into params-to-vars
2 parents 92c23f0 + dc72d1d commit 1401893

File tree

153 files changed

+19558
-8192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+19558
-8192
lines changed

.coin-or/projDesc.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e
227227
Use explicit overrides to disable use of automated
228228
version reporting.
229229
-->
230-
<stableVersionNumber>6.7.3</stableVersionNumber>
231-
<releaseNumber>6.7.3</releaseNumber>
230+
<stableVersionNumber>6.8.0</stableVersionNumber>
231+
<releaseNumber>6.8.0</releaseNumber>
232232

233233
</developmentStatus>
234234

.github/ISSUE_TEMPLATE/bug_report.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ about: Report a bug in Pyomo (command not working as expected, etc.)
44
labels: "bug"
55
---
66

7+
<!-- 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. -->
8+
79
## Summary
810

911
<!-- Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.

.github/ISSUE_TEMPLATE/feature_request.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ labels: enhancement
55

66
---
77

8+
<!-- 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. -->
9+
810
<!-- 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).-->
911

1012
## Summary

.github/PULL_REQUEST_TEMPLATE.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
<!-- Contributing Guide: https://pyomo.readthedocs.io/en/stable/contribution_guide.html -->
88
<!-- ##################################################################### -->
99

10+
<!-- 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. -->
11+
1012
## Fixes # .
1113

1214
## Summary/Motivation:

.github/workflows/release_wheel_creation.yml

+50-9
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ concurrency:
1414
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
1515
cancel-in-progress: true
1616

17-
env:
18-
PYOMO_SETUP_ARGS: "--with-cython --with-distributable-extensions"
19-
2017
jobs:
18+
2119
native_wheels:
2220
name: Build wheels (${{ matrix.wheel-version }}) on ${{ matrix.os }} for native and cross-compiled architecture
2321
runs-on: ${{ matrix.os }}
@@ -31,14 +29,26 @@ jobs:
3129
include:
3230
- wheel-version: 'cp38*'
3331
TARGET: 'py38'
32+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
3433
- wheel-version: 'cp39*'
3534
TARGET: 'py39'
35+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
3636
- wheel-version: 'cp310*'
3737
TARGET: 'py310'
38+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
3839
- wheel-version: 'cp311*'
3940
TARGET: 'py311'
41+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
4042
- wheel-version: 'cp312*'
4143
TARGET: 'py312'
44+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
45+
46+
exclude:
47+
- wheel-version: 'cp311*'
48+
os: windows-latest
49+
- wheel-version: 'cp312*'
50+
os: windows-latest
51+
4252
steps:
4353
- uses: actions/checkout@v4
4454
- name: Build wheels
@@ -47,13 +57,13 @@ jobs:
4757
output-dir: dist
4858
env:
4959
CIBW_ARCHS_LINUX: "native"
50-
CIBW_ARCHS_MACOS: "native arm64"
51-
CIBW_ARCHS_WINDOWS: "native ARM64"
52-
CIBW_SKIP: "*-musllinux*"
60+
CIBW_ARCHS_MACOS: "x86_64 arm64"
61+
CIBW_ARCHS_WINDOWS: "AMD64 ARM64"
5362
CIBW_BUILD: ${{ matrix.wheel-version }}
63+
CIBW_SKIP: "*-musllinux*"
5464
CIBW_BUILD_VERBOSITY: 1
5565
CIBW_BEFORE_BUILD: pip install cython pybind11
56-
CIBW_CONFIG_SETTINGS: '--global-option="--with-cython --with-distributable-extensions"'
66+
CIBW_ENVIRONMENT: PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
5767
- uses: actions/upload-artifact@v4
5868
with:
5969
name: native_wheels-${{ matrix.os }}-${{ matrix.TARGET }}
@@ -72,14 +82,19 @@ jobs:
7282
include:
7383
- wheel-version: 'cp38*'
7484
TARGET: 'py38'
85+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
7586
- wheel-version: 'cp39*'
7687
TARGET: 'py39'
88+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
7789
- wheel-version: 'cp310*'
7890
TARGET: 'py310'
91+
GLOBAL_OPTIONS: "--with-cython --with-distributable-extensions"
7992
- wheel-version: 'cp311*'
8093
TARGET: 'py311'
94+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
8195
- wheel-version: 'cp312*'
8296
TARGET: 'py312'
97+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
8398
steps:
8499
- uses: actions/checkout@v4
85100
- name: Set up QEMU
@@ -93,17 +108,43 @@ jobs:
93108
output-dir: dist
94109
env:
95110
CIBW_ARCHS_LINUX: "aarch64"
96-
CIBW_SKIP: "*-musllinux*"
97111
CIBW_BUILD: ${{ matrix.wheel-version }}
112+
CIBW_SKIP: "*-musllinux*"
98113
CIBW_BUILD_VERBOSITY: 1
99114
CIBW_BEFORE_BUILD: pip install cython pybind11
100-
CIBW_CONFIG_SETTINGS: '--global-option="--with-cython --with-distributable-extensions"'
115+
CIBW_ENVIRONMENT: PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
101116
- uses: actions/upload-artifact@v4
102117
with:
103118
name: alt_wheels-${{ matrix.os }}-${{ matrix.TARGET }}
104119
path: dist/*.whl
105120
overwrite: true
106121

122+
pure_python:
123+
name: pure_python_wheel
124+
runs-on: ubuntu-latest
125+
strategy:
126+
matrix:
127+
python-version: ['3.11']
128+
steps:
129+
- uses: actions/checkout@v4
130+
- name: Set up Python ${{ matrix.python-version }}
131+
uses: actions/setup-python@v5
132+
with:
133+
python-version: ${{ matrix.python-version }}
134+
- name: Install dependencies
135+
run: |
136+
python -m pip install --upgrade pip
137+
pip install twine wheel setuptools pybind11
138+
- name: Build pure python wheel
139+
run: |
140+
python setup.py --without-cython sdist --format=gztar bdist_wheel
141+
- name: Upload artifact
142+
uses: actions/upload-artifact@v4
143+
with:
144+
name: purepythonwheel
145+
path: dist/*.whl
146+
overwrite: true
147+
107148
generictarball:
108149
name: ${{ matrix.TARGET }}
109150
runs-on: ${{ matrix.os }}

.github/workflows/test_branches.yml

+15-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ defaults:
2121
env:
2222
PYTHONWARNINGS: ignore::UserWarning
2323
PYTHON_CORE_PKGS: wheel
24-
PYPI_ONLY: z3-solver
25-
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels
24+
PYPI_ONLY: z3-solver linear-tree
25+
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels linear-tree
2626
CACHE_VER: v221013.1
2727
NEOS_EMAIL: [email protected]
2828
SRC_REF: ${{ github.head_ref || github.ref }}
@@ -75,13 +75,19 @@ jobs:
7575
other: [""]
7676
category: [""]
7777

78+
# win/3.8 conda builds no longer work due to environment not being able
79+
# to resolve. We are skipping it now.
80+
exclude:
81+
- os: windows-latest
82+
python: 3.8
83+
7884
include:
7985
- os: ubuntu-latest
8086
python: '3.12'
8187
TARGET: linux
8288
PYENV: pip
8389

84-
- os: macos-13
90+
- os: macos-latest
8591
python: '3.10'
8692
TARGET: osx
8793
PYENV: pip
@@ -215,6 +221,7 @@ jobs:
215221
if: matrix.TARGET == 'win'
216222
run: |
217223
echo "SETUPTOOLS_USE_DISTUTILS=local" >> $GITHUB_ENV
224+
choco install pkgconfiglite
218225
219226
- name: Set up Python ${{ matrix.python }}
220227
if: matrix.PYENV == 'pip'
@@ -352,6 +359,10 @@ jobs:
352359
done
353360
echo ""
354361
echo "*** Install Pyomo dependencies ***"
362+
# For windows, cannot use newer setuptools because of APPSI compilation issues
363+
if test "${{matrix.TARGET}}" == 'win'; then
364+
CONDA_DEPENDENCIES="$CONDA_DEPENDENCIES setuptools<74.0.0"
365+
fi
355366
# Note: this will fail the build if any installation fails (or
356367
# possibly if it outputs messages to stderr)
357368
conda install --update-deps -q -y $CONDA_DEPENDENCIES
@@ -519,7 +530,7 @@ jobs:
519530
$BARON_DIR = "${env:TPL_DIR}/baron"
520531
echo "$BARON_DIR" | `
521532
Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
522-
$URL = "https://minlp.com/downloads/xecs/baron/current/"
533+
$URL = "https://minlp-downloads.nyc3.cdn.digitaloceanspaces.com/xecs/baron/current/"
523534
if ( "${{matrix.TARGET}}" -eq "win" ) {
524535
$INSTALLER = "${env:DOWNLOAD_DIR}/baron_install.exe"
525536
$URL += "baron-win64.exe"

.github/workflows/test_pr_and_main.yml

+20-28
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ defaults:
2929
env:
3030
PYTHONWARNINGS: ignore::UserWarning
3131
PYTHON_CORE_PKGS: wheel
32-
PYPI_ONLY: z3-solver
33-
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels
32+
PYPI_ONLY: z3-solver linear-tree
33+
PYPY_EXCLUDE: scipy numdifftools seaborn statsmodels linear-tree
3434
CACHE_VER: v221013.1
3535
NEOS_EMAIL: [email protected]
3636
SRC_REF: ${{ github.head_ref || github.ref }}
@@ -57,21 +57,6 @@ jobs:
5757
uses: crate-ci/typos@master
5858
with:
5959
config: ./.github/workflows/typos.toml
60-
- name: URL Checker
61-
uses: urlstechie/[email protected]
62-
with:
63-
# A comma-separated list of file types to cover in the URL checks
64-
file_types: .md,.rst,.py
65-
# Choose whether to include file with no URLs in the prints.
66-
print_all: false
67-
# More verbose summary at the end of a run
68-
verbose: true
69-
# How many times to retry a failed request (defaults to 1)
70-
retry_count: 3
71-
# Exclude:
72-
# - Jenkins because it's behind a firewall
73-
# - RTD because a magically-generated string triggers failures
74-
exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html
7560

7661

7762
build:
@@ -82,7 +67,7 @@ jobs:
8267
strategy:
8368
fail-fast: false
8469
matrix:
85-
os: [ubuntu-latest, macos-13, windows-latest]
70+
os: [ubuntu-latest, macos-latest, windows-latest]
8671
python: [ 3.8, 3.9, '3.10', '3.11', '3.12' ]
8772
other: [""]
8873
category: [""]
@@ -92,12 +77,13 @@ jobs:
9277
exclude:
9378
- os: windows-latest
9479
python: 3.8
80+
9581
include:
9682
- os: ubuntu-latest
9783
TARGET: linux
9884
PYENV: pip
9985

100-
- os: macos-13
86+
- os: macos-latest
10187
TARGET: osx
10288
PYENV: pip
10389

@@ -123,14 +109,6 @@ jobs:
123109
PYENV: conda
124110
PACKAGES: openmpi mpi4py
125111

126-
- os: ubuntu-latest
127-
python: '3.11'
128-
other: /singletest
129-
category: "-m 'neos or importtest'"
130-
skip_doctest: 1
131-
TARGET: linux
132-
PYENV: pip
133-
134112
- os: ubuntu-latest
135113
python: '3.10'
136114
other: /cython
@@ -147,6 +125,14 @@ jobs:
147125
TARGET: win
148126
PYENV: pip
149127

128+
- os: ubuntu-latest
129+
python: '3.11'
130+
other: /singletest
131+
category: "-m 'neos or importtest'"
132+
skip_doctest: 1
133+
TARGET: linux
134+
PYENV: pip
135+
150136
- os: ubuntu-latest
151137
python: 3.8
152138
other: /slim
@@ -258,6 +244,7 @@ jobs:
258244
if: matrix.TARGET == 'win'
259245
run: |
260246
echo "SETUPTOOLS_USE_DISTUTILS=local" >> $GITHUB_ENV
247+
choco install pkgconfiglite
261248
262249
- name: Set up Python ${{ matrix.python }}
263250
if: matrix.PYENV == 'pip'
@@ -395,6 +382,10 @@ jobs:
395382
done
396383
echo ""
397384
echo "*** Install Pyomo dependencies ***"
385+
# For windows, cannot use newer setuptools because of APPSI compilation issues
386+
if test "${{matrix.TARGET}}" == 'win'; then
387+
CONDA_DEPENDENCIES="$CONDA_DEPENDENCIES setuptools<74.0.0"
388+
fi
398389
# Note: this will fail the build if any installation fails (or
399390
# possibly if it outputs messages to stderr)
400391
conda install --update-deps -q -y $CONDA_DEPENDENCIES
@@ -562,7 +553,7 @@ jobs:
562553
$BARON_DIR = "${env:TPL_DIR}/baron"
563554
echo "$BARON_DIR" | `
564555
Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
565-
$URL = "https://minlp.com/downloads/xecs/baron/current/"
556+
$URL = "https://minlp-downloads.nyc3.cdn.digitaloceanspaces.com/xecs/baron/current/"
566557
if ( "${{matrix.TARGET}}" -eq "win" ) {
567558
$INSTALLER = "${env:DOWNLOAD_DIR}/baron_install.exe"
568559
$URL += "baron-win64.exe"
@@ -713,6 +704,7 @@ jobs:
713704
uses: actions/upload-artifact@v4
714705
with:
715706
name: ${{github.job}}_${{env.GHA_JOBGROUP}}-${{env.GHA_JOBNAME}}
707+
include-hidden-files: true
716708
path: |
717709
.coverage
718710
coverage.xml

.github/workflows/url_check.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: URL Validation
2+
3+
on:
4+
schedule:
5+
- cron: '0 3 * * 0'
6+
workflow_dispatch:
7+
inputs:
8+
git-ref:
9+
description: Git Hash (Optional)
10+
required: false
11+
12+
jobs:
13+
url_check:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout Pyomo source
17+
uses: actions/checkout@v4
18+
- name: URL Checker
19+
uses: urlstechie/[email protected]
20+
with:
21+
# A comma-separated list of file types to cover in the URL checks
22+
file_types: .md,.rst,.py
23+
# Choose whether to include file with no URLs in the prints.
24+
print_all: false
25+
# More verbose summary at the end of a run
26+
verbose: true
27+
# How many times to retry a failed request (defaults to 1)
28+
retry_count: 3
29+
# Exclude:
30+
# - Jenkins because it's behind a firewall
31+
# - RTD because a magically-generated string triggers failures
32+
exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html

0 commit comments

Comments
 (0)