Managing core and contributed Kaleidoscope plugins

My feeling is that there ought to be three ‘tiers’ of plugins in the Kaleidoscope universe. I believe that it’s pretty important that we ship a blessed ‘distribution’ containing both core functionality and ‘neat addons.’ It’s just as important that we not act as gatekeepers for every possible plugin written by an end user. That’s not how you end up with a community :wink:

  1. Core plugins. Plugins that are part of the ‘Kaleidoscope core’ - These are supported just like the Kaleidoscope firmware itself. They are shipped as part of the standard distribution and are managed by the same people who manage Kaleidoscope. https://github.com/keyboardio/Kaleidoscope/blob/master/CODE_OF_CONDUCT.md applies to these plugins

  2. Contributed plugins. Plugins distributed with Kaleidoscope that are not considered core functionality, but that we, at least to a reasonable approximation, maintain and support. They should be in the same github org as Kaleidoscope and the same folks who manage the core should have write access. https://github.com/keyboardio/Kaleidoscope/blob/master/CODE_OF_CONDUCT.md applies to these plugins.

  3. Third party plugins. We don’t distribute these ourselves. We don’t maintain or support them. They don’t live in our repositories. While we would hope that contributors to these plugins would embrace https://github.com/keyboardio/Kaleidoscope/blob/master/CODE_OF_CONDUCT.md, that would ultimately be up to the author.

The big difference from what Craig proposed in his second proposal is, I think, that I feel strongly that if a plugin is included in our default distribution, “we” have the ability to make changes to it. My goal isn’t to assert copyright on others work or to take anything away from them. I don’t expect any scenario where we’d be kicking the original author of a contributed plugin out, unless they were violating the CoC and we couldn’t resolve things through by talking them out.

It should be possible for plugins to go from being a third-party plugin to being a core plugin or a contributed plugin, so long as the parties involved agree.

Contributed plugins may end up adopted as core plugins.
If unloved, contributed plugins may be cast out as third-party plugins.
Core plugins may get punted down to being contributed plugins, but that will hopefully be very rare.

There’s an additional wrinkle to all of this. Hardware device vendors who ship keyboards with Kaleidoscope will likely have their own ‘distribution’ of Kaleidoscope with plugins they think are valuable to their customers. At least for the foreseeable future, I expect that Keyboardio will just ship the standard distribution of ‘Core + Contributed’

Does this seem sensible?

PS - I’m lifting this subconversation to a new topic.

4 Likes