One possible solution: Have JS-only plugins add a <plugin> tag with a name but no value.
Yep - if a feature is important enough people will be upset if it's broken, we should add tests for it. On Tue, Mar 12, 2013 at 7:50 PM, Anis KADRI <[email protected]> wrote: > Braden, > > Can you write some tests for this specific case as well ? > > Thanks! > > -a > > > On Tue, Mar 12, 2013 at 4:29 PM, Anis KADRI <[email protected]> wrote: > > > Thanks. I merged your pull request and pushed it back to the apache repo. > > > > > > On Tue, Mar 12, 2013 at 3:05 PM, Brian LeRoux <[email protected]> wrote: > > > >> Ok cool, ya no blame-game---just wanted to understand the problem so I > >> can internalize the 'why' of your solution! > >> > >> On Tue, Mar 12, 2013 at 2:57 PM, Braden Shepherdson < > [email protected]> > >> wrote: > >> > I've sent a pull request to plugman earlier today that fixes one case > of > >> > this, among other things. > >> > > >> > Here's an example of it in master: > >> > > >> > https://github.com/imhotep/plugman/blob/master/platforms/android.js#L202 > >> > This function looks up a <config-file> tag in the android <platform>, > >> but > >> > that might not exist. iOS does something similar. > >> > > >> > There was a similar fix to cordova-cli a couple of months ago, where > it > >> was > >> > choking on failing to find any <source-file>s in the android > <platform>, > >> > back when I first wrote the refresh plugin. > >> > > >> > I'm not trying to blame developers for introducing problems. My goal > >> here > >> > is to get people to remember, when they're working on these tools, > that > >> > there are plugins that lack either native code or Javascript code, and > >> that > >> > don't add <plugin> tags to config.xml. > >> > > >> > Braden > >> > > >> > > >> > On Tue, Mar 12, 2013 at 5:36 PM, Anis KADRI <[email protected]> > >> wrote: > >> > > >> >> Dear Braden, > >> >> > >> >> Indeed, plugman assumes that there are javascript files, config files > >> and > >> >> uses a tag in the config file to check whether a plugin is installed > or > >> >> not. This is obviously not an ideal solution for javascript only > >> plugins > >> >> that don't have a plugin tag in the config file. You are right. We > >> need a > >> >> better solution to detect the status of javascript/native only > >> plugins. I > >> >> believe we'll solve this problem when we solve the problem of plugin > >> >> dependencies. > >> >> > >> >> However, as much as I like critiques, I like them better when they're > >> >> constructive and I am not sure who you're referring to when you're > >> saying > >> >> "stop writing code" or "people making this implicit assumption". If > >> >> something doesn't work the way you think it should, I suggest you > just > >> open > >> >> an issue and describe your problems/frustrations. If you have > solution > >> to > >> >> the problem or a pull request that's even better. > >> >> > >> >> Cheers, > >> >> > >> >> -a > >> >> > >> >> > >> >> On Tue, Mar 12, 2013 at 12:56 PM, Braden Shepherdson < > >> [email protected] > >> >> >wrote: > >> >> > >> >> > Well, people keep making this implicit assumption and I have to > keep > >> >> fixing > >> >> > it to keep my several JS-only plugins working. > >> >> > > >> >> > The problem with plugman is a higher-level problem. If we want to > >> keep > >> >> > plugman as a separate tool to support building Cordova apps > manually, > >> >> then > >> >> > we need a solution to detecting what plugins are installed. I'm not > >> sure > >> >> > what that approach should be. > >> >> > > >> >> > > >> >> > On Tue, Mar 12, 2013 at 3:36 PM, Filip Maj <[email protected]> wrote: > >> >> > > >> >> > > So should we file a plugman issue or is this a bigger problem > >> around > >> >> what > >> >> > > committers are doing? I'm confused, it sounds like someone did > >> >> something > >> >> > > wrong? > >> >> > > > >> >> > > On 3/12/13 2:33 PM, "Braden Shepherdson" <[email protected]> > >> wrote: > >> >> > > > >> >> > > >This is a problem for adding and removing plugins in plugman. > >> >> > cordova-cli > >> >> > > >can use the existence of directories in plugins/ to know what's > >> >> > installed, > >> >> > > >but plugman can't do that. It currently looks for a <plugin> tag > >> or > >> >> > > ><config-file> tag, and assumes they exist, which causes errors. > >> So I > >> >> > check > >> >> > > >whether the tag is defined before trying to read attributes from > >> it. > >> >> > > > > >> >> > > >That avoids the error but doesn't solve the problem of knowing > >> what is > >> >> > and > >> >> > > >isn't installed. Plugman just assumes JS-only plugins are never > >> >> > installed, > >> >> > > >so they can be double installed, and can't be removed. > >> >> > > > > >> >> > > > > >> >> > > >On Tue, Mar 12, 2013 at 3:24 PM, Brian LeRoux <[email protected]> > wrote: > >> >> > > > > >> >> > > >> Hey Braden, is there a specific place this happened? > >> >> > > >> > >> >> > > >> On Tue, Mar 12, 2013 at 8:45 AM, Braden Shepherdson > >> >> > > >><[email protected]> > >> >> > > >> wrote: > >> >> > > >> > There are JS-only plugins with no native side. Stop writing > >> code > >> >> > that > >> >> > > >> > expects there will always be a <config-file> or <plugin> > >> directive > >> >> > in > >> >> > > >> > plugins.xml > >> >> > > >> > > >> >> > > >> > There are native-only plugins with no Javascript, too. > >> >> > > >> > > >> >> > > >> > Braden > >> >> > > >> > >> >> > > > >> >> > > > >> >> > > >> >> > >> > > > > >
