Skip to content

Dependency cleanup phase 2: CI runners consume the [test] extra - #821

Merged
bknueven merged 2 commits into
mainfrom
dependency-cleanup-phase2
Aug 7, 2026
Merged

Dependency cleanup phase 2: CI runners consume the [test] extra#821
bknueven merged 2 commits into
mainfrom
dependency-cleanup-phase2

Conversation

@DLWoodruff

Copy link
Copy Markdown
Collaborator

Second of three PRs implementing doc/designs/dependency_cleanup_design.md (first: #811, merged; third will add attempt_import guards 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-line pyproject.toml change instead of ~12 YAML edits. Touches test_pr_and_main.yml, pyotracker.yml, and test_uc_weekly.yml; net −2 lines with more of the remaining lines being comments.

What stays explicit, per job

  • Solvers (cplex, xpress, gurobipy, highspy) — deliberately in no extra (licensing).
  • pyomo + pybind11 in the five jobs whose pyomo build-extensions step runs before the editable install (regression, the four run_all jobs, generic_tester).
  • Git installs: parapint/pyutilib/git-pyomo in schur-complement; the git egret in test_uc_weekly.yml (installed before [test], so it satisfies the extra's gridx-egret requirement and is not replaced).
  • conda lines (mpi4py pandas setuptools etc.) — conda jobs get mpi4py from conda, so [mpi] is unnecessary in CI.
  • pyyaml in test-headers, and test-pysp's conda pytest pyyaml networkx.

Deliberate changes beyond pure consolidation

  • uc-relaxed now uses gridx-egret from 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.
  • sphinx dropped from non-doc jobs; the two jobs that run make doctest (regression, pyotracker) use ".[test,doc]".
  • sympy and Pympler installs dropped entirely — neither is imported anywhere in mpisppy/ or examples/ (cargo-cult carryover).
  • The no-solver unit-tests job now installs the feature packages (scipy, dill, etc. arrive via [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, and test_uc_weekly supports workflow_dispatch for a manual check after merge.

🤖 Generated with Claude Code

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

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.59%. Comparing base (89c7693) to head (b8c25e1).
⚠️ Report is 3 commits behind head on main.

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.
📢 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.

@DLWoodruff
DLWoodruff requested a review from bknueven August 6, 2026 19:50
@bknueven
bknueven enabled auto-merge August 7, 2026 17:40
@bknueven
bknueven merged commit daeaa46 into main Aug 7, 2026
31 checks passed
@bknueven
bknueven deleted the dependency-cleanup-phase2 branch August 7, 2026 17:58
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