Skip to content

chore(renovate): house Python preset, and hold mcp below 2 - #51

Merged
rishitank merged 1 commit into
mainfrom
fix/self-review-animawatch-48
Oct 9, 2026
Merged

rishitank merged 1 commit into
mainfrom
fix/self-review-animawatch-48

Conversation

@rishitank

Copy link
Copy Markdown
Owner

Why

Follow-up from the self-review of #48.

  • mcp 2 hold. ci: add shared security scan and actionlint #48 capped mcp at <2 in pyproject.toml, because src/animawatch/server.py imports mcp.server.fastmcp, which mcp 2.x removed. Renovate then opened fix(deps): update dependency mcp to v2 #50 (mcp>=2.3,<3), and its Test job fails at collection:

    ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer ... or pin 'mcp<2' to keep running v1 code.

    Without a Renovate rule it will keep proposing 2.x. The migration (FastMCP to MCPServer plus the other v2 API changes) is a real port of the server, so it is left for a deliberate PR rather than done inside a dependency bump.

  • House preset. renovate.json still extended plain config:recommended. ci: add shared security scan and actionlint #48 added the shared security and actionlint workflows but missed the switch to github>rishitank/.github:python, which the other repos use.

What changed

renovate.json only:

  • extends: ["github>rishitank/.github:python"];
  • a packageRules entry holding mcp at allowedVersions: "<2", with the reason and the migration guide link.

Validated with renovate-config-validator. The house preset groups GitHub Actions bumps into one PR, so the single-action PRs #41 to #47 will be replaced by that group.

#50 is closed with a pointer here.

🤖 Generated with Claude Code

https://claude.ai/code/session_012rYJxu978iUSGFZ1UuqTsi

#48 capped mcp at <2 in pyproject.toml because the server imports
mcp.server.fastmcp, which mcp 2.x removed. Renovate then opened #50
(mcp >=2.3,<3), whose Test job fails at import:
"No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was
renamed to MCPServer". A packageRules hold keeps Renovate from proposing 2.x
until the server is migrated.

Also switches the base from config:recommended to the house preset
github>rishitank/.github:python, as the other repos already use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012rYJxu978iUSGFZ1UuqTsi
@rishitank
rishitank enabled auto-merge (squash) October 9, 2026 01:38
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: rishitank/animawatch/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 67ae1397-6e14-48ad-b263-87677a514a16
📥 Commits

Reviewing files that changed from the base of the PR and between 11d5ef1 and bb5f9cf.

📒 Files selected for processing (1)
  • renovate.json

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


Summary by CodeRabbit

  • Chores
    • Updated automated dependency management to limit MCP upgrades to versions below 2.

Walkthrough

The Renovate configuration now extends the Python preset and adds a package rule that allows mcp versions below 2.

Changes

Renovate configuration

Layer / File(s) Summary
Preset and package rule
renovate.json
The configuration switches to the Python preset and adds a version constraint for mcp below 2.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to bb5f9

The configuration prevents Renovate from moving mcp to the incompatible v2 release. No merge-blocking risk is evident.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check Passed The title clearly summarises both changes: the shared Python Renovate preset and the mcp version limit.
Description check Passed The description is directly related to the changes. It explains the mcp compatibility issue, the preset change, validation, and deferred migration.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

Apprentice, the preset has changed its course
A version boundary now guards mcp
Below version two, the rule holds firm
The configuration records the path
The Dark Side keeps the settings in line.

Comment @coderabbitai help to get the list of available commands.

@rishitank rishitank left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Self-review by Claude

Checked: renovate.json (bb5f9cf). It extends the house preset github>rishitank/.github:python and adds a packageRules hold on mcp <2, because mcp v2 removes mcp.server.fastmcp (Renovate #50 failed Test with No module named 'mcp.server.fastmcp' and is now closed). The config passes renovate-config-validator, and all checks are green.

Follow-up for Rishi: lift the hold once animawatch is ported to the mcp v2 server API.

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