Tough Love comment.
Backward compatibility good. Breaking changes bad. We all know that. Some breaking changes may be unavoidable. Some are not.
For EXAMPLE – TP-Link Kasa Smart:
"The power and energy attributes from switch entities have been REMOVED and REPLACED by sensors. This applies to all five extra attributes about energy (current_power_w
, total_energy_kwh
, today_energy_kwh
, voltage
, current_a
).
Okay I get it. Adding the sensors is fine. I created these sensors way back when from attributes. But why was it deemed necessary to delete the attributes? Deleting the attributes forces users to make changes to their code. Leaving the attributes in place is a backward compatibility strategy at the expense of duplication. This one is especially painful since the integration will probably loose popularity with Home Assistant users moving forward due to TP-Link’s removal of the local API (unless the firmware update port is blocked at the router).
This is just an example. I can make these changes in less then an hour. But these types of unnecessary “breaking changings” are totally avoidable and only serve to propagate Home Assistant’s reputation for being “high maintenance” thus impeding it’s popularity moving forward.
There are lots of other examples but I’ve made my point.
Bottom line:
Backward compatibility needs to be a HIGH priority - or better yet, a “MUST” in the update strategy.