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? >