Skip to content

Expand linting/styling QC - #28

Merged
johanneskoester merged 8 commits into
snakemake:mainfrom
TRON-Bioinformatics:expand-qc
Mar 11, 2026
Merged

Expand linting/styling QC#28
johanneskoester merged 8 commits into
snakemake:mainfrom
TRON-Bioinformatics:expand-qc

Conversation

@jonasfreimuth

@jonasfreimuth jonasfreimuth commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

For my intended coming changes addressing #27, I wanted to make sure tools for styling/linting md and toml files are available.

Summary by CodeRabbit

  • Documentation

    • README updated with an additional descriptive line about the catalog.
  • Chores

    • Reorganized project configuration to centralize style and lint tooling.
    • Consolidated build task formatting and simplified quality-check command mappings.
    • Added dedicated style and lint task groups covering Python, Markdown, and TOML.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR expands the project’s Pixi-based quality-control tooling to support linting/formatting not only Python, but also Markdown and TOML—preparing the repo for upcoming documentation work related to #27.

Changes:

  • Refactors qc / apply-qc tasks and introduces a style feature with dedicated lint/format tasks for Python, Markdown, and TOML.
  • Adds a separate Pixi environment (style) to install optional formatting/linting tools.
  • Updates the lockfile accordingly and applies a minor README formatting tweak.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.

File Description
pixi.toml Adds a style feature + environment and new lint/style task graph; updates top-level QC tasks.
pixi.lock Captures the new style environment resolution and dependency set.
README.md Adds a blank line after the title.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pixi.toml Outdated
Comment thread pixi.toml
Comment thread pixi.toml Outdated
@coderabbitai

coderabbitai Bot commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@jonasfreimuth has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 1 minutes and 43 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b46400da-7c35-45a1-b9cb-6e2932aeee65

📥 Commits

Reviewing files that changed from the base of the PR and between 2345969 and e6a8a10.

⛔ Files ignored due to path filters (1)
  • pixi.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • README.md
  • pixi.toml
📝 Walkthrough

Walkthrough

Updated README with a one-line descriptive subtitle; reworked pixi.toml to move style tooling and tasks into a feature-scoped configuration, introducing feature-based dependencies, grouped style/lint tasks, and a style environment.

Changes

Cohort / File(s) Summary
Documentation Update
README.md
Added one-line subtitle: "An automatically updated catalog of Snakemake plugins and their documentation".
Build / CI Configuration
pixi.toml
Removed public qc/apply-qc task entries; moved ruff out of top-level [dependencies] into a new [feature.style.dependencies] and added mdformat, mdformat-gfm, fd-find, tombi; introduced [feature.style.tasks] with _style-python, _style-md, _style-toml; added _lint-* and _style-* task entries and composite style and lint tasks that depend on them; added [environments] style = { features = ["style"], no-default-feature = true }; minor formatting change to tasks.build-single value.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ 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 'Expand linting/styling QC' accurately describes the main changes in the PR, which involve adding linting and styling tools/tasks to the QC configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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)
pixi.toml (1)

29-34: Verify ruff version and consider pinning mdformat versions.

  1. ruff version >=0.12.11,<0.13: This version range seems unusually high. Please verify this is the intended version.

  2. Unpinned mdformat dependencies: Using "*" for mdformat and mdformat-gfm may lead to reproducibility issues if breaking changes are introduced in future versions. Consider adding version constraints similar to other dependencies.

,

What is the latest version of ruff Python linter?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pixi.toml` around lines 29 - 34, Verify the ruff version range and pin the
mdformat packages: confirm the intended ruff constraint (the current key "ruff"
should be validated against the latest ruff release) and adjust it if it's too
restrictive or incorrect (e.g., set a realistic upper bound like <0.13 only if
you verified compatibility), and replace the wildcard "*" for "mdformat" and
"mdformat-gfm" with explicit version constraints (e.g., lock to a tested
minor/patch range) to ensure reproducible builds; update the entries for the
keys ruff, mdformat, and mdformat-gfm accordingly after checking the latest ruff
release and the compatible mdformat versions.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pixi.toml`:
- Around line 11-12: The qc and apply-qc tasks reference target tasks (lint and
style) that are defined under feature.style.tasks and thus aren't available in
the default environment because no-default-feature = true; fix this by moving
the lint and style task definitions from [feature.style.tasks] into the global
[tasks] section so qc and apply-qc can delegate to them without requiring
--environment style, update any feature-specific settings accordingly, and keep
qc and apply-qc entries as-is to preserve CI usage of pixi run qc.

---

Nitpick comments:
In `@pixi.toml`:
- Around line 29-34: Verify the ruff version range and pin the mdformat
packages: confirm the intended ruff constraint (the current key "ruff" should be
validated against the latest ruff release) and adjust it if it's too restrictive
or incorrect (e.g., set a realistic upper bound like <0.13 only if you verified
compatibility), and replace the wildcard "*" for "mdformat" and "mdformat-gfm"
with explicit version constraints (e.g., lock to a tested minor/patch range) to
ensure reproducible builds; update the entries for the keys ruff, mdformat, and
mdformat-gfm accordingly after checking the latest ruff release and the
compatible mdformat versions.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 01178378-d14e-4134-b392-ec269ffaa977

📥 Commits

Reviewing files that changed from the base of the PR and between 93de4d9 and 5eee92e.

⛔ Files ignored due to path filters (1)
  • pixi.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • README.md
  • pixi.toml

Comment thread pixi.toml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pixi.toml`:
- Around line 49-53: The pixi task aliases currently use string values ("qc" =
"lint" and "apply-qc" = "style") which Pixi treats as shell commands; change
these keys to use depends-on task references instead so they point to the
existing tasks "lint" and "style" (i.e., replace the string assignments for qc
and apply-qc with depends-on references that list the target task names) so
running the alias executes the referenced task rather than a shell command.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1557496e-3971-4842-ae15-a1fd7c9c3415

📥 Commits

Reviewing files that changed from the base of the PR and between 5eee92e and 2345969.

⛔ Files ignored due to path filters (1)
  • pixi.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • pixi.toml

Comment thread pixi.toml Outdated

@johanneskoester johanneskoester left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cool!

@johanneskoester
johanneskoester merged commit 6538db4 into snakemake:main Mar 11, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in Snakemake Hackathon 2026 Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants