Good call, sound rule of thumb

On 4/17/13 12:03 PM, "Jesse" <purplecabb...@gmail.com> wrote:

>RE: the permission element
>Looks good for wp7 + wp8
>I assume if some platform requires extra data in the permission tag it can
>have it, the same way that the blackberry version has the system
>attribute.
>
>@purplecabbage
>risingj.com
>
>
>On Wed, Apr 17, 2013 at 11:48 AM, Jeffrey Heifetz
><jheif...@blackberry.com>wrote:
>
>> Makes sense to me.
>>
>> Sent from my BlackBerry 10 smartphone on the Rogers network.
>> From: Filip Maj
>> Sent: Wednesday, April 17, 2013 2:43 PM
>> To: dev@cordova.apache.org
>> Reply To: dev@cordova.apache.org
>> Subject: Re: plugman + plugin spec final q's
>>
>>
>> K one more update: <permission> element that will be a child of
>><platform>
>> elements.
>>
>> Examples:
>> <platform name="android">
>> <permission name="android.permission.INTERNET" />
>> </platform>
>> <platform name="blackberry">
>> <permission name="_sys_use_consumer_push" system="true" />
>> </platform>
>> <platform name="wp7">
>> <permission name="ID_CAP_CONTACTS" />
>> </platform>
>>
>>
>> `name` attribute is mandatory, mapping to native strings representing
>> specific features/permissions.
>>
>> `system` attribute is optional and false by default. Only used by
>> BlackBerry for certain system-level permissions.
>>
>> I think this satisfies our use cases.
>>
>> Thoughts/comments welcome.
>>
>>
>>
>> On 4/17/13 11:07 AM, "Jeffrey Heifetz" <jheif...@blackberry.com> wrote:
>>
>> >I was thinking exactly along the same lines as Braden. Whatever
>>universe
>> >the cordova core plugins live in will likely be default, with the wild
>> >west following it. SO long as plugman is explicit about where it is
>> >fetching from, a dev shouldn't have to find the URL and hope it never
>> >changes.
>> >
>> >On 13-04-17 2:01 PM, "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.
>> >>>
>> >>>
>> >
>> >
>> >---------------------------------------------------------------------
>> >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.
>>
>>
>> ---------------------------------------------------------------------
>> 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.
>>

Reply via email to