Remove redundant passlib pin that conflicts with libpass - #10325
Conversation
Flask-Security-Too >= 5.7 depends on libpass, a fork of passlib that installs its files under the same passlib/ import path. Our own unconditional passlib==1.* pin in requirements.txt therefore causes both packages to be installed into the same site-packages/passlib/ directory, and parallel installers such as uv can end up with a mixed or overwritten set of files depending on install order. pgAdmin's own code never imports passlib directly, and the older Flask-Security-Too 5.6.x branch (used on Python 3.9) already pulls in real passlib as its own transitive dependency, so dropping our direct pin does not change what gets installed there. On newer Python versions, only libpass is installed, resolving the conflict. Closes pgadmin-org#10239
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 3 remain after this review. WalkthroughThe runtime requirements remove the direct ChangesDependency cleanup
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This localized dependency cleanup removes a conflicting redundant pin without changing application code or introducing an actionable merge-blocking risk; it is merge-ready after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
Summary
requirements.txtpinnedpasslib==1.*directly, butFlask-Security-Too(>= 5.7) depends onlibpass, a fork of passlib that installs its files under the samepasslib/import path.site-packages/passlib/; with parallel installers such asuvthe result depends on install order and can leave a mixed or overwritten set of files (see issue for the exact failure modes).passlibdirectly. The olderFlask-Security-Too5.6.x branch (used on Python 3.9) still depends on realpasslibitself, so removing our direct pin doesn't change what gets installed there; on newer Python versions onlylibpassis installed, which resolves the conflict.Test plan
passlib/libpassimports anywhere underweb/pgadmin(excluding tests).pip showthat the installedFlask-Security-Too==5.8.2requireslibpass, notpasslib, and nothing in the current dependency graph requirespasslib.Flask-Security-Too5.6.1 wheel metadata that the Python 3.9 branch still requirespasslib>=1.7.4transitively, so dropping the top-level pin doesn't remove it from that branch.Closes #10239
Summary by CodeRabbit