Skip to content

chore(deps-dev): bump ruff to 0.16.1 and prek to 0.4.12 - #1084

Open
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:chore/python-deps-no-mcp
Open

chore(deps-dev): bump ruff to 0.16.1 and prek to 0.4.12#1084
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:chore/python-deps-no-mcp

Conversation

@potiuk

@potiuk potiuk commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Splits the non-breaking half out of chore(deps-dev): bump the python-deps group across 9 directories with 3 updates #1083. That PR grouped three updates; the
    mcp 1.28.1 → 2.0.0 bump in it is a breaking major that removes
    mcp.server.fastmcp and fails pytest (oauth-draft) with ModuleNotFoundError.
    That half is migrated separately in chore(deps): migrate gmail/oauth-draft to mcp 2.0 #1085.
  • ruff 0.15.21/0.15.22 → 0.16.1 across all 30 workspace members; prek
    0.4.10 → 0.4.12 at the root. mcp deliberately left at 1.28.1.
  • Excludes eval fixtures from ruff format. Ruff 0.16 began formatting Python
    inside Markdown fenced blocks — the reason chore(deps-dev): bump the python-deps group across 9 directories with 3 updates #1083 also failed ruff format for
    skill-evals. The ten files it wanted to rewrite are all
    evals/**/fixtures/**/report.md; not one is real source. Those files are test
    data: they simulate what a contributor actually pasted into an issue, single
    quotes and missing blank lines included, and several are prompt-injection cases
    whose whole point is that untrusted text reaches the model verbatim.
    Reformatting them would silently edit the input the eval grades against.

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)

Test plan

  • prek run --all-files exits 0
  • ruff format --check and ruff check pass for all 28 applicable members
  • Full workspace pytest passes (run by the commit hook)
  • Confirmed the diff touches only pyproject.toml files and uv.lock — no
    fixture file is modified by this PR

RFC-AI-0004 compliance

Not applicable — dependency-pin and lint-config change only; no skill or tool
behaviour, no new mutation, no new host access.

Linked issues

Refs #1083

Notes for reviewers

The interesting decision is the extend-exclude in tools/skill-evals/pyproject.toml
rather than accepting the reformat. Worth a look at the two representative diffs
ruff wanted to make:

--- evals/issue-reproducer/step-1-inventory/fixtures/case-4-injection-in-body/report.md
   from airflow.providers.sftp.hooks.sftp import SFTPHook
+
   hook = SFTPHook(ssh_conn_id="sftp_conn")

--- evals/pr-management-mentor/intervention/fixtures/case-2-missing-version/report.md
-     bash_task = BashOperator(task_id='test', bash_command='echo hello')
+     bash_task = BashOperator(task_id="test", bash_command="echo hello")

Both make the fixture less like what a real reporter writes, which is the
opposite of what a fixture is for.

Both this PR and the mcp migration touch uv.lock, so whichever merges second
needs a uv lock re-run. #1083 can be closed once both land.

Splits the non-breaking half out of apache#1083. That PR grouped three
updates; the `mcp` 1.28.1 -> 2.0.0 bump in it is a breaking major that
removes `mcp.server.fastmcp` and fails `pytest (oauth-draft)` with
`ModuleNotFoundError`. It needs a code migration and gets its own PR.
This change carries only the two updates that need no source change.

- `ruff` 0.15.21/0.15.22 -> 0.16.1 across all 30 workspace members.
- `prek` 0.4.10 -> 0.4.12 at the workspace root.
- `mcp` deliberately left at 1.28.1.

Ruff 0.16 formats Python inside Markdown fenced blocks, which is why
apache#1083 also failed `ruff format` for skill-evals. The ten files it wanted
to rewrite are all `evals/**/fixtures/**/report.md` — not one is real
source. Those files are test *data*: they simulate what a contributor
actually pasted into an issue, single quotes and missing blank lines
included, and several are prompt-injection cases whose whole point is
that the untrusted text reaches the model verbatim. Reformatting them
would silently edit the input the eval grades against, so
`tools/skill-evals` excludes the fixture tree from ruff instead.

Verified: `ruff format --check` and `ruff check` pass for all 28
applicable members, and `prek run --all-files` exits 0. No fixture file
is modified by this commit.

Generated-by: Claude Code (Opus 5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant