Kay ill update the spec On 4/17/13 11:01 AM, "Braden Shepherdson" <bra...@chromium.org> wrote:
>I think there will be a common repo, where the Cordova core plugins and >some others live. See the spec for the remotes.js file; I think it should >search for plugins with the given name in each of those universes. >Specifying a url in the <dependency> would then only be necessary for >other >universes. > >Braden > > >On Wed, Apr 17, 2013 at 1:56 PM, Filip Maj <f...@adobe.com> wrote: > >> But then we'd need to be able to discover the different universes.. >>Unless >> we all agree on a "default", don't think this is optional.. >> >> On 4/17/13 10:53 AM, "Jeffrey Heifetz" <jheif...@blackberry.com> wrote: >> >> >Coming back to Braden's suggestion of specifying a url and id for >>plugin >> >dependency, I think this is the correct route, and would go further to >> >suggest the url is optional. I do not believe we should inherently tie >> >plugin dependency to the exact source. Thats why we have a discovery >> >system and multiple places to get a plugin from. >> > >> >On 13-04-17 1:37 PM, "Filip Maj" <f...@adobe.com> wrote: >> > >> >>Braden and I had a little chat on IRC about install/uninstall and >>calling >> >>prepare. We've agreed that having prepare as a separate command is >>useful >> >>(you tweak some plugin JS files, add more JS files, and want that >> >>reflected in your app), but also calling prepare automatically after >>an >> >>install and uninstall makes sense too (otherwise people using plugman >> >>will >> >>have to call prepare manually after calling install or uninstall). >> >> >> >>FTR, --prepare composes the cordova_plugins.json object that is read >>by >> >>cordova.js and handles injecting plugin JS into the app. It will also >>be >> >>responsible for handling permissions that plugins require and setting >>up >> >>platform manifests appropriately based on all installed plugins. >> >> >> >>On 4/17/13 10:25 AM, "Brian LeRoux" <b...@brian.io> wrote: >> >> >> >>>Braden: you thinking that the config is canonical and then prepare >> >>>quietly >> >>>does the right thing based on that? >> >>> >> >>>(Agree less steps is exactly what we're going for here.) >> >>> >> >>> >> >>>On Wed, Apr 17, 2013 at 10:16 AM, Braden Shepherdson >> >>><bra...@chromium.org>wrote: >> >>> >> >>>> Re: --install calling --prepare: no. It could, though, I suppose. >> >>>> >> >>>> Why not have --prepare handle the plugins rather than >>install/remove. >> >>>>We're >> >>>> trying to make less, not more, happen at install time. Someday I >>hope >> >>>> --install ceases to exist. >> >>>> >> >>>> >> >>>> On Wed, Apr 17, 2013 at 12:59 PM, Filip Maj <f...@adobe.com> wrote: >> >>>> >> >>>> > Max, yeah, at the top of the plugman readme (in both future and >> >>>>master I >> >>>> > believe), the usage docs don't specify --install or --uninstall >>as >> >>>>an >> >>>> > available command, but those commands are referenced right after >>the >> >>>> usage >> >>>> > section. I'd be in favor of using --fetch for the RETRIEVAL of >> >>>>plugins, >> >>>> > --remove for the removal of plugins from the local plugins cache, >> >>>>and >> >>>> > --install and --uninstall for the relevant actions. >> >>>> > >> >>>> > Max, re (2): correct. >> >>>> > >> >>>> > To Braden's points: >> >>>> > >> >>>> > - I'm fine with url + name attributes for <dependency> elements. >> >>>>Will >> >>>> > update the spec/README shortly. >> >>>> > - Re <clobbers> I will add a note about that to the spec as >>well. >> >>>> > - Re parsing package Ids, fair enough. >> >>>> > - About "namespacing" iOS source files, this sounds like a good >> >>>>idea. >> >>>> > This is something that plugman can handle as well, yes? That is, >> >>>> > management of the plist and pointing to the right location. >> >>>> > - Re config munging and permissions. I vote in favor of removing >> >>>>all >> >>>> > permissions and re-adding all of them with every change in >>plugins >> >>>>(add >> >>>> or >> >>>> > remove), with a de-duping pass. Brute force approach but it'll >>work >> >>>>and >> >>>> is >> >>>> > simple. However spec wise we need a separate element for this ya? >> >>>> > <permission> or something? Then based on what <platform> tag >>houses >> >>>>a >> >>>> > <permissions> tag we can deduce where and how to set up the >> >>>>appropriate >> >>>> > native permissions. >> >>>> > - Re the different <*-file> elements. I believe behavior in how >> >>>>header >> >>>> > and source files are handled on iOS are identical, so >>consolidating >> >>>>those >> >>>> > is an easy simplification. I will update the spec with that. I'll >> >>>>leave >> >>>> > resource-file in there for now. >> >>>> > >> >>>> > One more question that came up: does a plugman --install call >> >>>>implicitly >> >>>> > call plugman --prepare ? >> >>>> > >> >>>> > On 4/17/13 9:31 AM, "Max Woghiren" <m...@chromium.org> wrote: >> >>>> > >> >>>> > >(1) On line 25 of the cordova-plugman readme, is the command >> >>>>missing >> >>>> (ie. >> >>>> > >--add or --install or whatever)? >> >>>> > > >> >>>> > >(2) Though two versions of a plugin are not allowed, I just >>want to >> >>>>make >> >>>> > >sure: there will be some kind of detection that it's okay if the >> >>>> > >*same*version of a plugin has already been installed by a >>previous >> >>>> > >dependency, >> >>>> > >right? (For example, plugins A and B both depend on C v1.0, so >> >>>>plugman >> >>>> > >will determine that this is okay, whereas if A depends on C v1.0 >> >>>>and >> >>>>B >> >>>> > >depends on C v1.1, there'll be an error). >> >>>> > > >> >>>> > > >> >>>> > >On Wed, Apr 17, 2013 at 3:08 AM, Filip Maj <f...@adobe.com> >>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: >> >>>> > >> <dependencies> and <dependency> elements. Here is an example: >> >>>> > >> >> >>>> > >> <dependencies> >> >>>> > >> <dependency >> >>>> > >> url="http://plugins.cordova.io/com.facebook.plugin/plugin.xml" >> /> >> >>>> > >> <dependency >> >>>> > >> >>url="http://plugins.phonegap.com/com.adobe.omniture/plugin.xml" >> >>>> > >> version="1.0.0" /> >> >>>> > >> </dependencies> >> >>>> > >> >> >>>> > >> >> >>>> > >> 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 <clobbers> and <merges> (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. >> >>>> > >> - native code <source-file> 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? >> >>>> > >> - 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? >> >>>> > >> - iOS specific: Do we need separate elements for >><source-file>, >> >>>> > >> <resource-file> and <header-file>? Can we consolidate into >>one? >> >>>>The >> >>>> > >> current draft of the spec mentions that this may be an >> >>>>implementation >> >>>> > >> detail. >> >>>> > >> >> >>>> > >> 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 <url>. Shouldn't we just axe >>--plugin in >> >>>>this >> >>>> > >> case? >> >>>> > >> 2. The API readme mentions --install and --uninstall flags but >> >>>>the >> >>>> docs >> >>>> > >> only show --fetch and --remove. Can we clarify this? >> >>>> > >> >> >>>> > >> 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=shortlo >> >>>>g >> >>>> > ; >> >>>> > >>h= >> >>>> > >> refs/heads/future >> >>>> > >> [2] http://wiki.apache.org/cordova/PluginTooling >> >>>> > >> >> >>>> > >> >> >>>> > >> >>>> > >> >>>> >> >> >> > >> > >> >--------------------------------------------------------------------- >> >This transmission (including any attachments) may contain confidential >> >information, privileged material (including material protected by the >> >solicitor-client or other applicable privileges), or constitute >> >non-public information. Any use of this information by anyone other >>than >> >the intended recipient is prohibited. If you have received this >> >transmission in error, please immediately reply to the sender and >>delete >> >this information from your system. Use, dissemination, distribution, or >> >reproduction of this transmission by unintended recipients is not >> >authorized and may be unlawful. >> >>