You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While working on the Home-Assistant dependency bump, I've been wondering if it might be worth it to separate and cleanup the requirement a bit. This would definitely help reduce dependency conflicts but only installing what is truly needed.
At the moment all dependencies are specified in requirements.txt. This leads to a situation where amqtt needs to be installed for Home Assistant, and subsequently creates dependency conflicts, although it isn't even needed there. I would like to suggest splitting the dependencies into what is required for everything (these should remain as install_requires), and what is needed for the mqtt server. Those could be moved to extras_require.
The only downside would probably be that users would need to use pip install volvooncall[mqtt] instead if they want like to use the mqtt server.
Furthermore, I would recommend against reading the requirements from requirements.txt in setup.py. requirements.txt is still needed (for CI and testing) and thus should include all dependencies. Especially with the split, it would however be better to specify the dependencies independently in setup.cfg.
Last, I know I just recommended updating the websockets dependency. While checking the requirement, I just found that it isn't even used directly. So it might be safe to remove entirely? If other packages depend on it, they specify a dependency range for it themselves (eg. amqtt).
Yup, bumping to 0.9.2 resolves the websocket conflict for Home Assistant, but introduces:
amqtt 0.10.0 has requirement PyYAML<6.0.0,>=5.4.0, but you have pyyaml 6.0
Even though Home Assistant doesn't even need amqtt in the first place. Would be nice if it was specified as an extra requirement as listed above by @cdce8p.
Anyways: This currently prevents bumping the Volvo On Call integration, but also blocks us from upgrading to the latest pip resolver. Once we upgrade to the latest pip that forces us to use the new resolver (which is expected to land soon), we have no choice but to disable the Volvo On Call integration.
If we can do anything to help, feel free to reach out!
@frenck I've already provided a PR for amqtt to update the PyYAML requirement. Just waiting for a new release there. You're right though that separating the requirements would be helpful for the future.
While working on the Home-Assistant dependency bump, I've been wondering if it might be worth it to separate and cleanup the requirement a bit. This would definitely help reduce dependency conflicts but only installing what is truly needed.
At the moment all dependencies are specified in
requirements.txt
. This leads to a situation whereamqtt
needs to be installed for Home Assistant, and subsequently creates dependency conflicts, although it isn't even needed there. I would like to suggest splitting the dependencies into what is required for everything (these should remain asinstall_requires
), and what is needed for the mqtt server. Those could be moved toextras_require
.The only downside would probably be that users would need to use
pip install volvooncall[mqtt]
instead if they want like to use the mqtt server.Furthermore, I would recommend against reading the requirements from
requirements.txt
insetup.py
.requirements.txt
is still needed (for CI and testing) and thus should include all dependencies. Especially with the split, it would however be better to specify the dependencies independently insetup.cfg
.Last, I know I just recommended updating the
websockets
dependency. While checking the requirement, I just found that it isn't even used directly. So it might be safe to remove entirely? If other packages depend on it, they specify a dependency range for it themselves (eg.amqtt
).https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#optional-dependencies
home-assistant/core#64942
/CC @decompil3d
The text was updated successfully, but these errors were encountered: