-
Notifications
You must be signed in to change notification settings - Fork 104
Adding best practices and details #692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
📝 WalkthroughWalkthroughAdds repository governance and agent guidance documents, updates README badges and removes the Resources section, tweaks the release script to update README version badge, and renames several GitHub issue template display names to include emojis. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Pre-merge checks and finishing touches❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (5)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
🔇 Additional comments (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🧹 Nitpick comments (3)
.github/CODE_OF_CONDUCT.md (1)
1-1: Consider using the canonical GitHub “Code of Conduct” format (title + text), not just a link.A single-link file technically works, but GitHub’s Community Standards UX is better when the file includes at least a heading and a brief statement (and optionally the full covenant text / adoption statement).
.github/AGENTS.md (1)
50-55: Align “System Requirements” with README (or explicitly scope it) to avoid conflicting guidance.
AGENTS.md says “CUDA: 12.5+” while README lists “CUDA 12.0+”. Pick one source of truth (or call out “dev env vs runtime”).ci/release/update-version.sh (1)
134-136: Make the sed replacement safer by escaping the replacement string (future-proofing).
IfNEXT_FULL_TAGever contains sed-significant chars (e.g.,&), replacement will break.# Update README.md version badge -sed_runner 's/badge\/version-[0-9]\+\.[0-9]\+\.[0-9]\+-blue/badge\/version-'${NEXT_FULL_TAG}'-blue/g' README.md +ESCAPED_NEXT_FULL_TAG=$(printf '%s' "${NEXT_FULL_TAG}" | sed 's/[&/\]/\\&/g') +sed_runner 's/badge\/version-[0-9]\+\.[0-9]\+\.[0-9]\+-blue/badge\/version-'${ESCAPED_NEXT_FULL_TAG}'-blue/g' README.md
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/AGENTS.md(1 hunks).github/CODE_OF_CONDUCT.md(1 hunks).github/SECURITY.md(1 hunks)README.md(1 hunks)ci/release/update-version.sh(1 hunks)
🧰 Additional context used
🧠 Learnings (7)
📚 Learning: 2025-10-22T14:25:22.899Z
Learnt from: aliceb-nv
Repo: NVIDIA/cuopt PR: 527
File: cpp/src/mip/diversity/lns/rins.cu:167-175
Timestamp: 2025-10-22T14:25:22.899Z
Learning: In MIP (Mixed Integer Programming) problems in the cuOPT codebase, `n_integer_vars == 0` is impossible by definition—MIP problems must have at least one integer variable. If there are no integer variables, it would be a pure Linear Programming (LP) problem, not a MIP problem.
Applied to files:
README.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Validate algorithm correctness in optimization logic: simplex pivots, branch-and-bound decisions, routing heuristics, and constraint/objective handling must produce correct results
Applied to files:
.github/AGENTS.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Check that hard-coded GPU device IDs and resource limits are made configurable; abstract multi-backend support for different CUDA versions
Applied to files:
.github/AGENTS.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.cu : Detect inefficient GPU kernel launches with low occupancy or poor memory access patterns; optimize for coalesced memory access and minimize warp divergence in hot paths
Applied to files:
.github/AGENTS.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh,cpp,hpp,h} : Verify error propagation from CUDA to user-facing APIs is complete; ensure CUDA errors are caught and mapped to meaningful user error codes
Applied to files:
.github/AGENTS.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*benchmark*.{cpp,cu,py} : Include performance benchmarks and regression detection for GPU operations; verify near real-time performance on million-variable problems
Applied to files:
.github/AGENTS.md
📚 Learning: 2025-11-25T10:20:49.822Z
Learnt from: CR
Repo: NVIDIA/cuopt PR: 0
File: .github/.coderabbit_review_guide.md:0-0
Timestamp: 2025-11-25T10:20:49.822Z
Learning: Applies to **/*.{cu,cuh} : Avoid reinventing functionality already available in Thrust, CCCL, or RMM libraries; prefer standard library utilities over custom implementations
Applied to files:
.github/AGENTS.md
🪛 markdownlint-cli2 (0.18.1)
.github/SECURITY.md
15-15: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
.github/AGENTS.md
17-17: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
312-312: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
- GitHub Check: wheel-build-cuopt-sh-client / 13.0.2, 3.10, amd64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.13, arm64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.10, amd64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.12, arm64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.12, amd64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.10, arm64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.11, arm64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.11, amd64, rockylinux8
- GitHub Check: wheel-build-cuopt-mps-parser / 13.0.2, 3.13, amd64, rockylinux8
- GitHub Check: checks / check-style
| ``` | ||
| cuopt/ | ||
| ├── cpp/ # Core C++ engine (libcuopt, libmps_parser) | ||
| │ ├── include/cuopt/ # Public C/C++ headers | ||
| │ ├── src/ # Implementation (CUDA kernels, algorithms) | ||
| │ └── tests/ # C++ unit tests (gtest) | ||
| ├── python/ | ||
| │ ├── cuopt/ # Python bindings and routing API | ||
| │ ├── cuopt_server/ # REST API server | ||
| │ ├── cuopt_self_hosted/ # Self-hosted deployment utilities | ||
| │ └── libcuopt/ # Python wrapper for C library | ||
| ├── ci/ # CI/CD scripts and Docker configurations | ||
| ├── conda/ # Conda recipes and environment files | ||
| ├── docs/ # Documentation source | ||
| ├── datasets/ # Test datasets for LP, MIP, routing | ||
| └── notebooks/ # Example Jupyter notebooks | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a language to the fenced code block (markdownlint MD040).
-```
+```text
cuopt/
├── cpp/ # Core C++ engine (libcuopt, libmps_parser)
...
└── notebooks/ # Example Jupyter notebooks
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.18.1)</summary>
17-17: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
.github/AGENTS.md around lines 17 to 33: the fenced code block doesn't specify a
language, triggering markdownlint MD040; update the opening fence to include a
language (e.g., use text or bash) so the block is explicitly annotated and
linting passes, then save the file.
</details>
<!-- fingerprinting:phantom:triton:falcon -->
<!-- This is an auto-generated comment by CodeRabbit -->
| # Create conda environment (recommended) | ||
| conda env create --name cuopt_dev --file conda/environments/all_cuda-130_arch-$(uname -m).yaml | ||
| conda activate cuopt_dev | ||
|
|
||
| # Build all components | ||
| ./build.sh | ||
|
|
||
| # Build specific components | ||
| ./build.sh libmps_parser libcuopt # C++ libraries only | ||
| ./build.sh libcuopt -g # Debug build | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# AGENTS.md referenced files (existence check)
ls -la conda/environments 2>/dev/null || echo "conda/environments not found"
ls -la datasets 2>/dev/null || echo "datasets directory not found"
# Find likely matching conda env files
fd -a 'all_cuda-130_arch-.*\.ya?ml' conda/environments 2>/dev/null || echo "No matching conda env files"
# Check referenced dataset scripts
fd -a 'get_test_data\.sh' 2>/dev/null || echo "get_test_data.sh not found"
fd -a 'download_.*_test_dataset\.sh' 2>/dev/null || echo "No matching download scripts"
# Check pytest path exists
ls -la python/cuopt/cuopt/tests 2>/dev/null || echo "Tests directory not found"Repository: NVIDIA/cuopt
Length of output: 1609
🏁 Script executed:
# Read the full AGENTS.md file to see lines 64-74 and 94-106
cat -n .github/AGENTS.md | sed -n '60,110p'Repository: NVIDIA/cuopt
Length of output: 1615
🏁 Script executed:
# Check for download scripts in datasets subdirectories
find datasets -name "download_*.sh" -type f 2>/dev/null | sortRepository: NVIDIA/cuopt
Length of output: 158
All referenced paths and commands are correct, but fix the shell command structure on line 98.
Lines 64-74: The conda environment file (conda/environments/all_cuda-130_arch-$(uname -m).yaml), ./build.sh, and referenced build components all exist and match current workflows.
Lines 94-106: The test data scripts (datasets/get_test_data.sh, datasets/linear_programming/download_pdlp_test_dataset.sh, datasets/mip/download_miplib_test_dataset.sh) and pytest path (python/cuopt/cuopt/tests) all exist.
However, line 98 is missing the cd $CUOPT_HOME && prefix that line 97 has. Without it, the command will fail when executed sequentially. Update line 98 to:
cd $CUOPT_HOME && datasets/mip/download_miplib_test_dataset.sh
🤖 Prompt for AI Agents
.github/AGENTS.md around lines 64 to 74: line 98 is missing the required
working-directory prefix, causing the download script to run from the wrong
location; update the command to prepend the same "cd $CUOPT_HOME &&" used on the
previous line so the script runs from the project root (i.e., change the line to
run the download script with "cd $CUOPT_HOME &&" before the script path).
|
|
||
| --- | ||
|
|
||
| *Last updated: December 2024 | cuOpt v25.12* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid “emphasis as heading” + update stale metadata (“Last updated: December 2024”) given this PR is Dec 2025.
-*Last updated: December 2024 | cuOpt v25.12*
+## Metadata
+Last updated: December 2025 | cuOpt v25.12📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| *Last updated: December 2024 | cuOpt v25.12* | |
| ## Metadata | |
| Last updated: December 2025 | cuOpt v25.12 |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
312-312: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🤖 Prompt for AI Agents
In .github/AGENTS.md at line 312, the line uses emphasis-as-heading and has
stale metadata; replace the italicized line with a proper non-emphasized heading
or plain text (e.g., remove surrounding asterisks) and update the date from
"December 2024" to "December 2025" (keep the "cuOpt v25.12" token as-is unless
other version updates are required).
| - Please include the following information: | ||
| - Product/Driver name and version/branch that contains the vulnerability |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix nested list indentation (markdownlint MD007) to avoid inconsistent rendering.
-- Please include the following information:
- - Product/Driver name and version/branch that contains the vulnerability
+- Please include the following information:
+ - Product/Driver name and version/branch that contains the vulnerability📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Please include the following information: | |
| - Product/Driver name and version/branch that contains the vulnerability | |
| - Please include the following information: | |
| - Product/Driver name and version/branch that contains the vulnerability |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
15-15: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
🤖 Prompt for AI Agents
.github/SECURITY.md lines 14-15: the nested bullet under "Please include the
following information:" is mis-indented causing markdownlint MD007 and
inconsistent rendering; fix by indenting the nested list item by four spaces (or
one tab) relative to the parent bullet so it becomes a proper nested list (e.g.,
parent line, newline, four-space indent then "- Product/Driver name and
version/branch that contains the vulnerability"), and ensure other nested lists
in the file follow the same indentation for consistency.
| [](https://github.com/NVIDIA/cuopt/releases) | ||
| [](https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html) | ||
| [](https://hub.docker.com/r/nvidia/cuopt) | ||
| [](https://github.com/NVIDIA/cuopt-examples) | ||
| [](https://colab.research.google.com/github/NVIDIA/cuopt-examples/blob/cuopt_examples_launcher/cuopt_examples_launcher.ipynb) | ||
| [](https://brev.nvidia.com/launchable/deploy?launchableID=env-2qIG6yjGKDtdMSjXHcuZX12mDNJ) | ||
| [](https://docs.nvidia.com/cuopt/user-guide/latest/resources.html#cuopt-examples-and-tutorials-videos) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Check all external links from the README
urls=(
"https://github.com/NVIDIA/cuopt/releases"
"https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html"
"https://hub.docker.com/r/nvidia/cuopt"
"https://github.com/NVIDIA/cuopt-examples"
"https://colab.research.google.com/github/NVIDIA/cuopt-examples/blob/cuopt_examples_launcher/cuopt_examples_launcher.ipynb"
"https://brev.nvidia.com/launchable/deploy?launchableID=env-2qIG6yjGKDtdMSjXHcuZX12mDNJ"
"https://docs.nvidia.com/cuopt/user-guide/latest/resources.html#cuopt-examples-and-tutorials-videos"
)
for u in "${urls[@]}"; do
code="$(curl -sSIL -o /dev/null -w '%{http_code}' "$u" 2>&1 || true)"
printf '%s -> %s\n' "$u" "$code"
doneRepository: NVIDIA/cuopt
Length of output: 598
One of the new external badge links returns an error — the Colab URL returns HTTP 405 (Method Not Allowed), which will likely break the badge.
The Colab URL https://colab.research.google.com/github/NVIDIA/cuopt-examples/blob/cuopt_examples_launcher/cuopt_examples_launcher.ipynb needs to be verified or corrected. The other links (Launchable, Examples, and all existing badges) all return 200 and are working correctly.
🤖 Prompt for AI Agents
In README.md around lines 4-10, the Colab badge URL returns HTTP 405 and breaks
the badge; open and verify the target notebook URL in a browser, then replace
the badge target with a working Colab link (e.g., the canonical Colab URL that
opens the notebook or the direct GitHub blob URL) or remove the badge if no
Colab-openable URL exists; ensure the updated link returns 200 and the badge
renders correctly before committing.
|
🔔 Hi @anandhkb @rgsl888prabhu, this pull request has had no activity for 7 days. Please update or let us know if it can be closed. Thank you! If this is an "epic" issue, then please add the "epic" label to this issue. |
Description
Adding best practices and elements to help user interaction with repo.
Issue
closes #690
Checklist
Summary by CodeRabbit
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.