Skip to content

add pulp, pyomo integration tests#945

Merged
rapids-bot[bot] merged 8 commits intoNVIDIA:release/26.04from
Iroy30:add_pulp_pyomo_ci_testing
Mar 24, 2026
Merged

add pulp, pyomo integration tests#945
rapids-bot[bot] merged 8 commits intoNVIDIA:release/26.04from
Iroy30:add_pulp_pyomo_ci_testing

Conversation

@Iroy30
Copy link
Copy Markdown
Member

@Iroy30 Iroy30 commented Mar 9, 2026

Description

Fixes #295

Issue

Checklist

  • I am familiar with the Contributing Guidelines.
  • Testing
    • New or existing tests cover these changes
    • Added tests
    • Created an issue to follow-up
    • NA
  • Documentation
    • The documentation is up to date with these changes
    • Added new documentation
    • NA

@Iroy30 Iroy30 requested a review from a team as a code owner March 9, 2026 20:02
@Iroy30 Iroy30 requested a review from gforsyth March 9, 2026 20:03
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot bot commented Mar 9, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 488de8f6-485d-46be-a0cb-fca211c0eca2

📥 Commits

Reviewing files that changed from the base of the PR and between fc0fc8c and 0af40f8.

📒 Files selected for processing (3)
  • ci/test_wheel_cuopt.sh
  • ci/thirdparty-testing/run_pulp_tests.sh
  • ci/thirdparty-testing/run_pyomo_tests.sh
✅ Files skipped from review due to trivial changes (1)
  • ci/thirdparty-testing/run_pyomo_tests.sh
🚧 Files skipped from review as they are similar to previous changes (2)
  • ci/test_wheel_cuopt.sh
  • ci/thirdparty-testing/run_pulp_tests.sh

📝 Walkthrough

Walkthrough

Nightly wheel tests now invoke two new third‑party CI scripts. The PR adds ci/thirdparty-testing/run_pulp_tests.sh and ci/thirdparty-testing/run_pyomo_tests.sh, which clone, install, and run cuOpt‑focused tests for PuLP and Pyomo with timeouts.

Changes

Cohort / File(s) Summary
Main test script update
ci/test_wheel_cuopt.sh
When RAPIDS_BUILD_TYPE is nightly, the script now calls ./ci/thirdparty-testing/run_pulp_tests.sh and ./ci/thirdparty-testing/run_pyomo_tests.sh in addition to existing third‑party test invocations.
Third‑party test scripts
ci/thirdparty-testing/run_pulp_tests.sh, ci/thirdparty-testing/run_pyomo_tests.sh
Added new bash CI scripts that shallow‑clone the upstream repos (PuLP, Pyomo), install each package in editable mode using --constraint ${PIP_CONSTRAINT} and a RAPIDS nightly wheels index, run pip check, and execute cuOpt/CUOPT‑filtered pytest under a 5‑minute timeout (PuLP script falls back to run_tests.py if no tests collected).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'add pulp, pyomo integration tests' directly and concisely summarizes the main change: adding integration tests for PuLP and Pyomo modelers to the CI pipeline.
Description check ✅ Passed The description references issue #295 which is about modeler integration tests, and the changes add integration test scripts for PuLP and Pyomo, which relates to the issue requirement.
Linked Issues check ✅ Passed The pull request adds PuLP and Pyomo integration test scripts that directly implement the requirement in #295 to add integration tests for other modelers beyond cvxpy.
Out of Scope Changes check ✅ Passed All changes are scoped to adding integration test runners for PuLP and Pyomo; modifications to ci/test_wheel_cuopt.sh to invoke these tests are directly related to the objective of adding these modeler integration tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@Iroy30 Iroy30 added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Mar 9, 2026
@Iroy30
Copy link
Copy Markdown
Member Author

Iroy30 commented Mar 9, 2026

/ok to test 93d8529

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
ci/thirdparty-testing/run_pulp_tests.sh (1)

9-12: Consider relying on set -u for unbound variable detection.

The explicit guard provides a helpful custom message, but repository convention prefers letting set -u handle unbound variables with default error messages. You could simplify by removing this check and using "${PIP_CONSTRAINT}" directly in the pip install command.

Based on learnings: "In this repository, prefer using 'set -u' in Bash scripts to detect unbound variables and rely on the default unbound-variable error messages rather than implementing explicit guards with custom error messages."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci/thirdparty-testing/run_pulp_tests.sh` around lines 9 - 12, The script
contains an explicit guard that checks PIP_CONSTRAINT and exits with a custom
message; repository convention prefers using set -u to detect unbound variables.
Remove the if [ -z "${PIP_CONSTRAINT:-}" ] ... fi block and rely on the existing
(or add) set -u at the top of run_pulp_tests.sh, then reference
"${PIP_CONSTRAINT}" directly where used (e.g., the pip install or constraint
flag) so an unbound variable will produce the standard set -u error instead of
the custom guard.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ci/thirdparty-testing/run_pyomo_tests.sh`:
- Around line 28-34: Capture the pytest exit status after running the existing
timeout + python -m pytest command in run_pyomo_tests.sh (the block that filters
with -k "cuopt or CUOPT"), then add handling for exit code 5 (no tests
collected) similar to the PuLP script: if pytest returns 5 treat it as a
non-failure (exit 0) or otherwise propagate the original exit code; ensure you
reference the pytest invocation and the shell variable holding its exit status
so the script exits consistently.

---

Nitpick comments:
In `@ci/thirdparty-testing/run_pulp_tests.sh`:
- Around line 9-12: The script contains an explicit guard that checks
PIP_CONSTRAINT and exits with a custom message; repository convention prefers
using set -u to detect unbound variables. Remove the if [ -z
"${PIP_CONSTRAINT:-}" ] ... fi block and rely on the existing (or add) set -u at
the top of run_pulp_tests.sh, then reference "${PIP_CONSTRAINT}" directly where
used (e.g., the pip install or constraint flag) so an unbound variable will
produce the standard set -u error instead of the custom guard.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a244d300-66f5-4c14-828f-a96c9c3b0e99

📥 Commits

Reviewing files that changed from the base of the PR and between c36ae1d and 93d8529.

📒 Files selected for processing (3)
  • ci/test_wheel_cuopt.sh
  • ci/thirdparty-testing/run_pulp_tests.sh
  • ci/thirdparty-testing/run_pyomo_tests.sh

@anandhkb anandhkb added this to the 26.04 milestone Mar 9, 2026
@Iroy30
Copy link
Copy Markdown
Member Author

Iroy30 commented Mar 10, 2026

/ok to test efe07ee

@anandhkb
Copy link
Copy Markdown
Contributor

@gforsyth Requesting your review from a CI standpoint on this @Iroy30 's PR
@rgsl888prabhu as CC

Copy link
Copy Markdown
Contributor

@gforsyth gforsyth left a comment

Choose a reason for hiding this comment

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

I'm leaving an approval here so you can merge after these changes are made -- all relatively minor. Fix up the copyright dates, and change the echo calls to rapids-logger for better visibility in the logs, otherwise LGTM.


set -e -u -o pipefail

echo "building 'pulp' from source and running cuOpt tests"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Better to use rapids-logger instead of echo -- it makes it easier to parse in github actions logs.

I'd suggest replacing all echo calls with rapids-logger

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

updated, thanks!

@rgsl888prabhu rgsl888prabhu changed the base branch from main to release/26.04 March 19, 2026 16:32
Iroy30 and others added 5 commits March 23, 2026 23:11
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
@Iroy30
Copy link
Copy Markdown
Member Author

Iroy30 commented Mar 24, 2026

/ok to test 0af40f8

@Iroy30
Copy link
Copy Markdown
Member Author

Iroy30 commented Mar 24, 2026

/merge

@rapids-bot rapids-bot bot merged commit 7dc755e into NVIDIA:release/26.04 Mar 24, 2026
207 of 209 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEA] Modeler Integration Tests

3 participants