Add YAML/expand Python tooling checks#759
Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughAdds YAML linting and YAML-related CI checks, introduces Xenon to the Flox manifest and maskfile for Python complexity analysis, updates pre-commit hooks, and makes formatting/structure changes to Pulumi and docker-compose YAML files. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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 |
Greptile SummaryThis PR adds YAML linting infrastructure (yamllint config, Mask commands, CI job, and pre-commit hook) and introduces a Python complexity analysis command using
Confidence Score: 3/5
|
| Filename | Overview |
|---|---|
| .flox/env/manifest.toml | Adds xenon to the Flox environment manifest, consistent with the new complexity check in maskfile.md. |
| .github/workflows/run_code_checks.yaml | Adds YAML code checks job and reformats the coverage upload condition, but the condition logic changed from OR to AND, which may block coverage uploads when only one job succeeds. Also contains a typo ("Alows"). |
| .pre-commit-config.yaml | Adds a new YAML pre-commit hook that runs mask development yaml all, consistent with the existing hook pattern for Python, Rust, and Markdown. |
| .yamllint.yaml | New yamllint config file with sensible defaults: 120 char line limit, truthy value restrictions, and appropriate directory ignores. |
| infrastructure/docker-compose.yaml | Reformatted for yamllint compliance: added document start marker, expanded inline arrays to block style, removed quoted port mappings, and removed blank lines between services. |
| maskfile.md | Adds complexity and yaml Mask commands, but the complexity command is NOT included in the Python all subcommand despite the PR description claiming it was updated. |
Last reviewed commit: 767fdb3
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
maskfile.md (1)
585-607:⚠️ Potential issue | 🟠 Major
mask development python complexityis not included in theallcommand.The PR description states the
allcommand was updated to include the complexity check, butmask development python complexityis missing from this block. This means runningmask development python allwill skip the complexity analysis.Proposed fix
mask development python dead-code mask development python test +mask development python complexity + echo "Python development checks completed successfully"Based on learnings: "Use 'mask development python all' for comprehensive Python checks" — the complexity step should be part of this comprehensive suite.
🤖 Fix all issues with AI agents
In @.github/workflows/run_code_checks.yaml:
- Line 6: Fix the typo in the workflow comment: change "Alows for Rust cache to
be established on master branch" to "Allows for Rust cache to be established on
master branch" in the .github/workflows/run_code_checks.yaml comment so the
header reads "Allows" instead of "Alows".
In `@maskfile.md`:
- Around line 571-583: Update the xenon invocation in the "complexity" block to
exclude non-project dirs like other checks do: modify the existing xenon command
(the line starting with "xenon --max-absolute D --max-modules D --max-average A
.") to include the exclusion flag -i '.flox,.venv,target' so it mirrors the
exclusion pattern used by other tools in this maskfile.
Additional Comments (1)
The PR description says the |
There was a problem hiding this comment.
Pull request overview
Adds YAML linting and expands Python tooling checks to strengthen the repo’s automated quality gates (Mask + pre-commit + GitHub Actions), while also normalizing YAML formatting across infrastructure/config files.
Changes:
- Add
yamllintconfiguration + Mask commands, and wire YAML checks into pre-commit and CI. - Add a Python complexity check command (xenon) and update Flox tooling to include it.
- Normalize YAML files (document start
---, formatting tweaks) to satisfy linting.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
maskfile.md |
Adds Python complexity task and new YAML lint/all tasks. |
infrastructure/docker-compose.yaml |
YAML formatting normalization (document start, ports/healthcheck formatting). |
infrastructure/Pulumi.yaml |
Adds YAML document start for lint compatibility. |
infrastructure/Pulumi.production.yaml |
Adds yamllint line-length disable + document start to accommodate long secrets. |
.yamllint.yaml |
Introduces repository yamllint configuration and ignores. |
.pre-commit-config.yaml |
Adds YAML checks to pre-commit via Mask. |
.markdownlint.yaml |
Adds YAML document start. |
.github/workflows/run_code_checks.yaml |
Adds YAML checks job and adjusts coverage upload condition formatting/logic. |
.github/workflows/run_claude_code_coding_agent.yaml |
Reformats YAML condition for readability/lint compliance. |
.flox/env/manifest.toml |
Adds xenon to Flox toolchain. |
.flox/env/manifest.lock |
Locks xenon dependency and updates lock contents accordingly. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Greptile SummaryAdded YAML linting ( Key changes
Confidence Score: 5/5
|
| Filename | Overview |
|---|---|
| .github/workflows/run_code_checks.yaml | Added YAML linting job and updated coverage upload condition to require both Rust and Python success |
| .pre-commit-config.yaml | Added YAML pre-commit hook to check all YAML files |
| .yamllint.yaml | Created new YAML linting configuration file with 120 char line length and truthy value rules |
| infrastructure/docker-compose.yaml | Reformatted to comply with yamllint: unquoted port mappings and array-style healthcheck commands |
| maskfile.md | Added Python complexity checking with xenon and new YAML linting commands |
Last reviewed commit: 1286461
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 12 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Greptile SummaryThis PR adds YAML linting and Python complexity analysis to the project's development toolchain. It introduces a
Confidence Score: 5/5
|
| Filename | Overview |
|---|---|
| .yamllint.yaml | New yamllint configuration file with sensible defaults: 120-char line limit, truthy restricted to true/false/on, and ignores for .venv/, target/, and .flox/ directories. |
| .pre-commit-config.yaml | Adds a YAML pre-commit hook that runs mask development yaml all on YAML file changes, consistent with the existing pattern for Python, Rust, and Markdown hooks. |
| .github/workflows/run_code_checks.yaml | Adds a run_yaml_code_checks CI job and reformats the coverage upload condition from ` |
| maskfile.md | Adds complexity subcommand using xenon with lenient thresholds (D/D/A), integrates it into the Python all command, and adds a new yaml section with lint and all subcommands. Follows existing maskfile patterns. |
| infrastructure/docker-compose.yaml | Reformatted for yamllint compliance: added document start marker, changed port mappings from quoted to unquoted (safe for these port numbers), expanded healthcheck test arrays to multi-line format. |
| infrastructure/Pulumi.production.yaml | Added yamllint disable directive for line-length rule and document start marker. The disable is necessary since Pulumi encrypted values exceed the 120-char limit. |
| .flox/env/manifest.toml | Adds xenon package dependency for Python complexity analysis. |
Last reviewed commit: efc4136
Overview
Changes
allcommandContext
Drastically pared back the checks I was adding in the other pull request because the audit checks were gonna take more time than I wanted to get all sorted. This is also setting the "complexity" check super low but we can dial that up over time and in pieces.
Summary by CodeRabbit