Is there an issue with the semantics of "plugin add" and "platform add"?

This is just a high level query to see if this is something worth discussing in 
more detail.  I don't know exactly what each Cordova CLI command does.  My 
knowledge is based upon reading documentation (which is sometimes wrong as 
noted in recent e-mails) and experimentation.

What does "add" do?


1.      For "plugin add" fetches the plugin sources.  For "platform add" 
fetches the platform implementation if necessary.

2.      Stores some metadata somewhere indicating that the plugin or platform 
was added?  What and where this metadata is stored should be better documented.

3.      For "plugin add", processes plugin variables, if specified, which 
modifies the plugin sources.

4.      Creates/modifies the native platform "project" (e.g. a Visual Studio, 
Eclipse, or Xcode, etc. project) to make the appropriate changes.

If  "plugin add" or "platform add" do more than this, I'd appreciate being 
educated.

My question is, should "add" stop at step #2 and leave the rest to the prepare 
step?

Here's why:

*        We see there is an issue with multiple developers on the same project 
on different platforms.  E.g. when one developer is on Windows working on the 
Windows and Android versions of the project and another is on Mac working on 
the iOS version of the project.  If the shared project wants to add all three 
platforms (which it does...) then Cordova CLI has problems.  Basically because 
not much else than the "create" command works without having native SDKs 
installed.  Would many issues be solved if the "add" command did not require 
the presence of native SDKs, but rather "prepare" did?

*        There seems to be an issue with the co-existence of Cordova CLI and 
IDEs, and in particular with IDEs that want to build in the cloud without the 
requirement of native SDKs.  It would be ideal if multiple users on the same 
project could use different tools - e.g. one use the command line and one use 
the IDE.  The basic "definition" of a Cordova CLI project, i.e. the part that 
needs to be shared, is the list of platforms and plugins and the settings in 
the top level config.xml.  If the basic definition of the project could be 
created/edited from both the CLI and various IDEs, then the rest of the 
development workflow (prepare, build, emulate, etc.) could be implemented in 
different ways, but the project definition could still be shared.

P.S. the "remove" command has similar semantics.

Thanks,
Leo

Reply via email to