You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Jonathan Bond-Caron (JIRA)" <ji...@apache.org> on 2013/11/03 17:32:19 UTC

[jira] [Updated] (CB-4714) Allow removing a plugin that is a dependency (using -f or -force flag)

     [ https://issues.apache.org/jira/browse/CB-4714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Bond-Caron updated CB-4714:
------------------------------------

    Attachment: 0002-CB-4714-Pass-options-to-plugin-uninstall.patch
                0001-Use-plugman-emitter-of-events.patch

Here are patches for cordova-cli.

Pull request for cordova-plugman here:
https://github.com/apache/cordova-plugman/pull/31/files

You'll notice I changed:
-    require('../plugman').emit('log', 'Deleting plugin ' + id);
 +    events.emit('log', 'Deleting ' + quoteId);

It seem better if cli & plugman both used the same code pattern for logging events. Might be a better way to do this.


> Allow removing a plugin that is a dependency (using -f or -force flag)
> ----------------------------------------------------------------------
>
>                 Key: CB-4714
>                 URL: https://issues.apache.org/jira/browse/CB-4714
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: CLI, Plugman
>    Affects Versions: 3.0.0
>         Environment: Windows 8
>            Reporter: Jonathan Bond-Caron
>            Assignee: Braden Shepherdson
>            Priority: Minor
>              Labels: patch
>             Fix For: 3.2.0
>
>         Attachments: 0001-Use-plugman-emitter-of-events.patch, 0002-CB-4714-Pass-options-to-plugin-uninstall.patch
>
>
> Some context:
> I wanted to start using the mobile spec app for cordova. The problem is I didn't know which dependencies were required for the application.
> So I created a plugin which just lists some dependencies: 
> https://github.com/jbondc/cordova-plugin-mobile-spec
> > cordova create test
> > cordova platform add android
> >cordova plugin list
> No plugins added. Use `cordova plugin add <plugin>`.
> >cordova plugin add https://github.com/jbondc/cordova-plugin-mobile-spec
> >cordova plugin list
> [ 'org.apache.cordova.core.battery-status',
>   'org.apache.cordova.core.camera',
>   'org.apache.cordova.core.device',
>   'org.apache.cordova.core.file',
>   'org.apache.cordova.core.media-capture',
>   'org.apache.cordova.core.mobile-spec' ]
> To test a modifications/patches to a specific plugin (media-capture), I wanted to do:
> >cordova plugin rm org.apache.cordova.core.media-capture
> [Error: Another top-level plugin (org.apache.cordova.core.mobile-spec) relies on plugin org.apache.cordova.core.media-capture, therefore aborting uninstallation
> .]
> A lot of dependency management systems (freebsd ports, debian packages) allow you to forcefully remove a dependency.
> That's what I'm proposing:
> >cordova plugin rm org.apache.cordova.core.media-capture -f
> >cordova plugin list
> [ 'org.apache.cordova.core.battery-status',
>   'org.apache.cordova.core.camera',
>   'org.apache.cordova.core.device',
>   'org.apache.cordova.core.mobile-spec' ]
> >cordova plugin add F:\Jonathan\GitHub\Cordova\cordova-plugin-media-capture
> >cordova plugin list
> [ 'org.apache.cordova.core.battery-status',
>   'org.apache.cordova.core.camera',
>   'org.apache.cordova.core.device',
>   'org.apache.cordova.core.media-capture',
>   'org.apache.cordova.core.mobile-spec' ]
> It makes it easier to add/remove a plugin even if some dependencies are not met.
>  



--
This message was sent by Atlassian JIRA
(v6.1#6144)