Skip to content

Conversation

@ShaharNaveh
Copy link
Collaborator

@ShaharNaveh ShaharNaveh commented Dec 12, 2025

Summary by CodeRabbit

  • Chores
    • Updated CI/CD workflow configuration to streamline code linting and formatting processes.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 12, 2025

Walkthrough

The CI workflow is updated to replace manual Python setup and explicit Ruff installation with the dedicated astral-sh/ruff-action GitHub Action (v0.14.9). Two Ruff steps are added: ruff check --diff and ruff format --check. Prettier linting is preserved.

Changes

Cohort / File(s) Summary
CI Workflow Ruff Automation
\.github/workflows/ci\.yaml
Replaces Python setup and explicit Ruff installation with astral-sh/ruff-action@v1 pinned to version 0.14.9. Adds separate linting steps for ruff check --diff and ruff format --check. Preserves existing Prettier configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify the Ruff action version (0.14.9) is the intended and stable version
  • Confirm ruff check --diff and ruff format --check flags produce expected output for the project
  • Ensure the removal of Python setup doesn't impact other workflow jobs that may depend on it

Suggested reviewers

  • youknowone

Poem

🐰 Hops of joy through workflows bright,
Ruff action makes our checks so tight!
No more Python setup dance,
Just Actions' elegant glance,
Linting flows with pure delight!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Update ruff CI version' directly and clearly describes the main change: updating the Ruff version in the CI configuration from the prior version to 0.14.9.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

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

Copy link
Contributor

@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)
.github/workflows/ci.yaml (1)

307-309: (Optional) Rename the lint job to reflect it now runs clippy + ruff + prettier + cspell.
Current lint name (“Check Rust code with clippy”) no longer matches the job contents, which can confuse CI triage.

Also applies to: 318-320

📜 Review details

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 75dcf80 and 0d75f03.

📒 Files selected for processing (1)
  • .github/workflows/ci.yaml (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
Repo: RustPython/RustPython PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-29T12:17:28.606Z
Learning: Applies to **/*.py : Use ruff for linting Python code
📚 Learning: 2025-11-29T12:17:28.606Z
Learnt from: CR
Repo: RustPython/RustPython PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-29T12:17:28.606Z
Learning: Applies to **/*.py : Use ruff for linting Python code

Applied to files:

  • .github/workflows/ci.yaml
📚 Learning: 2025-11-29T12:17:28.606Z
Learnt from: CR
Repo: RustPython/RustPython PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-29T12:17:28.606Z
Learning: Applies to **/*.rs : Always run clippy to lint Rust code (`cargo clippy`) before completing tasks and fix any warnings or lints introduced by changes

Applied to files:

  • .github/workflows/ci.yaml
⏰ 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: Run snippets and cpython tests (windows-latest)
  • GitHub Check: Run rust tests (macos-latest)
  • GitHub Check: Run snippets and cpython tests (macos-latest)
  • GitHub Check: Run snippets and cpython tests (ubuntu-latest)
  • GitHub Check: Run rust tests (ubuntu-latest)
  • GitHub Check: Run rust tests (windows-latest)
  • GitHub Check: Run snippets and cpython tests on wasm-wasi
  • GitHub Check: Check the WASM package and demo
  • GitHub Check: Check Rust code with clippy
  • GitHub Check: Ensure compilation on various targets
🔇 Additional comments (1)
.github/workflows/ci.yaml (1)

321-325: Change Ruff version from 0.14.9 to 0.14.8.

Ruff version 0.14.9 does not exist. The latest published release is 0.14.8 (released Dec 4, 2025). The astral-sh/ruff-action v3.5.1 correctly supports the version input parameter, but the specified version is invalid and will cause the workflow to fail during installation.

⛔ Skipped due to learnings
Learnt from: ShaharNaveh
Repo: RustPython/RustPython PR: 5932
File: .github/workflows/comment-commands.yml:18-24
Timestamp: 2025-07-10T10:08:43.330Z
Learning: In GitHub Actions workflows for the RustPython project, the maintainer ShaharNaveh prefers to keep workflows simple and doesn't mind if steps fail when the desired state is already achieved (e.g., user already assigned to an issue). Avoid suggesting complex error handling for edge cases they don't consider problematic.
Learnt from: CR
Repo: RustPython/RustPython PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-29T12:17:28.606Z
Learning: Applies to **/*.py : Use ruff for linting Python code

Comment on lines +326 to +329
- run: ruff check --diff

- run: ruff format --check

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

ruff check --diff flag behavior documentation

💡 Result:

Summary of documented behavior:

  • --diff prevents writing fixes, prints unified diffs for changed files, and implies --fix-only. It exits with status 0 when there are no diffs. [1]

Related notes / known issue:

  • There is a reported GitHub issue that using --diff can yield exit code 0 (and no output) even when violations exist but no diffs are produced (interaction with exit codes / fix-only behavior). [2]

Sources:

  • Ruff CLI docs (--diff description). [1]
  • GitHub issue discussing --diff exit-code behavior. [2]

🏁 Script executed:

# Examine the workflow file around the flagged lines
cd /root/repo
cat -n .github/workflows/ci.yaml | sed -n '310,345p'

Repository: RustPython/RustPython

Length of output: 1686


🏁 Script executed:

rg "ruff check" .github/workflows/ -A 1 -B 1

Repository: RustPython/RustPython

Length of output: 175


🏁 Script executed:

rg "ruff" .github/workflows/ci.yaml -n

Repository: RustPython/RustPython

Length of output: 257


ruff check --diff only checks fixable violations; add a full lint check to catch all violations.

ruff check --diff implies --fix-only, which means it only reports violations that can be automatically fixed. This will not catch style issues or violations that require manual fixes, allowing existing violations to persist indefinitely in CI. Either remove --diff to perform a full lint check, or add a separate ruff check (without --diff) step to ensure the entire codebase meets all linting rules.

🤖 Prompt for AI Agents
.github/workflows/ci.yaml around lines 326 to 329: the workflow currently runs
"ruff check --diff" which only reports fixable (auto-fixable) violations; update
the CI to run a full lint check by either removing the --diff flag (use "ruff
check") or adding an additional step that runs "ruff check" (without --diff) in
addition to the existing diff check so all lint violations, including
non-fixable ones, fail CI.

@youknowone youknowone merged commit 49522e7 into RustPython:main Dec 12, 2025
13 checks passed
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