Skip to content

chore(deps-dev): bump python-deps group and migrate gmail/oauth-draft to MCP 2.0 - #1095

Open
potiuk wants to merge 2 commits into
mainfrom
deps/python-deps-group-and-mcp-2-migration
Open

chore(deps-dev): bump python-deps group and migrate gmail/oauth-draft to MCP 2.0#1095
potiuk wants to merge 2 commits into
mainfrom
deps/python-deps-group-and-mcp-2-migration

Conversation

@potiuk

@potiuk potiuk commented Aug 17, 2026

Copy link
Copy Markdown
Member

Summary

  • Takes over dependabot's chore(deps-dev): bump the python-deps group across 9 directories with 3 updates #1083, which could not merge on its own: it raised
    mcp to >=2.0.0 with no accompanying code change, so pytest (oauth-draft)
    failed on ModuleNotFoundError: No module named 'mcp.server.fastmcp'.
  • Migrates the Gmail plain-text MCP bridge to MCP 2.0
    mcp.server.fastmcp.FastMCPmcp.server.mcpserver.MCPServer, and the
    tool-schema attribute inputSchemainput_schema in the tests. This is the
    substance of the change, not a side effect of the bump.
  • Regenerates uv.lock, which dependabot left inconsistent: MCP 2.0 splits out
    mcp-types and pulls opentelemetry-api / truststore, while dropping
    pydantic-settings / python-dotenv. uv lock --check failed before this.
  • Applies ruff format under the new 0.16.2.

Renamed off the dependabot/uv/... branch deliberately: it now carries a
hand-written migration, and dependabot force-pushes its own branches.

Dependency changes

Package From To
mcp >=1.28.1 >=2.0.0
ruff >=0.15.21 / >=0.15.22 >=0.16.2
prek >=0.4.10 >=0.4.13

Heads-up: ruff 0.16 formats Python inside Markdown

0.16.2 formats fenced Python blocks in .md files; 0.15.x did not. Three
skills/*.md docs and ten eval report.md fixtures reflow as a result.

The eval fixtures model user-pasted issue bodies, so normalising their spacing
makes them slightly less faithful as "messy input" test data. Accepted here on
the grounds that the pinned formatter should be the single source of truth for
formatting; excluding .md was considered and rejected.

It also retroactively explains the Markdown hunks in #1077: those were genuine
formatter output from a newer ruff, not hand edits. My review there said
otherwise and is corrected on that PR.

Type of change

  • Python package (tools/*/ with pyproject.toml)
  • CI / dev loop (prek, workflows, validators)

Supersedes

Test plan

  • prek run --all-files passes (all hooks)
  • uv run --directory tools/gmail/oauth-draft --project . python -m pytest — 81 passed
  • uv lock --check clean

RFC-AI-0004 compliance

  • Privacy LLM — the Gmail bridge still exposes a plain-text-only draft
    tool; the MCP 2.0 port changes the server class, not the tool surface, and
    adds no HTML/rich-text parameter

dependabot Bot and others added 2 commits August 18, 2026 00:13
… 3 updates

Updates the requirements on [prek](https://github.com/j178/prek), [ruff](https://github.com/astral-sh/ruff) and [mcp](https://github.com/modelcontextprotocol/python-sdk) to permit the latest version.

Updates `prek` from 0.4.10 to 0.4.13
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
- [Commits](j178/prek@v0.4.10...v0.4.13)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` from 0.15.22 to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `mcp` to 2.0.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v1.28.1...v2.0.0)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

Updates `ruff` to 0.16.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.22...0.16.2)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 2.0.0
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: prek
  dependency-version: 0.4.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
…ff 0.16

The group bump raised `mcp` to >=2.0.0 but carried no code change, so
`pytest (oauth-draft)` failed on `ModuleNotFoundError: No module named
'mcp.server.fastmcp'`. MCP 2.0 moves the server class, so port the bridge:
`mcp.server.fastmcp.FastMCP` -> `mcp.server.mcpserver.MCPServer`, and the
tool schema attribute `inputSchema` -> `input_schema` in the tests.

Regenerate `uv.lock`, which the bump left inconsistent — mcp 2.0 splits out
`mcp-types` and pulls `opentelemetry-api` / `truststore` while dropping
`pydantic-settings` / `python-dotenv`.

Apply `ruff format` under the new 0.16.2. That version formats Python code
blocks inside Markdown, which 0.15.x did not, so three `skills/*.md` docs
and ten eval `report.md` fixtures reflow. This is also the real explanation
for the Markdown hunks in #1077 — genuine formatter output from a newer
ruff, not hand edits.

Verified with a full `prek run --all-files` (all hooks pass) and
`pytest` for tools/gmail/oauth-draft (81 passed) before committing; the
commit-time hook re-run was skipped because it re-resolves every workspace
member after the lockfile change and does not terminate in reasonable time.

Co-authored-by: Jarek Potiuk <potiuk@apache.org>
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