All, I would like to discuss a topic with you that I feel is vitally important for the future of openHAB.
This project has grown massively over the past 5 years since its first release and we have a great community with a steadily increasing number of contributions - this is really awesome and something I would have never thought of being possible!
The downside is though, that the current organisational setup does not keep up with the evolution of the project. You might have wondered when the openHAB 1.8 release will be available, since half a year has passed since the 1.7 release. The blatant truth is: We cannot tell. You might have noticed that there are currently about 70 open pull requests for openHAB 1.x, many unprocessed since many months. Most, if not all, of these pull requests should imho be merged for the 1.8 release.
Not finding the time to review and merge pull requests is distressing for us, but it must be awfully disappointing for any contributor who spent lots of efforts on creating the pull request, just to see it lingering there. From my point of view, this is an unacceptable situation that needs to be addressed asap.
The reason for this situation is pretty obvious: With mainly @teichsta and myself as maintainers on openHAB 1 and openHAB 2 respectively, we have simply reached a very unhealthy unbalance between contributors and maintainers. Although there are others helping a lot on the pull requests as well (like @chris on Z-Wave, @watou on Nest, Ecobee, etc., @theo_weiss on Debian, Tinkerforge etc.), I think that simply adding a few futher people won’t help us solving the problem - the only way to go is to change something about the processes.
I have a few ideas in mind that are not yet carved in stone, but which I would like to share with you in order to get feedback and have a discussion:
New “Integration Rank” for Add-ons: Add-ons are optional parts and some are only interesting to a very small number of users. Not all of them might require a detailed code review and a place in the main repository. For openHAB 2, we already now have different places where add-ons sources are located: Some are in the Eclipse SmartHome repo, others in openHAB 2 and all the rest in openHAB 1. I would therefore like to completely split the (future) openHAB 2 runtime from the add-ons and with this introduce different repositories for the add-ons, like for “fully-reviewed and actively maintained” (rank 1) ones (like currently) and one for “not-in-depth-reviewed, but successfully tested” (rank 2) ones. All others (i.e. “not-reviewed and not tested” (rank 3)) could still be listed by referencing external repositories, so that at least they can be found.
Transforming contributors to maintainers: Having separate repos makes it easier to deal with access rights. In any case, I would want to see every contributor of a rank 1 add-on to be an active maintainer of his code and thus to also have write access to the repo, so that PRs and issues can be dealt with directly. Having undergone a full code review themselves, I could also imagine a kind of round-robin assignment for the “not-to-be-reviewed-in-depth” PRs of rank 2; this should mainly cover checking the general guidelines and making sure that the formalities (like license compatibility and signed off and squashed commits) are fulfilled. All in all, the goal is to have any openHAB developer helping out a bit on the reviewing tasks as well.
openHAB for the community: You might know that we currently have the “openHAB UG” company as a legal entity behind the openHAB project as a place to host and support the project - this company is run by myself, @teichsta and @belovictor. In order to reflect the fact that openHAB is effectively run by its community, I would like to give everybody the chance to better engage himself (officially) in this organization and thus scale it easily. As this is not possible with a regular company as the openHAB UG, I suggested to replace it by a non-profit (charity) organisation (for the Germans here: a “gemeinnütziger e.V.”) instead, where the board is chosen by the members and anybody is free to join the organisation. This should help us scale more easily and set a good legal frame for all operations (like having write access to repos, becoming a moderator or admin on the forum etc.)
Would you agree with those points? Do you have any other good ideas on measures that should be taken?
All those changes will mean quite some effort to get in place. But since we planned the openHAB 1.8 runtime to be the final version (and only continue with 1.9 for the add-ons) and openHAB 2 runtime becoming the mainstream version afterwards, this might be a good moment to go through these changes. It also will have a huge impact on the structure for documentation, the wiki, etc., so we very much depend on your support here - so please step up and help making these things happens!