Return-Path: X-Original-To: apmail-cordova-dev-archive@www.apache.org Delivered-To: apmail-cordova-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B4393FBB2 for ; Fri, 5 Jul 2013 17:06:03 +0000 (UTC) Received: (qmail 27304 invoked by uid 500); 5 Jul 2013 17:06:03 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 27250 invoked by uid 500); 5 Jul 2013 17:06:03 -0000 Mailing-List: contact dev-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list dev@cordova.apache.org Received: (qmail 27242 invoked by uid 99); 5 Jul 2013 17:06:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jul 2013 17:06:03 +0000 X-ASF-Spam-Status: No, hits=-1.3 required=5.0 tests=FRT_ADOBE2,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of fil@adobe.com designates 64.18.1.183 as permitted sender) Received: from [64.18.1.183] (HELO exprod6og102.obsmtp.com) (64.18.1.183) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jul 2013 17:05:56 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob102.postini.com ([64.18.5.12]) with SMTP ID DSNKUdb8347MXh2F/Ihk5iJip7yNPAvD6tX7@postini.com; Fri, 05 Jul 2013 10:05:36 PDT Received: from inner-relay-2.corp.adobe.com (mail-321.pac.adobe.com [153.32.1.52]) by outbound-smtp-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id r65H5XAI013354 for ; Fri, 5 Jul 2013 10:05:34 -0700 (PDT) Received: from nacas02.corp.adobe.com (nacas02.corp.adobe.com [10.8.189.100]) by inner-relay-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id r65H5Xw7016993 for ; Fri, 5 Jul 2013 10:05:33 -0700 (PDT) Received: from nambxv01a.corp.adobe.com ([10.8.189.95]) by nacas02.corp.adobe.com ([10.8.189.100]) with mapi; Fri, 5 Jul 2013 10:05:33 -0700 From: Filip Maj To: "dev@cordova.apache.org" Date: Fri, 5 Jul 2013 10:05:29 -0700 Subject: Re: Uninstallation of dependency-only plugins Thread-Topic: Uninstallation of dependency-only plugins Thread-Index: Ac55odwv66QHN2m9QoGM5nrFehz5UQ== Message-ID: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.3.5.130515 acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org Added comments to the issue thread. The tests no longer pass + we'll need new tests to cover your changes. On 7/4/13 8:21 PM, "Ian Clelland" wrote: >Thanks, Fil, > >Created CB-4077 to track this. I'll start working on separating those >functions. > >Ian > >On Thu, Jul 4, 2013 at 7:08 PM, Filip Maj wrote: > >> File an issue over at issues.cordova.io, tag plugman, and we can go from >> there >> >> On 7/4/13 12:59 PM, "Ian Clelland" wrote: >> >> >This is the first time I've tried to use the CLI tools with the new 3.0 >> >project structure, and I've discovered that I can't uninstall a plugin >> >that >> >only has dependencies (no source files, either JS or native) >> > >> >Specifically, I've built a mobilespec app, installing >> >the mobile-spec-dependencies plugin, which does nothing but depend on >> >every >> >Cordova core plugin. I want to remove it, so that I can remove and >> >reinstall one of the dependencies, but the CLI tools will not remove >>it. >> > >> >Digging through cordova-cli, it looks like "cordova plugin rm" >>attempts to >> >invoke plugman.uninstall once per platform, but >>mobile-spec-dependencies >> >doesn't declare any platforms. >> > >> >plugman.uninstall seems to do two things, which I think should be >> >separated: It removes the plugin from a specific platform, and it >>removes >> >the plugin from the project itself. >> > >> >In the case of a dependency-only plugin, we only need to do the second >> >task >> >(which currently doesn't get done). For a regular plugin which is >> >installed >> >in multiple platforms, this also fails, since removing the plugin for >>the >> >first platform deletes the plugin source directory, and then removal >>for >> >subsequent platforms fails with the error message "[Error: Plugin >>> >id> not found. Already uninstalled?]" >> > >> >Can anyone explain the technical reasons behind this, or should I work >>on >> >separating those functions? >> >>