As a contributor and a PR reviewer, I can guarantee that my fellows and I do not set out with the mindset of, “Who cares, I’ll just make a breaking change.” Every time we submit PRs, we give careful thought to the experience, weigh the pros/cons, etc.
Let’s use an example of mine from 0.105.0: https://github.com/home-assistant/home-assistant/pull/30567
In this case, I learned more about SimpliSafe’s undocumented cloud API than I knew before. Based on this new knowledge, I realized that existing functionality wouldn’t work in the way I’d thought. To fix it, I had to make a drastic change (replace several individual services with a single one). I hate that red Breaking Change
label, but I applied it, knowing that the ultimate experience would be better.
Every breaking change is like that. We would love to avoid them, but truthfully, there are so many factors (speed of development, inclusion of integrations that rely on undocumented APIs, etc.) that make it difficult to envision a future where they are limited more than they already are.
As an aside, I can say that of the dozens of HASS installations I’ve performed in our home, quite a few had breaking changes that impacted integrations we use. Every single time, a careful, slow reading of the release notes has enabled me to prep for them before deploying a new HASS version. Additionally, I’ve taken the time to put my entire config in a GitHub repo (with an associated CI/CD process) that allows me to check things before I roll them out, roll them back as needed, etc.
I certainly understand and respect that my circumstances may be unique (and that not everyone can have a similar experience); I also understand and respect that I may put more effort into my system than others have time or patience for. However, I must admit I’m shocked when I continually see so many loud messages about how badly someone’s installation was ruined because of breaking changes. I’ve never experienced that and I’ve been a HASS user for a long time.
Tell us how we can help. Give us tactical ideas, rather than well-intentioned-but-ultimately-not-helpful admonitions about “needing a better user experience.” We’ll tell you if solutions aren’t feasible, but we certainly won’t chastise you for offering them.