After a few tests, I think we are going to use instead the same approach as yeoman generators (Under "How to add your generator").
- We'll use npmjs to store the plugin files, which will have many benefits:
- We'll have built-in support for immutable versions (npm lets you remove package versions, but not change them)
- Developers just need to run the regular
npm publish
to release their plugin, and it means we don't need to build tooling for publishing, auto-creating pull requests, etc.
So on developer side, it's very simple - just npm publish
and it's done.
On our side, we'll still build a repo (similar to the structure mentioned above) based on these published plugins, so that the desktop clients can load them.
We can use npm search
to find all the relevant plugins, then npm install
them on some virtual machine. From there, we'll have the plugin files which we can push to some repository. All this is relatively easy to create, it will probably be just one cron script that runs a few times a day.