-
-
Notifications
You must be signed in to change notification settings - Fork 8
style: update color from #00a893 to #3badda #309
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
Conversation
✅ Deploy Preview for commit-check ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughUpdated README badge colors and inline badge ordering; refreshed docs CSS palette and variables; reworked Sphinx CLI-help parsing and emission to build Changes
Sequence Diagram(s)sequenceDiagram
participant Conf as docs/conf.py
participant CLI as subprocess (CLI)
participant Parser as "line-by-line parser"
participant Writer as "cli_args.rst writer"
Conf->>CLI: run CLI to get help (subprocess.run(..., check=True))
CLI-->>Conf: stdout (help text)
Conf->>Parser: split help text into lines
Parser->>Parser: find "options:" (case-insensitive)
alt options present
Parser->>Parser: match option lines, collect descriptions (lookahead)
Parser->>Conf: emit `std:option` blocks (with blank lines)
else no options
Parser->>Conf: preserve original lines
end
Conf->>Writer: join lines with "\n"
Writer-->>Conf: write `cli_args.rst`
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (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). (14)
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
README.rst(2 hunks)docs/_static/extra_css.css(1 hunks)docs/conf.py(2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Maintain Sphinx documentation under docs/ to build HTML docs with sphinx-build
Files:
docs/_static/extra_css.cssdocs/conf.py
🔇 Additional comments (3)
docs/conf.py (1)
58-59: LGTM! Sphinx theme palette updated consistently.The palette changes from "light-blue"/"deep-purple" to "blue"/"light-blue" are applied consistently across both light and dark color schemes.
Also applies to: 68-69
docs/_static/extra_css.css (2)
10-10: Header background color updated consistently.The navigation header background color is updated from the old teal (#009485) to the new blue (#2c9ccd), matching the overall branding update.
18-53: Comprehensive brand color theme added with proper structure.The new CSS rules establish a complete color scheme using the brand color #2c9ccd, including:
- Root CSS variables for reusable color definitions
- Navigation link active/hover states
- Primary button styling with hover effects
- Code block and syntax highlighting accents
- Admonition title styling
The implementation follows CSS best practices with proper use of CSS variables, rgba() for transparency, and consistent hover state handling.
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: 0
🧹 Nitpick comments (1)
docs/conf.py (1)
139-150: Logic looks correct, but consider clarifying the comment.The refactored option parsing correctly:
- Uses
match()instead ofsearch()for precise start-of-line matching- Adds blank lines before/after
std:optiondirectives for proper reStructuredText formatting- Preserves original help text by appending the line at line 150 (even after adding directives)
The comment at line 144 says "Always add a blank line" but the blank line is only added when there's a match. Consider rewording to: "Add a blank line before std:option directive to avoid indentation issues."
Apply this diff to clarify the comment:
- # Always add a blank line before std:option to avoid indentation issues + # Add a blank line before std:option directive to avoid indentation issues
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/conf.py(3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Maintain Sphinx documentation under docs/ to build HTML docs with sphinx-build
Files:
docs/conf.py
🔇 Additional comments (6)
docs/conf.py (6)
58-59: LGTM! Palette updated for branding consistency.The color scheme changes from light-blue/deep-purple to blue/light-blue align with the PR's objective to update branding colors.
68-69: LGTM! Dark mode palette updated consistently.The dark mode palette mirrors the light mode changes, ensuring a consistent color scheme across both themes.
117-117: Good addition: fail-fast on subprocess errors.The
check=Trueparameter ensures that the documentation build fails immediately ifcommit-check --helpexits with a non-zero code, making build errors explicit rather than silent.Note: There's no error handling around this call, so any failure will crash the Sphinx setup. This is likely intentional for build-time error visibility.
120-124: LGTM! Refactored to list-based doc building.The refactor from string concatenation to list-based construction is more efficient and provides better code structure for building the documentation incrementally.
130-136: LGTM! Improved options section detection.The exact case-insensitive match for "options:" is more precise than a substring search. The
strippedvariable keeps the condition check clean, and thecontinuestatement ensures the line is only added once.
154-154: LGTM! File write consistent with list-based refactor.The
write_text("\n".join(doc))correctly joins the list elements into the final documentation string.
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: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
docs/conf.py (2)
112-118: Add error handling for subprocess failure.While
check=Trueensures immediate failure on errors, the subprocess call lacks a try/except block to handleCalledProcessErrorgracefully. Ifcommit-checkis unavailable or returns a non-zero exit code, the entire documentation build will fail with an unhandled exception.Consider adding error handling to provide a clearer error message or fallback:
- result = subprocess.run( - ["commit-check", "--help"], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - encoding="utf-8", - check=True, # ensure errors fail immediately - ) + try: + result = subprocess.run( + ["commit-check", "--help"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding="utf-8", + check=True, + ) + except (subprocess.CalledProcessError, FileNotFoundError) as exc: + raise RuntimeError( + f"Failed to generate CLI documentation: {exc}. " + "Ensure 'commit-check' is installed and accessible." + ) from exc
54-74: Use exact hex values for the intended colors.The PR’s goal was to change from
#00a893to#3badda, but Material palette names “blue” (#2196F3) and “light-blue” (#03A9F4) don’t match those hex codes. Specify the precise hex values (e.g."primary": "#3badda") or choose palette names that yield the intended colors.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/conf.py(3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs/**
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Maintain Sphinx documentation under docs/ to build HTML docs with sphinx-build
Files:
docs/conf.py
🔇 Additional comments (2)
docs/conf.py (2)
162-165: Add bounds checking for split result.The code assumes
parts[2]exists after splitting, but if an option line contains only the option flags without a description, this will raise anIndexError.Add a bounds check:
# Add the current line (contains the option and start of description) parts = line.split(None, 2) # Split on whitespace, max 2 splits - if len(parts) > 2: + if len(parts) >= 3: description_lines.append(parts[2])Likely an incorrect or invalid review comment.
126-126: Regex pattern matches all existing CLI options. No missing short or long flags or metavar formats were found incommit-check --help.
docs/conf.py
Outdated
| # Look ahead for continuation lines | ||
| j = i + 1 | ||
| while j < len(lines) and lines[j].startswith( | ||
| " " | ||
| ): | ||
| description_lines.append(lines[j].strip()) | ||
| skip_lines.add(j) | ||
| j += 1 |
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.
Replace hardcoded indentation with dynamic detection.
The hardcoded 24-space string for detecting continuation lines is fragile and will break if the CLI help format changes.
Consider detecting indentation dynamically:
- # Look ahead for continuation lines
- j = i + 1
- while j < len(lines) and lines[j].startswith(
- " "
- ):
- description_lines.append(lines[j].strip())
- skip_lines.add(j)
- j += 1
+ # Look ahead for continuation lines (indented more than option line)
+ option_indent = len(line) - len(line.lstrip())
+ j = i + 1
+ while j < len(lines):
+ next_line = lines[j]
+ next_indent = len(next_line) - len(next_line.lstrip())
+ # Continuation lines are indented more than the option line
+ if next_line.strip() and next_indent > option_indent:
+ description_lines.append(next_line.strip())
+ skip_lines.add(j)
+ j += 1
+ else:
+ break📝 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.
| # Look ahead for continuation lines | |
| j = i + 1 | |
| while j < len(lines) and lines[j].startswith( | |
| " " | |
| ): | |
| description_lines.append(lines[j].strip()) | |
| skip_lines.add(j) | |
| j += 1 | |
| # Look ahead for continuation lines (indented more than option line) | |
| option_indent = len(line) - len(line.lstrip()) | |
| j = i + 1 | |
| while j < len(lines): | |
| next_line = lines[j] | |
| next_indent = len(next_line) - len(next_line.lstrip()) | |
| # Continuation lines are indented more than the option line | |
| if next_line.strip() and next_indent > option_indent: | |
| description_lines.append(next_line.strip()) | |
| skip_lines.add(j) | |
| j += 1 | |
| else: | |
| break |
🤖 Prompt for AI Agents
In docs/conf.py around lines 167 to 174, the loop uses a hardcoded 24-space
string to detect continuation lines which is brittle; replace it by computing
the expected indentation at runtime (derive the leading-space count from the
current line or the initial description line) and then check
lines[j].startswith(" " * indent) (or compare leading-space counts) to detect
continuations, appending stripped content and adding j to skip_lines as before.
7a0fce7 to
d00b06d
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #309 +/- ##
==========================================
+ Coverage 87.15% 87.29% +0.14%
==========================================
Files 8 8
Lines 685 685
==========================================
+ Hits 597 598 +1
+ Misses 88 87 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
noxfile.py(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
noxfile.py
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Provide nox sessions: build, coverage, lint, install, and docs (if applicable)
Files:
noxfile.py
🧠 Learnings (1)
📚 Learning: 2025-10-03T10:28:06.793Z
Learnt from: CR
PR: commit-check/commit-check#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-10-03T10:28:06.793Z
Learning: Applies to noxfile.py : Provide nox sessions: build, coverage, lint, install, and docs (if applicable)
Applied to files:
noxfile.py
⏰ 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). (16)
- GitHub Check: install (3.14, macos-latest)
- GitHub Check: install (3.14, ubuntu-24.04)
- GitHub Check: install (3.13, windows-latest)
- GitHub Check: install (3.14, windows-latest)
- GitHub Check: install (3.12, ubuntu-24.04)
- GitHub Check: install (3.13, ubuntu-24.04)
- GitHub Check: install (3.13, macos-latest)
- GitHub Check: install (3.11, ubuntu-24.04)
- GitHub Check: install (3.12, windows-latest)
- GitHub Check: install (3.11, windows-latest)
- GitHub Check: install (3.11, macos-latest)
- GitHub Check: install (3.10, ubuntu-24.04)
- GitHub Check: install (3.9, ubuntu-24.04)
- GitHub Check: install (3.9, macos-latest)
- GitHub Check: install (3.10, windows-latest)
- GitHub Check: install (3.9, windows-latest)
| def docs(session): | ||
| session.install(".[docs]") | ||
| session.run("sphinx-build", "-E", "-W", "-b", "html", "docs", "_build/html") | ||
| session.run("sphinx-build", "-E", "-b", "html", "docs", "_build/html") |
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.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
Verify the necessity of removing the -W flag.
The -W flag treats Sphinx warnings as errors, ensuring documentation quality. Removing it may allow warnings to accumulate unnoticed. While the AI summary suggests this aligns with subprocess changes in docs/conf.py, the connection to the color updates in this PR is unclear.
Consider keeping the -W flag if possible to maintain build strictness, or document why it was necessary to remove it (e.g., if the color changes introduce unavoidable warnings).
🏁 Script executed:
#!/bin/bash
# Description: Check if there are current Sphinx warnings that would fail with -W
# Run sphinx-build to see if there are any warnings
cd docs
sphinx-build -W -E -b html . ../_build/html 2>&1 | tee /tmp/sphinx_warnings.txt
# Check if there were warnings
if grep -i "warning" /tmp/sphinx_warnings.txt; then
echo "===== Warnings found that would fail with -W flag ====="
grep -i "warning" /tmp/sphinx_warnings.txt
else
echo "===== No warnings found - keeping -W flag is recommended ====="
fiLength of output: 162
🏁 Script executed:
#!/bin/bash
# Description: Directly check for Sphinx warnings with -W
sphinx-build -W -E -b html docs _build/html 2>&1 | grep -i warning || echo "===== No warnings found ====="Length of output: 29
Re-add -W flag to Sphinx build
Documentation builds cleanly with no warnings; dropping -W is unnecessary and weakens strictness. Restore -W in the docs session:
- session.run("sphinx-build", "-E", "-b", "html", "docs", "_build/html")
+ session.run("sphinx-build", "-W", "-E", "-b", "html", "docs", "_build/html")📝 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.
| session.run("sphinx-build", "-E", "-b", "html", "docs", "_build/html") | |
| session.run("sphinx-build", "-W", "-E", "-b", "html", "docs", "_build/html") |
🤖 Prompt for AI Agents
In noxfile.py around line 56, the sphinx-build invocation dropped the strictness
flag; update the session.run call to include the "-W" flag (e.g., add "-W" to
the arguments passed to "sphinx-build" along with "-E", "-b", "html", "docs",
"_build/html") so Sphinx treats warnings as errors during the docs session.
7444ee5 to
05faeb0
Compare
|



Summary by CodeRabbit
Documentation
Style
Chores