Skip to content

Bug: frappe/wiki (v2.0.1) dependency conflict causes Frappe v15 to fail (ModuleNotFoundError: No module named 'redis.commands') #571

@1060778506

Description

@1060778506

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions