Replies: 2 comments 2 replies
-
|
CCing @sumanjeet0012 , @parth-soni07 and @acul71. |
Beta Was this translation helpful? Give feedback.
-
|
@seetadev Thank you for bringing this to our attention. I've noted that the latest version of p2pclient was released on February 9, 2022. Given the lack of recent maintenance activity, I believe the most pragmatic approach would be to fork the repository and update the anyio dependency to a compatible version. Our proposed plan of action is as follows:
To ensure reliability and mitigate the risk of a single point of failure (such as account suspension), we should maintain multiple clones of the fork across different github accounts. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🧩 Context
While working on the
anyiomigration forpy-libp2p, I’ve encountered a persistent version conflict involving thep2pclientdependency.The
p2pclientlibrary installs an internal version ofanyioas soon as it’s committed or pushed.This creates a direct conflict with the
anyioversion specified in our project’spyproject.toml.Despite multiple attempts to reconcile this mismatch —
✅ Bumping the
anyioversion,✅ Overriding with dependency constraints, and
✅ Using a separate
constraints.txt—the conflict remains unresolved.
I wanted to open this discussion to document the issue, explore solutions, and gather insights from contributors.
⚙️ Problem Summary
p2pclientanyiodependencyanyioversion fromp2pclientoverrides or conflicts with the project’s declared version.anyiomigration branch.Analysis
The likely cause is that
p2pclientpins a specificanyioversion (possiblyanyio==2.x) that conflicts with the newer version used by the ongoingpy-libp2pmigration (anyio>=3.x).Potential Solutions
Below are the possible paths we could take to resolve this dependency issue:
Option 1: Fork and Upgrade
p2pclientFork the
p2pclientrepo.Update its
anyioversion to match the project’s (e.g.,anyio>=3,<5).Test compatibility locally.
Use the forked repo in
pyproject.toml(via Git URL):✅ Pros: Full control, immediate unblock.
Option 2: Dependency Override
Use dependency resolution features to override
p2pclient’s internal version (works if version constraints aren’t strict).Example (Poetry):
✅ Pros: Minimal code changes.
p2pclientpins exact version numbers.Option 3: Upstream PR / Issue
p2pclientrequesting that its dependency onanyiobe loosened (e.g.,anyio>=3,<5).🧠 Recommended Approach
We should first:
p2pclient’s latest pinned version ofanyiofrom itssetup.py/pyproject.toml.🧰 Next Steps
Investigate which version
p2pclientcurrently depends on.Decide whether to:
Update documentation in
py-libp2pnoting this compatibility caveat.Share reproducible steps for anyone facing similar dependency lock issues.
🗣️ Open Questions
p2pclientandanyioduring testing?p2pclient?anyio>=3forp2pclient?🔗 Related References
Appreciation
Thank you to everyone contributing to the migration work!
Special thanks to Parth, Sumanjeet and Emmanuel working on the
anyiotransition — your effort strengthens the foundation for async I/O inpy-libp2p.Feedback and insights are welcome — let’s collaborate on the cleanest path forward.
Beta Was this translation helpful? Give feedback.
All reactions