I wish openHAB would communicate whether it seeks to be a platform or an application.
A platform enables decentralised third parties to autonomously design, develop, discover, distribute and deploy new capabilities. This requires prioritising features such as addon indexes, usage telemetry to surface quality proxies to intending users, security models (permissions, flagging, moderation, bytecode analysis), sandboxing (isolated logging, control flow instrumentation, operational metrics) etc.
An application enables end users to download a single centralised distribution and have a relatively reliable turnkey experience. But doing that requires a strong level of contribution gating that seems unrealistic for a vendor agnostic DIY solution, let alone one without any FTE employees or sponsors.
Increasingly open source projects communicate their ubiquity based on convenient community metrics such as number of plugins, lines of contributed code, quantity of contributors, number of downloads etc. Such metrics are trivially optimised by platforms while being comparatively difficult for those applications maintaining quality controls. In turn more accessible projects have a stronger marketing proposition, in turn leading to accelerated adoption, contributors and competitive position (uncorrelated to underlying quality).
Iâve had 6 recent experiences with the addon ecosystem that indicates to me it currently struggles:
- I purchased some hardware and found the official addon broken, so I located an earlier bug report, made a small fix and submitted a PR. While the PR was promptly reviewed, I was asked to make substantial changes and the overwhelming majority of those were unrelated to my small fix.
- I used an official addon and added a feature to it. It was circa 10 lines. The PR was promptly reviewed with LGTM but then no second reviewer ever dealt with it. Months later I closed the PR as the lack of the feature made it unusable and I switched to another addon.
- I use an unofficial addon supplied as a community JAR, but it broke due to hosted service provider changes. The author fixed it within hours and I wondered why it wasnât an official addon given the apparent widespread use and responsive maintainer. I found an old post where he reported that it was once submitted but so many changes were sought that he didnât proceed.
- I use an official addon despite there being a far more feature-rich unofficial version. The author never submitted it for a PR and has now disappeared without their useful work being built upon.
- I was trying to integrate some hardware and found there was a PR for it. But then I found it unreviewed, and even the authorâs request here months later was met with âbe patientâ.
- Someone suggested writing an addon here on the forum. A few users chimed in to suggest it wasnât that useful. The user cited another project that had a similar feature and expressed disillusionment and that they would go elsewhere.
Today I was working on a battery system integration and believe it would make a useful openHAB addon. Yet I have no intention of packaging it as such, as based on the above there is a high probability that it will either receive no review, no interest or require substantial PR modifications that I donât have time for.
I hope that openHAB evolves into a platform that makes it easy to welcome and channel the enthusiasm of prospective addon developers. There are ample precedents (app stores, browser plugin directories, operating system package managers etc) on how to achieve this. Just appointing more reviewers is fine, but it wonât change the experiences of #1, #3, #4 and #6 above, as the review process is aiming to enforce a quality benchmark that makes the bar so very high. A platform, on the other hand, would capture all the energies put into every example above and leave everybody - irrespective of their enthusiasm or available time - able to constructively participate and share their work.