This seems reasonable. So to recap:

If the <config-file target="config.xml"> element exists then it is implied
that this is the cordova project's config.xml.
If this <config-file target=config.xml"> element exists at the top-level
(not under any <platform name="platform"> element) then it is implied that
the configuration changes nested as children in said config-file element
applies for all supported platforms.

On 4/24/13 11:15 AM, "Anis KADRI" <[email protected]> wrote:

>Well it's simple:
>
>on iOS the defined target is config.xml but it actually is:
>PROJECT_NAME/config.xml
>
>We can't know your PROJECT_NAME ahead of time and therefore can't define
>it
>in plugin.xml. plugman currently globs directories to find that config.xml
>file. config.xml paths don't change on the other platforms
>(res/xml/config.xml android and www/config.xml on bb). By explicit I mean
>specifying what config file we need to modify and we could make a special
>case for config.xml because we're already doing it for iOS.
>
>-a
>
>
>On Wed, Apr 24, 2013 at 10:40 AM, Michal Mocny <[email protected]>
>wrote:
>
>> Okay I think I've done a reverse here.  The suggested global
>><config-file
>> target="config.xml"> makes it look like target is a path, but it isn't.
>> If
>> we can automatically automatically find the right config.xml, why do we
>> need to be explicit about it path inside the platform specific
>>settings?  I
>> suggest making this consistant.
>>
>> Perhaps something like <config-file name="config.xml" path="HERE"> and
>>path
>> is either optional, or we support a special attribute
>>(auto-path="true")?
>>  Then, the same pattern can be used inside and outside of platform
>> settings.
>>
>> -Michal
>>
>>
>> On Wed, Apr 24, 2013 at 1:19 PM, Anis KADRI <[email protected]>
>>wrote:
>>
>> > The config-file tag was not meant to be used by config.xml only. There
>> > could be other platform-specific files to edit as well. Those file
>>don't
>> > have to be XML files either.
>> >
>> > That is why <access> elements are currently top level. <access>
>>elements
>> > should be the same on all platforms, yah ? Why would you discriminate
>> one ?
>> >
>> > I don't mind having a top-level config-file but I would specify some
>>sort
>> > of target. It could just be target="config.xml" and then our
>> configuration
>> > code would determine where that file is depending on the platform. If
>> only
>> > for the sake of clarity. We could just assume that whatever top
>> > level  config-file with no target specified has to be config.xml but
>> > explicit is better than implicit in my opinion.
>> >
>> >
>> > On Wed, Apr 24, 2013 at 9:29 AM, Andrew Grieve <[email protected]>
>> > wrote:
>> >
>> > > Yeah, for things like whitelist and preferences this seems necessary
>> :).
>> > > Ship it!
>> > >
>> > >
>> > > On Wed, Apr 24, 2013 at 12:27 PM, Michal Mocny <[email protected]>
>> > > wrote:
>> > >
>> > > > I think "missing target" bugs would be masked if no-target
>>applied to
>> > > all.
>> > > >  Platform specific changes applied to other platforms may usually
>>be
>> > > > harmlessly ignored and go unnoticed, but sometimes cause hard.
>> > > >
>> > > > Therefore, I would prefer a target="all" or target="common".
>> > > >
>> > > > I think its a good idea, though.
>> > > >
>> > > > -Michal
>> > > >
>> > > >
>> > > > On Wed, Apr 24, 2013 at 12:17 PM, Filip Maj <[email protected]> wrote:
>> > > >
>> > > > > Here's another thought about the config-file changes.
>> > > > >
>> > > > > I noticed some of the plugins out there have <access> tags at
>>the
>> top
>> > > > > level in a plugin's plugin.xml. At first I was like wtf that
>>should
>> > > exist
>> > > > > under a <config-file> element, pointing to the config.xml for
>>each
>> > > > > platform. I realize now the problem with that, though, is that
>> you'll
>> > > > need
>> > > > > one of these for each platform, because the target location of
>>the
>> > > > > config.xml is in different spots, I.e.:
>> > > > >
>> > > > > - Android: <config-file target="res/xml/config.xml"><access
>> > > > > blah></config-file>
>> > > > > - iOS: <config-file target="www/config.xml"><access
>> > blah></config-file>
>> > > > >
>> > > > > - BlackBerry: <config-file target="www/config.xml"><access
>> > > > > blah></config-file>
>> > > > >
>> > > > >
>> > > > > Should we provide some way of modifying the config.xml,
>>agnostic of
>> > the
>> > > > > platform, just for these cases where certain config.xml changes
>> apply
>> > > to
>> > > > > all platforms? If so, how? A top-level <config-file> element
>> (perhaps
>> > > > with
>> > > > > no target attrib)?
>> > > > >
>> > > > > On 4/23/13 7:28 PM, "Anis KADRI" <[email protected]> wrote:
>> > > > >
>> > > > > >It doesn't. All configuration edits should happen in prepare
>> > > > > >(adding/removing xml fragments etc..).
>> > > > > >
>> > > > > >
>> > > > > >On Tue, Apr 23, 2013 at 7:05 PM, Michal Mocny <
>> [email protected]>
>> > > > > wrote:
>> > > > > >
>> > > > > >> +1 move to prepare, however, why does this only apply to
>>access
>> > > tags?
>> > > > > >>
>> > > > > >>
>> > > > > >> On Tue, Apr 23, 2013 at 7:16 PM, Filip Maj <[email protected]>
>> wrote:
>> > > > > >>
>> > > > > >> > that¹s what I was thinking too
>> > > > > >> >
>> > > > > >> > On 4/23/13 4:13 PM, "Anis KADRI" <[email protected]>
>> wrote:
>> > > > > >> >
>> > > > > >> > >On Tue, Apr 23, 2013 at 4:03 PM, Filip Maj <[email protected]>
>> > > wrote:
>> > > > > >> > >
>> > > > > >> > >> One thing that I intentionally removed from
>>platform-level
>> > > > > >>`install`
>> > > > > >> was
>> > > > > >> > >> adding <access> tags to the config. I figure this should
>> > > probably
>> > > > > >>go
>> > > > > >> > >>into
>> > > > > >> > >> `prepare`. Thoughts?
>> > > > > >> > >>
>> > > > > >> > >
>> > > > > >> > >In my opinion, this should be part of a configuration
>>handler
>> > > that
>> > > > > >> should
>> > > > > >> > >be called by 'prepare'.
>> > > > > >> >
>> > > > > >> >
>> > > > > >>
>> > > > >
>> > > > >
>> > > >
>> > >
>> >
>>

Reply via email to