Skip to content

Update GHA TPL cache; resolve new test failures#3865

Open
jsiirola wants to merge 35 commits intoPyomo:mainfrom
jsiirola:baron-license-check
Open

Update GHA TPL cache; resolve new test failures#3865
jsiirola wants to merge 35 commits intoPyomo:mainfrom
jsiirola:baron-license-check

Conversation

@jsiirola
Copy link
Member

@jsiirola jsiirola commented Mar 1, 2026

Fixes # .

Summary/Motivation:

This updates the GHA TPL caches. Sort of. We are updating GAMS to the almost-current version (52.5) because the current version (53.1) causes segfaults (at least under pytest). The updated versions led to some test errors that this PR also resolves:

  • Rework the BARON license test to rely on the LST ("times") file and not parsing the log (in the most recent BARON version the log message changed).
    • This also takes the opportunity to significantly simplify the logic around parsing and caching the BARON version / licensing information.
    • This also adds some "defensive" exceptions to catch incomplete results parsing if the Baron API ever expands/
  • Update Xpress "locally optimal" test so Xpress doesn't recognize it as a conic problem it "knows how to solve"
  • Update GAMS on GHA:
    • Stop installing gams distribution on OSX (self-extracting zip is no longer distributed, and I couldn't see how to (easily) install the package on GHA.
    • Update the gams Python installation for recent package layout
    • Add fallback on gamspy from PyPI if we either don't recognize the layout or didn't install the package

While working on things, some other things were cleaned up:

  • Rework/simplify the download-extensions command
    • simplify (and document!) function control flow.
    • move retry parameters from module constants to command-line arguments.
  • GHA drivers
    • standardize on use of the curlrc for passing standard options to curl
    • remove creation of local variables that led to obfuscation of the driver logic
    • update test-branches python versions to get better coverage without adding tests

NOTE: the intent is to let this PR build and generate the new caches, then we will update the PR to unpin GAMS (but not trigger the caches to be rebuilt).

Changes proposed in this PR:

  • (see above)

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

@codecov
Copy link

codecov bot commented Mar 1, 2026

Codecov Report

❌ Patch coverage is 69.09091% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.29%. Comparing base (ae10c13) to head (816f812).

Files with missing lines Patch % Lines
pyomo/scripting/plugins/download.py 38.88% 11 Missing ⚠️
pyomo/solvers/plugins/solvers/BARON.py 83.78% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3865      +/-   ##
==========================================
- Coverage   89.65%   88.29%   -1.36%     
==========================================
  Files         908      908              
  Lines      106757   106732      -25     
==========================================
- Hits        95715    94244    -1471     
- Misses      11042    12488    +1446     
Flag Coverage Δ
builders 29.08% <65.45%> (-0.01%) ⬇️
default 85.94% <65.45%> (?)
expensive 35.51% <65.45%> (?)
linux 84.06% <67.27%> (-5.08%) ⬇️
linux_other 84.06% <67.27%> (-2.79%) ⬇️
oldsolvers 28.00% <23.63%> (+<0.01%) ⬆️
osx 82.45% <67.27%> (-0.59%) ⬇️
win ?
win_other ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.


- os: windows-latest
python: 3.14
python: 3.13
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one was intentionally on 3.14 because that's where a lot of Windows weirdness seems to happen lately.

$osxarch = (uname -m).Trim()
if ( "$osxarch" -eq "arm64" ) {
$URL = "$URL/macosx/osx_arm64_sfx.exe"
} else {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have this logic if we are skipping OSX?

ext()
result = " OK "
else:
# If the extension has a __cell__(), then call
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# If the extension has a __cell__(), then call
# If the extension has a __call__(), then call

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants