Remove unneeded construct import for Eq3btsmart#95419
Remove unneeded construct import for Eq3btsmart#95419Lash-L wants to merge 2 commits intohome-assistant:devfrom
Conversation
|
Hey there @rytilahti, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
|
Hey rytilahti, I know you're also the codeowner for xiaomi miio. I personally don't have miio for any of my devices and to remove the construct dependency, I assume I would need to do the try except inside the package rather than inside the integration, is that something you would be able to add to your to-do list? I could attempt, but I don't want to break anything |
emontnemery
left a comment
There was a problem hiding this comment.
Please rebase the PR
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
|
Construct is pinned because the author doesn't believe in backwards compatibility, and so each version contains breaking changes. See construct/construct#428 (comment) It is strongly recommended to not use construct |
|
Thanks @balloob for the background 👍 I think it would be clearer to pin the version in |
|
That is good context, I didn't realize. Went through that issue and the matching issues miio seems to have dropped the strict pin starting here stating that it was stable: rytilahti/python-miio#384 However, the last version is from Feb of 2022 and it doesn't seem like new updates are still coming out. I have just been trying to figure out a problem with a small subset of users (~5) who are getting an error from construct and we figured bumping the version was a good thing ot try #94197 But long term, we should probably move away from construct in general, however that is a larger change than I have time for in the short term. But either way, shouldn't the individual packages specify what version of construct is breaking? If >2.10.56 is breaking, shouldn't it be thrown in the pyproject and the pip dependency resolver will throw an error if another integration tries to use a higher version? Why does it need to be specified as a integration requirement constraint? I know I could 100% be missing something |
|
I'm closing this PR based on @balloob's explanation of why we pin @Lash-L I still think a PR which instead of removing the pinned |
Breaking change
Proposed change
I am working on a problem with construct in the Roborock integration, and I realized that the construct version is hardlocked in homeassistant in three places
'construct>=2.9.52,<2.11'For all of these - the actual integration has no real dependence on construct, just the package, and as such, the dependency should probably only be specified inside the package
Feel free to tell me if this is wrong for any reason.
Type of change
Additional information
Checklist
black --fast homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all..coveragerc.To help with the load of incoming pull requests: