Conversation
This is a pre-release for 0.6.0 to make the current state of the library available via PyPI for testing and development, and is not yet ready for end users. There are several breaking changes as detailed in the PRs below, but for most library users, the most visible change being that the integrations have moved into their own packages under `miio.integrations` instead being available under the main package. Instead of directly importing the wanted implementation class, you can now use `DeviceFactory` to construct an instance. This release is a huge with over 200 pull requests with 364 files changed, including 13748 insertions and 5114 deletions. It is also the largest release in terms of device support, as it adds support for _all_ miot/miotspec devices using the genericmiot integration. This is a big change in how the library was originally designed, as these devices will require downloading externally hosted specification files to function. These files are downloaded automatically when the device is used for the first time and cached for some time for later invocations. The major highlights of this release include: - Introspectable interfaces for accessing supported features (status(), sensors(), settings(), actions()) that will allow downstream users (like homeassistant) to support devices without hardcoding details in their codebases. - Generic support for all locally controllable, modern miot devices (using genericmiot integration, `miiocli genericmiot`). - Factory method for creating device instances instead of requiring to hardcode them (see `DeviceFactory`). - miio and miot simulators to allow development without having access to devices. This was used to create the miot support and might be useful for other developers. There are plenty of more in this release, so huge thanks to everyone who has contributed to this release and my apologies that it has taken so long to prepare this. I am hoping that we will get the release blockers fixed in a timely manner to make these new improvements available for everyone without having to use the git version. Help is needed to add the metadata required for the introspectable interfaces to all existing integrations, see https://python-miio.readthedocs.io/en/latest/contributing.html#status-containers and its subsections, if you are looking to contribute. Otherwise, feel free to test and report any issues, so that we can get those fixed for the 0.6.0! :-) **Note: the current homeassistant integration requires major refactoring effort to make use of the new interfaces, so this release will not be directly useful for most of the users until that work is done. This release aims to unblock other homeassistant PRs that have been pending for a long time.**
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1911 +/- ##
=======================================
Coverage 81.43% 81.43%
=======================================
Files 193 193
Lines 18604 18604
Branches 4032 4032
=======================================
Hits 15150 15150
Misses 3173 3173
Partials 281 281 ☔ View full report in Codecov by Sentry. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a pre-release for 0.6.0 to make the current state of the library available via PyPI for testing and development, and is not yet ready for end users. There are several breaking changes as detailed in the PRs below, but for most library users, the most visible change being that the integrations have moved into their own packages under
miio.integrationsinstead being available under the main package. Instead of directly importing the wanted implementation class, you can now useDeviceFactoryto construct an instance.This release is a huge with over 200 pull requests with 364 files changed, including 13748 insertions and 5114 deletions. It is also the largest release in terms of device support, as it adds support for all miot/miotspec devices using the genericmiot integration. This is a big change in how the library was originally designed, as these devices will require downloading externally hosted specification files to function. These files are downloaded automatically when the device is used for the first time and cached for some time for later invocations.
The major highlights of this release include:
miiocli genericmiot).DeviceFactory).There are plenty of more in this release, so huge thanks to everyone who has contributed to this release and my apologies that it has taken so long to prepare this. I am hoping that we will get the release blockers fixed in a timely manner to make these new improvements available for everyone without having to use the git version.
Help is needed to add the metadata required for the introspectable interfaces to all existing integrations, see https://python-miio.readthedocs.io/en/latest/contributing.html#status-containers and its subsections, if you are looking to contribute. Otherwise, feel free to test and report any issues, so that we can get those fixed for the 0.6.0! :-)
Note: the current homeassistant integration requires major refactoring effort to make use of the new interfaces, so this release will not be directly useful for most of the users until that work is done. This release aims to unblock other homeassistant PRs that have been pending for a long time.
Related to #1808