Skip to content
This repository has been archived by the owner on Apr 6, 2021. It is now read-only.

How do you manage plugins ? #59

Open
jeremieca opened this issue May 23, 2017 · 3 comments
Open

How do you manage plugins ? #59

jeremieca opened this issue May 23, 2017 · 3 comments

Comments

@jeremieca
Copy link

jeremieca commented May 23, 2017

Hello,

I have a question about the management of your plugins in C9.
At C9, I think that you have multiples projects, with lots of plugins inside. And sometimes, you need to reuse plugin in another project. So :

  • Do you use npm private to save your architect plugins and reuse it ?
  • Have you a git repository per plugin you want to reuse ?
  • How do you resolve architect dependencies when using a plugin ? For example a plugin A with deps on B and C : How do you automatically get B and C when you import A in your project; With NPM ?

If a developper, not working at C9, have an idea on the question, i'm also interested in !

Thanks !

@nightwing
Copy link
Contributor

Hi
we use a monorepo, mostly similar to https://github.com/c9/core, and a script to create separate repositories for each plugin from it.

@jeremieca
Copy link
Author

jeremieca commented May 24, 2017

Ok, thanks.

So if I well understand, you have one big repo containing all your server with plugins. And you have on repo per plugin (created by a script ?) ?

When you use a plugin in two projects, how do you propagate the change on plugins in the two projects ?

@nightwing
Copy link
Contributor

We have only one project, that runs in many different configurations, and architect is mainly useful for running different configurations.

Currently architect doesn't automatically resolve dependencies. It allows to do the opposite, that is define dependencies manually.
Say you have plugin A which provides services x, y and consumes service z, And plugins B and C which both provide service z, but implemented differently/working on different environments.
Architect allows to pick plugins B or C without modifying code in A.

For example we have a config that when running on node-webkit loads implementation of clipboard plugin based on node-webkit api, and when running in browser loads the one based on html5 api

The script we have can separate a folder into a new repo and merge changes from the repo back into subfolder, so we could use it to pull changes from one project into another. But this approach would work best if both projects are maintained by same people, it won't work well for third party modules.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants