-
Notifications
You must be signed in to change notification settings - Fork 0
explore: evaluate Ruff plugin integration for docvet enrichment rules #307
Copy link
Copy link
Open
Labels
Description
Summary
Explore whether docvet's enrichment rules (missing-raises, missing-yields, missing-attributes, etc.) could be contributed to or integrated with Ruff as a plugin or rule set, gaining instant distribution to millions of Ruff users.
Motivation
Ruff has become the dominant Python linter. If docvet's enrichment rules shipped inside ruff, that's instant distribution. However, this is a partnership/political play, not just a technical one.
Key questions to answer
- Ruff plugin architecture — Does ruff support external rule plugins? What's the acceptance criteria for new rule sets?
- Technical feasibility — Enrichment rules use Python AST analysis, which aligns with ruff's approach (Rust AST). But ruff parses with a Rust-based parser — rules would need to be rewritten in Rust or use a plugin bridge.
- Scope boundaries — Freshness (git integration), coverage (filesystem), and griffe (rendering) rules are unlikely candidates. Only enrichment rules (pure AST) are portable.
- Existing overlap — pydoclint has an open issue for ruff integration (Implement
pydoclintastral-sh/ruff#12434). What's the status? Is there room for docvet's differentiated rules? - Partnership approach — Would Astral's team be receptive? What's the right way to engage?
What this is NOT
- Not building a ruff plugin immediately
- Not abandoning docvet as a standalone tool
- An exploration to understand if this distribution channel is viable
Context
Emerged from party-mode discussion (2026-03-06). Parked as an exploration item — different kind of work than feature development. pydoclint currently occupies the "docstring accuracy" mindshare with 580+ stars and its own ruff integration discussion.
Reactions are currently unavailable