Compare POUNCE 0.10.0 across NLP applications - #148
Draft
Mazhar331 wants to merge 2 commits into
Draft
Conversation
This was referenced Aug 15, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pounceextra pinned topounce-solver==0.10.0andpyomo-pounce==0.10.0POUNCE solver lanefor non-draft Pyomo-sensitive changes, while retaining local and manual-dispatch entry pointsThe POUNCE and IPOPT jobs remain separate CI results. Both use the existing Pyomo scope decision, run for relevant non-draft changes, and report a clean skip elsewhere so either can later become a required check. POUNCE does not replace IPOPT or become a default package dependency.
Results
Across the shared successful pseudosteady rungs, POUNCE and IPOPT agree within the committed scientific tolerances. The application-wide lane passes except for one deliberate strict xfail:
f=0.02rung as infeasible. The proposed upstream fix in #596 has been validated downstream, but is not released..nlreproducer is available upstream.This PR intentionally pins the released 0.10.0 behavior. A later POUNCE release should be handled in a focused follow-up that regenerates the baseline and removes the xfail only when the original cold GDP path is stable.
Validation
actionlint .github/workflows/pyomo-tests.yml .github/workflows/slow-tests.ymlpython -m ruff check lyopronto tests examples main.pypytest -n 0 -q tests/test_packaging_config.py tests/test_pounce_solver_comparison.py— 21 passedSKIP_INSTALL=1 ./run_local_ci.sh pounce— 183 passed, 1 xfailed, 418 deselectedPOUNCE solver lanepassed with 183 passed, 1 xfailed, 418 deselectedStacking
This PR is intentionally based on
feat/issue-146-surface-convergence-quality/ #147 because the comparison consumes the convergence-quality schema introduced there. Retarget it tomainafter #147 lands.