The overhead of a third repo scares me.  I'm fine with merging into a
single repo, but I'll throw a third option into the mix:

- Leave the plugman repo, and leave the plugman binary in there, but
refactor to make plugman depend on cordova-cli, and forward all
functionality to cli implementations.

This leaves the APIs entirely untouched and is just an internal refactor.
 It would invert the "depends" direction, but I don't think that matters.

-Michal


On Thu, Apr 10, 2014 at 2:53 PM, Mark Koudritsky <kam...@google.com> wrote:

> I often find myself making changes that require commits to both plugman and
> cli, it’s not always clear which repo new code should live in and sharing
> utility functions between the two projects is not trivial.
>
> The idea of “cordova-lib” was mentioned several times on this mailing list.
> The lib would contain most of the code from both plugman and cli while the
> end tools will be thin wrappers around the lib.
>
> I wanted to probe how people working on CLI feel about such rearrangement.
>
> But if we are already in this discussion, now that the heavy platforms
> files are distributed separately from cordova-cli (repos like cordova-ios
> etc), is there anything that prevents us from merging plugman and cli into
> a single npm package with 2 executables?
>
>
> Examples of code that should be shared include:
> - Common logging and error handling logic (e.g. CordovaError exception)
> - Fetching logic (for plugins and platforms)
> - Platform-specific logic (e.g. where the config.xml file lives within each
> project)
> - Generic utilities like xml-helpers.js (currently copied but slightly
> diverged in the 2 repos)
>
> The first option that comes to mind is to create another repo and another
> npm package for cordova-lib, but this creates significant overhead:
>  - Version release would get more difficult (see the failed release vote
> thread <https://www.mail-archive.com/dev@cordova.apache.org/msg15419.html
> >from
> last Friday)
>  - In many cases new functionality in plugman or CLI would require changes
> in 2 or even 3 repos. This is a significant additional barrier for new
> contributors that don’t have commit rights - coordinating two
> interdependent pull request is quite a hassle.
>  - Strictly speaking, cordova-lib major version number will have to be
> bumped every time we change some function signatures, which will happen
> rather frequently in this case (this point also partially holds true if the
> lib will be part of the plugman repo and npm package).
>
> Based on the points above a single repo and npm package containing both
> plugman and cli seems to provide the most benefit.
>
> What do you think?
>

Reply via email to