Dependency cleanup phase 2: CI runners consume the [test] extra - #821
Merged
Conversation
Replace each job's hand-rolled feature-package pip list with pip install -e ".[test]" (plus [doc] where the job runs make doctest), per section 4 of doc/designs/dependency_cleanup_design.md. Kept explicit per job: solver installs (cplex/xpress/gurobipy/highspy), pyomo+pybind11 where a build-extensions step precedes the editable install, git installs (parapint, pyutilib, weekly-UC egret), and the conda mpi4py lines. Dropped sphinx from non-doc jobs and the never-imported sympy/Pympler installs. The uc-relaxed job now takes gridx-egret from the extra; the git egret stays only in test_uc_weekly.yml. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #821 +/- ##
=======================================
Coverage 76.59% 76.59%
=======================================
Files 175 175
Lines 23239 23239
=======================================
+ Hits 17799 17801 +2
+ Misses 5440 5438 -2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
bknueven
approved these changes
Aug 7, 2026
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.
Second of three PRs implementing
doc/designs/dependency_cleanup_design.md(first: #811, merged; third will addattempt_importguards for the four opt-in modules).Per §4 of the design doc, every CI job's hand-rolled feature-package pip list is replaced by
pip install -e ".[test]"at the existing editable-install step, so adding a test dependency becomes a one-linepyproject.tomlchange instead of ~12 YAML edits. Touchestest_pr_and_main.yml,pyotracker.yml, andtest_uc_weekly.yml; net −2 lines with more of the remaining lines being comments.What stays explicit, per job
cplex,xpress,gurobipy,highspy) — deliberately in no extra (licensing).pyomo+pybind11in the five jobs whosepyomo build-extensionsstep runs before the editable install (regression, the four run_all jobs, generic_tester).test_uc_weekly.yml(installed before[test], so it satisfies the extra'sgridx-egretrequirement and is not replaced).mpi4py pandas setuptoolsetc.) — conda jobs get mpi4py from conda, so[mpi]is unnecessary in CI.pyyamlin test-headers, and test-pysp's condapytest pyyaml networkx.Deliberate changes beyond pure consolidation
gridx-egretfrom the[test]extra instead of a git egret install — standardizing on the released egret in the PR workflow; the git egret lives only in the weekly UC workflow.make doctest(regression, pyotracker) use".[test,doc]".sympyandPymplerinstalls dropped entirely — neither is imported anywhere inmpisppy/orexamples/(cargo-cult carryover).[test]), so optional-dependency test paths that were silently skipped there now run.The ruff job's pinned
astral-sh/ruff-action@v3(0.15.21, from #812) is untouched.Verification
The full matrix running on this PR is the verification, per the design doc ("it already runs on PRs"). The two scheduled workflows (
pyotracker,test_uc_weekly) don't run on PRs; their edits follow the identical pattern, andtest_uc_weeklysupportsworkflow_dispatchfor a manual check after merge.🤖 Generated with Claude Code