Plugin Decentralization

Moving from centralized to de-centralized plugins is a major change as we move toward Drone 0.5. Currently most plugins are centralized, owned and maintained by the drone organization, and in some cases just one person (me). Going forward we will start moving plugins out of the official organization and handing them over to community members.

There are a number of good reasons to decentralize:

  • Maintainers (like me) are unable to review plugins they don’t understand
  • Maintainers (like me) are unable to support plugins they don’t understand
  • Developers should be encouraged to quickly create and update their own plugins without having to ask permission from maintainers
  • Developers should be encouraged to fork and enhance plugins that don’t meet their needs

Consider for a moment what the node community would look like if all packages were owned by the node organization? It would be a complete disaster. The node maintainers don’t have the time or expertise to review and understand every possible package and use case out there. The same applied to the Drone maintainers and Drone community.

This will be a painful policy change at first, but in the long run I believe it is the right decision and will result in a more healthy plugin community.

Which plugins will remain official?

Over time we will remove nearly all plugins from the official organization. The only remaining plugins will be plugins required to build Drone itself. This will tentatively include the Git, Docker and S3 plugins only.

How will people discover community plugins?

We will be launching a plugin registry at plugins.drone.io for community members to share and discover plugins. This will be modeled after the Atom plugin registry at https://atom.io/packages

But can’t you just merge this 1 pull request?

Unfortunately we cannot. If we continue to maintain plugins in the official organization there is no incentive for community members to take ownership.

How do you determine who should own the plugin going forward?

We will be asking top committers to take ownership of plugins. If we are unable to find an owner we will mark the plugin as deprecated and will not upgrade to 0.5. Individuals interested in upgrading or enhancing plugins will be offered ownership.

1 Like

This is the list of plugins that will definitely remain official and be kept in the drone organization, largely because they are used by drone itself:

  • drone-ecr
  • drone-docker
  • drone-gcr
  • drone-git
  • drone-gitter
  • drone-s3

This is the list of plugins that may remain official:

  • drone-github-release — drone may start using this for cli releases
  • drone-downstream
  • drone-npm
  • drone-slack — brad uses this plugins in every demo he gives