-
Notifications
You must be signed in to change notification settings - Fork 953
Fix distributed issues with latest pydantic version #1859
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Please make sure all the checkboxes are checked:
|
WalkthroughThe pull request updates dependency version constraints in the project configuration file. It tightens the pydantic upper bound from Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
poetry.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
pyproject.toml(2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
pyproject.toml
📄 CodeRabbit inference engine (AGENTS.md)
Python version requirement: >= 3.10 and < 3.14
Files:
pyproject.toml
🧠 Learnings (2)
📚 Learning: 2025-11-24T16:45:09.996Z
Learnt from: CR
Repo: topoteretes/cognee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T16:45:09.996Z
Learning: Applies to pyproject.toml : Python version requirement: >= 3.10 and < 3.14
Applied to files:
pyproject.toml
📚 Learning: 2025-11-24T16:45:09.996Z
Learnt from: CR
Repo: topoteretes/cognee PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T16:45:09.996Z
Learning: Applies to **/*.py : Use ruff check for import hygiene and style enforcement with line-length 100 configured in pyproject.toml
Applied to files:
pyproject.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
- GitHub Check: Ollama Tests / run_ollama_test
🔇 Additional comments (3)
pyproject.toml (3)
130-146: Inconsistency with AI summary regarding pytest-timeout removal.The AI summary mentions removing the
dependency-groups.devsection withpytest-timeout>=2.4.0, but the provided code still shows thedevoptional-dependency group (lines 130–146) without evidence of pytest-timeout removal. Clarify whether this change was actually applied.
10-10: Python version constraint is compliant.The Python version requirement
>=3.10,<3.14at line 10 aligns with the coding guideline requirement.
25-25: Reconsider the restrictive pydantic upper bound constraint.The pydantic constraint
<2.12.0is overly restrictive with only ~1.5 minor versions allowed (from 2.10.5). While this was an intentional change, the constraint severely limits future compatibility and bug fixes. The codebase uses only stable pydantic features (BaseModel, Field, etc.) that are compatible across minor versions. Consider either:
- Widening to
<3.0.0to allow more flexibility within the major version, or- Documenting the specific incompatibility requiring the 2.12.0 upper bound
Note:
pydantic-settings>=2.2.1,<3uses a more permissive upper bound, suggesting inconsistency in version strategy across pydantic packages.
| "filetype>=1.2.0,<2.0.0", | ||
| "aiohttp>=3.11.14,<4.0.0", | ||
| "aiofiles>=23.2.1,<24.0.0", | ||
| "aiofiles>=23.2.1", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
aiofiles latest version 2024 2025 breaking changes
💡 Result:
Short summary of breaking / notable changes in aiofiles (2024–2025):
- Latest published releases: 24.1.0 (Jun 24, 2024) and 25.1.0 (Oct 9, 2025). [1][2]
- Breaking/compatibility changes you should know:
- Python support changes: 24.1.0 dropped Python 3.7; 25.1.0 drops Python 3.8 and adds Python 3.14 support. If you need older Python, pin to the appropriate older release (23.2.1 for 3.7, 24.1.0 for 3.8). [1][2]
- Async API/idioms: 24.1.0 moved to more modern async idioms — removed use of types.coroutine and changed AiofilesContextManager to be an awaitable (not a coroutine), which can affect code that relied on the previous coroutine behavior. [1]
- Other additions/changes: new aiofiles.os.* helpers (abspath, getcwd, statvfs, ismount added across 23.2.0–24.1.0) and small import/OS-compatibility fixes (conditional imports to fix Android/Windows). These are mostly additive but may change import behavior on some platforms. [1]
Sources:
- aiofiles GitHub releases / changelog. [1]
- aiofiles PyPI release history. [2]
If you want, I can list exact lines of code to change (example fixes) for the AiofilesContextManager awaitable migration.
🌐 Web query:
aiofiles changelog major releases compatibility
💡 Result:
Summary of aiofiles major-release compatibility changes
- v23.2.0 / v23.2.1 — added testing / fixes for Python 3.12 (23.2.0 was yanked for a Windows import issue; 23.2.1 is the safe patch). [1][2]
- v24.1.0 — added testing on Python 3.13 and dropped Python 3.7 support (note: maintainers say “If you require [3.7], use 23.2.1”). [2]
- v25.1.0 — adds Python 3.14 support and drops Python 3.8 support (maintainers note “If you require [3.8], use 24.1.0”). [3][4]
If you need a specific Python-version compatibility (e.g., 3.7 or 3.8), stick to the maintained version the project points to in the release notes above.
Sources: GitHub releases and PyPI release history. [1] GitHub: v23.2.0 / v23.2.1 release notes. [2] GitHub: v24.1.0 release notes. [3] GitHub: v25.1.0 release notes. [4] PyPI release history for aiofiles.
Test against aiofiles 24.1.0+ before removing upper bound—breaking async API changes exist.
Removing the upper bound creates real compatibility risk: aiofiles 24.1.0+ introduced breaking changes to the async API (AiofilesContextManager is now an awaitable instead of a coroutine). Ensure code has been tested against versions 24.1.0 and 25.1.0 to verify no awaitable/coroutine migration issues arise.
🤖 Prompt for AI Agents
In pyproject.toml around line 36, the dependency change removes the upper bound
for aiofiles but aiofiles 24.1.0+ introduced breaking async API changes
(AiofilesContextManager became awaitable), so either restore an explicit upper
bound (e.g., <24.1.0) or update code to be compatible with both behaviors and
confirm with tests on 24.1.0 and 25.1.0: audit every aiofiles.open / context
manager usage and replace coroutine-style usages with the new pattern that
awaits the AiofilesContextManager before using it (or use a wrapper helper to
support both awaitable and coroutine returns), run the test suite and
integration tests against aiofiles 24.1.0 and 25.1.0, and only remove the upper
bound once tests pass.
Description
Test latest poetry lock with distributed CI/CD
Type of Change
Screenshots/Videos (if applicable)
Pre-submission Checklist
DCO Affirmation
I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.