Skip to content

chore(python): adopt ruff 0.17 and clear its new lint findings #5468

Closed

Description

@cliffhall

Split out of the monthly dependency refresh (#5417).

uv lock --upgrade moves ruff from 0.8.x to 0.17.3 in all three Python servers (the declared range is ruff>=0.7.3 / >=0.8.1). That release enables rules that 0.8 did not, and ruff check . then fails on code that passes today:

Server Findings Examples
fetch 13 UP035/UP006 (typing.Tuple), UP007, I001, ASYNC230, SIM117, ISC004, B009, UP012
git 23 (+1 ruff format change) UP045 (Optional[X]), I001, LOG009 (logging.WARN), SIM117, PLW1510, ISC004, PLR0402
time 9 I001, RUF010, ASYNC230, SIM117, PLW1510, B017

The #5417 PR keeps each lockfile's ruff at its current 0.8.x so the refresh stays a lockfile change.

Expected: each Python server locks the current ruff, ruff check . and ruff format --check . pass (fix the findings, or choose rules deliberately in [tool.ruff] where a rule is unwanted), and the ruff floor in each pyproject.toml is raised so the three servers agree. No behavior change.

Activity

  1. added this to the v2.4.0 milestone on Nov 5, 2026
  2. added
    server-fetchReference implementation for the Fetch MCP server - src/fetch
    server-gitReference implementation for the Git MCP server - src/git
    server-timeReference implementation for the Time MCP server - src/time
    choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior change
    on Nov 5, 2026
  3. self-assigned this
    on Nov 5, 2026
  4. YUYU20061107 commented on Nov 5, 2026

    @YUYU20061107

    Hi! I'd like to work on this. Plan: bump ruff to 0.17.x in the fetch, git, and time servers, clear the new findings (fixing in code where sensible, adjusting [tool.ruff] only where a rule clearly doesn't fit), raise the ruff floor in each pyproject.toml so all three agree, and confirm ruff check . and ruff format --check . pass with no behavior change. I'm a student and an active MCP server developer. I'll open a PR within the next few days and am happy to adjust based on feedback.

  5. YUYU20061107 commented on Nov 5, 2026

    @YUYU20061107

    Update: I see this was closed as completed shortly after my claim — no problem at all. For the record, I had prepared the change locally and verified it end-to-end (ruff check findings 13/23/9 → 0/0/0 across fetch/git/time, format check clean, pyright 0 errors; tests: fetch 437, git 301, time 171 passed). Per CONTRIBUTING I won't open a PR; if the prompt and approach I used would be useful for the v2 line, I'm happy to share them here.

  6. added a commit that references this issue on Nov 11, 2026
    e04e527
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changeserver-fetchReference implementation for the Fetch MCP server - src/fetchserver-gitReference implementation for the Git MCP server - src/gitserver-timeReference implementation for the Time MCP server - src/timev2

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions