Do the checklist before filing an issue:
Describe the bug 📉
bench pins Click~=8.2.0 in pyproject.toml (also on develop), frappe v16 pins Click~=8.3.1. Both share the same venv, so the two pins can never be satisfied at the same time: every pip install -U frappe-bench downgrades click to 8.2.x and prints a resolver error against frappe, every bench setup requirements upgrades it back to 8.3.x and would complain the other way around.
Nothing actually breaks — bench works fine with click 8.3.x — but the error shows up on every update cycle and trains people to ignore pip resolver errors, which is not great.
To Reproduce 📃
- Production bench with frappe version-16 installed
env/bin/pip install -U frappe-bench
- pip downgrades click and reports:
ERROR: pip's dependency resolver does not currently take into account all the
packages that are installed. This behaviour is the source of the following
dependency conflicts.
frappe 16.22.0 requires Click~=8.3.1, but you have click 8.2.1 which is incompatible.
bench setup requirements then reinstalls click 8.3.x, reversing the downgrade
Expected behavior 📈
bench and frappe should have compatible click requirements so that updating one doesn't produce resolver errors against the other.
OS (please complete the following information): 🌀
Version Information
- Bench Branch: PyPI 5.30.0
- Frappe Version: 16.22.0 (version-16)
- ERPNext Version: 16.22.0 (version-16)
- Python: 3.14
Possible Solution 📑
bench only uses stable click CLI APIs that didn't change between 8.2 and 8.3, so either relaxing the pin to Click>=8.2,<9 or bumping it to ~=8.3.1 to match frappe would fix this. Happy to send a PR if you tell me which variant you prefer.
Do the checklist before filing an issue:
Describe the bug 📉
bench pins
Click~=8.2.0in pyproject.toml (also on develop), frappe v16 pinsClick~=8.3.1. Both share the same venv, so the two pins can never be satisfied at the same time: everypip install -U frappe-benchdowngrades click to 8.2.x and prints a resolver error against frappe, everybench setup requirementsupgrades it back to 8.3.x and would complain the other way around.Nothing actually breaks — bench works fine with click 8.3.x — but the error shows up on every update cycle and trains people to ignore pip resolver errors, which is not great.
To Reproduce 📃
env/bin/pip install -U frappe-benchbench setup requirementsthen reinstalls click 8.3.x, reversing the downgradeExpected behavior 📈
bench and frappe should have compatible click requirements so that updating one doesn't produce resolver errors against the other.
OS (please complete the following information): 🌀
Debian 13 (trixie)Version Information
Possible Solution 📑
bench only uses stable click CLI APIs that didn't change between 8.2 and 8.3, so either relaxing the pin to
Click>=8.2,<9or bumping it to~=8.3.1to match frappe would fix this. Happy to send a PR if you tell me which variant you prefer.