| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
📝 Walkthrough
WalkthroughThe CI workflow is modified to apply OS-specific feature flags for WhatsLeft checks. A single unconditional step is replaced with two conditional steps: one for non-macOS runners with threading and jit features, and one for macOS with threading but explicitly excluding jit. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem🚥 Pre-merge checks | ✅ 1 | ❌ 2 ❌ Failed checks (2 warnings)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. ❤️ ShareComment @coderabbitai help to get the list of available commands and usage tips. |
Sorry, something went wrong.
|
Code has been automatically formatted The code in this PR has been formatted using cargo fmt --all. git pull origin better-ci-cache |
Sorry, something went wrong.
@youknowone @ShaharNaveh I didn't even edit the file that was reformatted. |
Sorry, something went wrong.
I think it has something to do with the ruff version, I'll update it |
Sorry, something went wrong.
|
✅ Actions performed
Review triggered.
|
Sorry, something went wrong.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agentsIn @.github/workflows/ci.yaml:
- Around line 422-429: The sed invocation in the CI job names "Check whats_left
is not broken" is incorrectly quoted so it sees a leading double-quote in the
value `"${{ env.CARGO_ARGS }}"`, preventing the pattern `^--` from matching;
update the run lines that call whats_left.py to remove the escaped quotes and
use `${{ env.CARGO_ARGS }}` directly (so the sed expression s/^--[^ ]*// works),
or alternatively change the sed pattern to handle optional leading quotes (e.g.,
s/^"*--[^ ]*//), ensuring both the non-macOS and macOS steps that call python -I
whats_left.py use the fixed form.
.github/workflows/ci.yaml (1)📜 Review details426-426: Consider creating a tracking issue for the macOS JIT fix.
The TODO comment documents the macOS JIT exclusion, but this workaround might be forgotten over time. Consider opening a GitHub issue to track resolving the underlying JIT issue on macOS.
Would you like me to help draft an issue to track this?
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
📥 CommitsReviewing files that changed from the base of the PR and between 29bb8b4 and f88cd49.
📒 Files selected for processing (2)📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.py: In most cases, Python code should not be edited; bug fixes should be made through Rust code modifications only
Follow PEP 8 style for custom Python code
Use ruff for linting Python code
Files:
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*test*.py: NEVER comment out or delete any test code lines except for removing @unittest.expectedFailure decorators and upper TODO comments
NEVER modify test assertions, test logic, or test data in test files
When a test cannot pass due to missing language features, keep it as expectedFailure and document the reason; do not comment it out
The only acceptable modifications to test files are: (1) Removing @unittest.expectedFailure decorators and the upper TODO comments when tests actually pass, and (2) Adding @unittest.expectedFailure decorators when tests cannot be fixed
Files:
Learnt from: CR Repo: RustPython/RustPython PR: 0 File: .github/copilot-instructions.md:0-0 Timestamp: 2025-12-27T14:03:49.034Z Learning: Applies to **/*.rs : Always run clippy to lint code (`cargo clippy`) before completing tasks and fix any warnings or lints introduced by changes
Applied to files:
Learnt from: ShaharNaveh Repo: RustPython/RustPython PR: 6089 File: scripts/lib_updater.py:292-297 Timestamp: 2025-08-30T14:40:05.858Z Learning: In scripts/lib_updater.py, the --inplace flag intentionally writes to orig_file (not remote_file) even though patches are applied to remote_file content. This workflow allows updating the original RustPython test file with patches applied to new upstream CPython content.
Applied to files:
Learnt from: ShaharNaveh Repo: RustPython/RustPython PR: 6089 File: scripts/lib_updater.py:198-202 Timestamp: 2025-09-07T05:38:31.690Z Learning: In scripts/lib_updater.py, the iter_patches function intentionally does not handle SyntaxError from ast.parse(contents). The author confirmed this behavior is fine and intended - the tool should fail fast on unparseable files rather than silently skip processing.
Applied to files:
scripts/fix_test.py (1)30-30: LGTM!
The import reordering follows alphabetical convention and is consistent with ruff formatting mentioned in the PR discussion.
Sorry, something went wrong.
|
Here's a git trick for everyone: Assuming you have no files staged, git commit --allow-empty -m 'Do nothing' produces a commit with no files changed and the message "Do nothing". |
Sorry, something went wrong.
I usually call the commit "Trigger CI" |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
When I was working on #6410, I noticed that the CI job "snippets_cpython" was recompiling RustPython even though no Rust code was changed.
I assumed the reason for the recompilation was because the "Check whats_left is not broken" step is recompiling RustPython with different cargo features than were defined earlier in the same job.
This "whats_left" recompilation is what ultimately gets cached/restored by the rust-cache action.
Then, when the "build rustpython" step is run, the difference in Cargo features necessitates a recompilation before the snippets and CPython tests are run.
For each CI run in the "snippets_cpython" job, these two recompilations cost us about 4 minutes on the Ubuntu runner, about 5 minutes on the macOS runner, and about 7-8 minutes on the windows runner.
This PR aims to eliminate the useless recompilations, making the CI run a little bit faster.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.