stream
stream copied to clipboard
Defining Requirements for Third-Party Connector Support in Stream Core
Stream already (partially) supports several third-party connectors, but as we progress with work it is apparent that supporting third party connectors in Stream core may not be the best path for ensuring core development of Stream remains flowing smoothly (pun intended 😉).
Currently there are several requests to support other third-party plugins, as well as bugs for the third-party plugins that Stream currently supports. However, there is no clear indication what level of support Stream core intends to maintain (or add) for third-party plugins. As work progresses to fix bugs, improve testing and support other plugins, we are inundated with supporting these third-party plugins (which often change), which can overshadow the core feature development of the plugin.
Let's use this issue to talk about support for third-party plugins in core code, what plugins we will/should support in Stream core, how plugins can extend Stream without being in core code, what are the requirements for a third-party plugin to get supported in Stream core and so on.
Personally, I think all third-party plugin support should exist in a separate plugin that integrates with Stream. While it would be best if each third-party plugin developer would merge code to support stream, it is not likely to easily get traction to merge changes to support a plugin that may or may not be installed (which is what Stream does).
A better path may be to pull out third-party connector support into their own plugins (e.g. stream-acf, stream-woocommerce, etc). Doing so will give a clearer understanding of what Stream core supports (WordPress core), what each third-party connector supports and also serve as examples of how third-party plugins can extend Stream with their own connector plugins (maybe a Github template: stream-connector).
@kopepasah This same dilemma has been bothering me as well, and I've come to a similar conclusion and solution as yourself, with one some exception. I don't like the idea of splitting them into their own individual repositories like stream-acf, stream-woocommerce, because there isn't a lot of logic in one connector. I think one repository for them all like stream-integrated-connectors, stream-3rd-party-connectors would be easier to maintain and learn from.