Thank you. This was exactly the kind of explaination i was looking for in the first place.
Now i do understand the reasoning behind almost all recent breaking changes.
In my opinion, this is too well hidden and might have been a good post for the blog at the main website.
How so? What changes are happening? I read the PR, itās not a huge issue. I understand the sentiment. Pretty much need to overlay the entire component. Makes sense with the path they are moving. Iām okay with this change. It still shouldnāt be a problem unless you are trying to implement a version from prior to the āreorganizationā. Still going to be a copy/paste, just now itās a whole folder structure.
On a more serious note, security needs to be ādesigned itā from the start. Otherwise there will likely be breakage if user authorization (permissions) is ever implemented.
There are a few categories that could be useful now.
Operator (no access to config)
Read-Only (no access to config or controlling devices).
More categories could be useful. You do not want the kids to mess with the parentsā bedroom lights, for instance.
When this comes, it will be based around the person domain. Currently, if you create a user login, a person is created that is linked to the login. Iām sure over time, a persons attributes will build into UAC.
Just make sure you read the ābreaking changesā section and you should be fineā¦ Takes me 5 minutes to know if I can safely skip the version or if I should try to increment it to avoid future issues/deprecations. These guys put a lot of effort in creating these nice release notes. The least you should always do āas a consumerā is read the release notes of āthe providerā. Similar to the way it works when consuming other services in an API driven world.
As @DavidFW1960 has nicely stressed: please RTFM. I see this in my day to day job and itās not different elsewhere. These projects have a lot of momentum and the release train will not stop for the sake of one individual/consumer.
In this discussion there are basically three paths you can follow, as I see it:
Either you follow, āas a consumerā, the spec given āby a providerā. Leading to minor investment in each bump in version.
You postpone your upgrades to each major version release (mind that v1.0 hasnāt been released yet). Youāll probably need to carefully plan this moment as it can be time consuming but youāll gain stability in the way forward.
Donāt upgrade with the risk of diverging (cfr. ādecommissioningā of component APIās)
I know how it feels. This is the hardest choice any business/project must makeā¦ I also agree that currently not all changes are lenient but version 1.0.0 hasnāt even been released yet so give it some time.
Does anyone know if this project will switch to semantic versioning if it goes āstableā? Are different major versions going to be worked on in parallel?
No additional functionality as far as tplinkā¦but it wasnt implemented the best way before. Ie. Having to get the IP setup the reservation, etc. The new component allows you to add a line in the config and it will discover all TPlink devices. I donāt like setting reservations on my gear. I have too much of it.
Version 1.0 will not necessarily be momentous, and certainly wonāt mean HA has reached any milestone. The numbering system is purely arbitrary and goes up by .01 every two weeks. We are at 0.89 now, Weāll be at 1.00 in 22 weeks. So 1.00 is not some milestone, it is simply 11 versions (and therefore 22 weeks) away.
Iām very excited about this one, I recently had some trouble with the static IP on my TP-Link switch not sticking, and having to go into configuration.yaml a couple times to update and then restart Home Assistant. Having HA auto-discover any IP changes on this component is going to be a great addition.
And really, thereās no reason they even have to go to a 1.00 version in 11 weeks. Thereās no reason they couldnāt version to .100, .101 etc. until the software is at a point where they want to call something a true 1.00 milestone.
In all honesty, I donāt know how they could have made it more clear. It was in the main blog post as a noteworthy breaking change. I mean it had itās own section above breaking changes. I guess the only difference is that you had to click a link.