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 7912F10F9D for ; Wed, 17 Apr 2013 16:20:23 +0000 (UTC) Received: (qmail 51935 invoked by uid 500); 17 Apr 2013 16:20:23 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 51907 invoked by uid 500); 17 Apr 2013 16:20:23 -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 51896 invoked by uid 99); 17 Apr 2013 16:20:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Apr 2013 16:20:23 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=FRT_ADOBE2,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of braden@google.com designates 209.85.214.43 as permitted sender) Received: from [209.85.214.43] (HELO mail-bk0-f43.google.com) (209.85.214.43) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Apr 2013 16:20:17 +0000 Received: by mail-bk0-f43.google.com with SMTP id jm2so283283bkc.2 for ; Wed, 17 Apr 2013 09:19:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=Pn852untRg2XBPVGuBoZw/L70rqHHwKF1dR5dpka4JE=; b=alNYq2FYxvdPLxaFBF+0U16Qp0dtuMI9UQ68zMJtSTBoTUQkU42Nbmsvvk2mRrqTvW 0dsNUDdHmrSswFfog0Xx0Bp7MgtiJgLfQSdofo0bJE/sx8pveLbGwRT8BJkvsEDv9fa1 hP3uPH7g+dTPPulrQlmZ54ly+DLL642JrwGpbQE23LIYrSD8aERB8dkd4Z7yefxItGmR xPTQNwHuqtlK6elarj6qR2AUIwOnQJJtd0WwHB8IjONC6sfeUPHgMM3abGJBm731J2ZV bYTTUQX10GVZvLWNIIQOz56igSa23FeVNL7RhhB5qznIxpSgXcJ9ujcpWovPozIUiXWD 5zgA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=Pn852untRg2XBPVGuBoZw/L70rqHHwKF1dR5dpka4JE=; b=jp/BS08RoUMwICHCJB+HGvJUXcn6AE5679vH93EziI3brM9fmkUDCgCYk5h/CqqvHB slWojnjme/agYw2bMCb2zMaajcO4lJDT8fh8r6HiMtl8QRCGlyJAj3TPqthnLr1JlCKO Pp3xFvy77iMAa9O+id6O90l6hdufxnt218lyc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :x-gm-message-state; bh=Pn852untRg2XBPVGuBoZw/L70rqHHwKF1dR5dpka4JE=; b=n2z70rnuHhD23cL63VlGPL9N8GNo993I2TZdcrCdjHY9A2aUInLcVWaN3YWWzju1g7 qhLhxrPUUavqUkVmUNVjBvuax8HYVTNZQqFyPfk7wjcLBtpnZFhdA6ZJhyoantuWI8EG w89f3Rk97UzP8sUAr3V5O74gCcouo35zPOxiEYDUcvcfxMymX/wRUK3xKnSIK8reqdhh K2hDK0zCNHV1irMwxDh4c63n7RZx6yJqUcEMjZZM1bseFFeXg9e0eDwfHL43Km6lKa6f Jbaql4XUsvDek8Q2363zQQHVyu4s0Di2oCi5q6uHIZgpeW8A76qfm8F9ISSfqbeTKAa+ K/ZQ== MIME-Version: 1.0 X-Received: by 10.204.201.1 with SMTP id ey1mr2443289bkb.110.1366215596396; Wed, 17 Apr 2013 09:19:56 -0700 (PDT) Sender: braden@google.com Received: by 10.204.41.10 with HTTP; Wed, 17 Apr 2013 09:19:56 -0700 (PDT) In-Reply-To: References: Date: Wed, 17 Apr 2013 12:19:56 -0400 X-Google-Sender-Auth: w5TXBS9M9ZMZQsJATi-Go-G3iuE Message-ID: Subject: Re: plugman + plugin spec final q's From: Braden Shepherdson To: dev@cordova.apache.org Content-Type: multipart/alternative; boundary=485b3970d5ce4f92f004da90db36 X-Gm-Message-State: ALoCoQk9cJS0NwQ7QixoivB48rNK91FGcX4eYuHECquoBO9dxnsUNTxO74FM05Ur89h/wRzqi5C9JdfQQOpxauQ7/RAjeYjxXRxfHWeSnqTwRqCh2gKf8JlSLiLp18U5qKmubfpvoukiv+EzTcb9EJO0FcBu/e1iHeIma1RFgZLX8pMXhY5BiR+aj2YK08HEduZPuprRT5IS X-Virus-Checked: Checked by ClamAV on apache.org --485b3970d5ce4f92f004da90db36 Content-Type: text/plain; charset=ISO-8859-1 Responses inline. On Wed, Apr 17, 2013 at 3:08 AM, Filip Maj wrote: > Hey all, > > I've done a review of the spec and updated it. Check it out at the README > in the plugman repo's future branch [1]. I've added the last bit to it: > and elements. Here is an example: > > > url="http://plugins.cordova.io/com.facebook.plugin/plugin.xml" /> > url="http://plugins.phonegap.com/com.adobe.omniture/plugin.xml" > version="1.0.0" /> > > > I was imagining that the plugin would be specified in two parts, a URL for the universe generally, and a plugin name, for example: And then the flow for fetching a plugin dependency would be: 1. HTTP GET url + '/' + name: http://plugins.cordova.io/com.facebook.pluginand expect to get back the plugin data whose format is described elsewhere. 2. Find the newest version of the plugin that satisfies the local Cordova version and the constraints given in any version="..." attribute. 3. Download it from the URL given in the metadata (Github, etc.) 4. Recursively install it. Specifying the full URL also works, though I would at least leave off the /plugin.xml, since it's not really fetching that file. > > Dependencies are specified by providing a url and optionally some way of > describing what version of the plugin you want. The only constraint > imposed on plugin dependencies right now is only a single version of a > plugin can be installed in an app at the same time. I think this is good > enough, but wanted to let everyone know and give people time to comment. > > Also did a bunch of updates/tweaks to the plugin.xml spec, made explicit > some failures (if there are file conflicts, error noisily, that kind of > stuff). I have a PluginTooling [2] wiki article up where I am doing my > best to summarize these various reqs/use cases floating around the list, > IRC, hangout discussions regarding plugin tooling development. If you have > anything to add there please do so! > > Next, I have a few questions came up when I was going through the spec: > > - does and (specified in the JS symbol mapping > section of the plugin spec) create the objects on window if they do not > exist? I suppose this is more of a cordova.js question than a spec > question, but that behavior should be explicit in the spec. > Yes, they do. > - native code elements have a `target` attribute where you > specify where within the native project the native code should be copied > into. Is this necessary? For Java files, we could look at the package > declaration at the top to determine where to put it. If I'm not mistaken, > on iOS it doesn't matter where within the directory structure of a > cordova-ios project you put native code in. What is the situation for the > Windows (Phone) platforms, and for cordova-osx? > - We really don't want to be trying to parse package lines out of the tops of Java files. It's not the end of the world to specify this. - On iOS it doesn't matter, but it does. As discussed elsewhere, the paths on the filesystem don't matter, but any #includes using relative paths depend on the "paths" given in the project plist file. Currently both are flat in Plugins/, which risks collisions and breaks the relative include paths. I think we should be putting each plugin's files into Plugins/com.foo.myplugin/some/path/File.h and maintaining the relative paths in the plist. > - the spec currently only accounts for appending XML to specific parts of > XML-based configuration documents. Does anyone foresee an instance where > some manner of native or cordova-specific config munging OTHER than > appending would be necessary? Removal/modification of existing elements? > Android permissions is the obvious standout. We might want to handle them with a custom tag, since they have different semantics from adding/removing and we want to be careful. On the other hand, maybe on every --prepare we empty that tag and let the currently-installed plugins add their permissions, with de-duping? Then we wouldn't have to worry about removing them. > - iOS specific: Do we need separate elements for , > and ? Can we consolidate into one? The > current draft of the spec mentions that this may be an implementation > detail. > may need to be separate, but we could probably get away with combining and . > > Finally, I have two questions/concerns about the command line interface > for plugman. > > 1. The --fetch operation seems to need a redundant --plugin flag, e.g. > plugman --fetch --plugin . Shouldn't we just axe --plugin in this > case? > It fits with the other commands, most of which expect a --plugin. I'm okay with leaving it. > 2. The API readme mentions --install and --uninstall flags but the docs > only show --fetch and --remove. Can we clarify this? > > Really? I thought they were all specified. The docs where, on master? --fetch and --remove were added in the future branch and have not been merged back. Thanks for everyone's input. I feel we're getting closer to shipping this > thing! > > [1] > https://git-wip-us.apache.org/repos/asf?p=cordova-plugman.git;a=shortlog;h= > refs/heads/future > [2] http://wiki.apache.org/cordova/PluginTooling > > --485b3970d5ce4f92f004da90db36--