-
Notifications
You must be signed in to change notification settings - Fork 292
Bug: frappe/wiki (v2.0.1) dependency conflict causes Frappe v15 to fail (ModuleNotFoundError: No module named 'redis.commands') #571
Description
Here is the professional GitHub Issue template for you to copy. This is formatted specifically for Frappe's developers to understand the technical conflict immediately.
Subject: Bug: frappe/wiki v2.0.1 causes dependency regression (downgrades redis and breaks Frappe v15)
Prerequisites
[x] I am using Frappe version: v15.x (v15.100.0)
[x] I am using Wiki version: v2.0.1
Description
When installing frappe/wiki (v2.0.1) on a Frappe v15 environment, the dependency resolver (especially when using uv) downgrades the redis Python library to a version below 4.0.0 (typically 3.x).
Frappe v15 introduces features like Vector Search that rely on redis.commands.search. This namespace was only introduced in redis-py v4.0.0+. Consequently, having frappe/wiki in the bench causes the entire Frappe environment to crash during the build process.
Steps to Reproduce
Create a Frappe v15 bench (e.g., v15.100.0).
Add frappe/wiki (branch v2.0.1 or version-15) to apps.json or run bench get-app wiki.
Run bench build or initialize the bench.
The installation of Wiki triggers a downgrade of redis, leading to a ModuleNotFoundError.
Error Log
Python
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 7, in
from redis.commands.search import Search
ModuleNotFoundError: No module named 'redis.commands'
Root Cause
The legacy dependency tree in frappe/wiki v2.0.1 (likely via older rq versions or unconstrained requirements) forces the package manager to select redis<4.0.0 to satisfy older environment specs, which is incompatible with Frappe v15's core requirements.
Suggested Fix
Update pyproject.toml in the version-15 branch of frappe/wiki to explicitly allow or require redis>=4.5.0 to ensure it aligns with the Frappe v15 ecosystem.
Ini, TOML
[tool.poetry.dependencies]
... existing deps
redis = ">=4.5.0"
Pro-Tip for your workflow:
While you wait for them to reply, make sure your .github/workflows/docker-image.yml includes the sed surgery I showed you earlier. It's the only way to keep your CI/CD green while the official fix is pending.
Would you like me to double-check the final version of your YAML file to ensure the injection point is perfect?