I know it's only a detail, but https://github.com/phonegap-build/PushPlugin, the example used as a plugin that would "break", is a deprecated and old plugin.
2016-05-31 13:46 GMT-03:00 Nikhil Khandelwal <nikhi...@microsoft.com>: > It sounds like you are working on a plan to remap the older directory > structure to a new one. Will look forward to updates on the design and code > for that. In that case our expectation is that most plugins will not break > - is that correct? It will be great to do some compat testing with say the > top plugins. > > I understand it's hard to guarantee complete compat and we need to move > forward but breaking the entire plugin ecosystem will cause a lot of issues > for existing Cordova developers. > > -Nikhil > > -----Original Message----- > From: Joe Bowser [mailto:bows...@gmail.com] > Sent: Tuesday, May 31, 2016 8:22 AM > To: dev <dev@cordova.apache.org> > Subject: Re: Proposal: Change Android Project Directory Structure to > Android Studio style > > On Fri, May 27, 2016 at 12:22 PM, Nikhil Khandelwal < > nikhi...@microsoft.com> > wrote: > > > As I see it, a change to the directory structure will break almost > > every Android plugin currently out there. > > > > > I know. However, I don't think that's a good enough reason to not do this. > > > > There are atleast 20K references [1] on github where people use depend > > on the current directory structure for android: "res/xml/config.xml". > > > > Taking the example of a config.xml manipulation that will now stop > working: > > https://github.com/phonegap-build/PushPlugin/blob/master/plugin.xml#L3 > > 4 > > > > Can you explain how source-file and other tags that reference path > > will continue to work? Looking at your current branch [2] there are > > not changes to path old path references in plugin.xml to new path. > > > > Actually, here's the thing. They won't. We're going to have to fix our > tooling so that they remap. After working on the exploratory branch, all > our plugin installation code is stuck in plugman and really should be > handled by the platforms so that we can actually handle changes to Android > Studio and Xcode. > > What I'm now proposing is that by default when we specify a source file, > or a config file without specifying a target, it by default goes to a > location specified by the project. That means that when you are using an > Android Studio project, it knows that we keep the config.xml in a different > location than the old project. That way, if Google decides that they don't > like the current Android Studio project structure and they decide to change > things again, we're not stuck holding the bag for years and being stuck > having to do all this work so that we can actually allow native developers > to be able to use Cordova, since it's almost completely unusable to these > developers currently. > > > > > > If the path of the file changes it will break lots of plugins and if > > the plugins change to work with the new directory structure they will > > not work with older versions of Cordova. Let me know if I missed some > > part of this change which ensures most plugins for Android do not stop > working. > > > > [1] > > https://github.com/search?q=%22res%2Fxml%2Fconfig.xml%22+filename%3Apl > > ugin.xml&ref=searchresults&type=Code&utf8=%E2%9C%93 > > [2] > > https://github.com/apache/cordova-android/compare/master...infil00p:st > > udio_project_structure > > > > > > -----Original Message----- > > From: Joe Bowser [mailto:bows...@gmail.com] > > Sent: Tuesday, May 17, 2016 8:14 PM > > To: dev <dev@cordova.apache.org> > > Subject: Re: Proposal: Change Android Project Directory Structure to > > Android Studio style > > > > On Tue, May 17, 2016 at 5:35 PM, Richard Knoll <rikn...@microsoft.com> > > wrote: > > > > > Does that mean the plan is to provide a mapping from old file > > > locations to new ones? For example, if I have this in my plugin.xml: > > > > > > <config-file target="res/values/strings.xml" parent="" /> > > > > > > Will the new cordova-android automatically convert the target value > > > to the new location of "app/src/main/res/values/strings.xml"? > > > > > > > > > I'm pretty sure that config-file targets like that won't work > > properly, but I think that source, resource and assets should. I > > would have added that as a resource file, since it's strings.xml. > > > > > > > > > > Thanks, > > > Richard > > > > > > -----Original Message----- > > > From: Joe Bowser [mailto:bows...@gmail.com] > > > Sent: Tuesday, May 17, 2016 3:51 PM > > > To: dev <dev@cordova.apache.org> > > > Subject: Re: Proposal: Change Android Project Directory Structure to > > > Android Studio style > > > > > > @Richard: The changes to the Android files in cordova-common should > > > allow for config-file, source-file and resource-file to work fine. > > > I already did something similar in February, but I should have > > > checked it in on an Cordova-Android branch instead of the other repo. > > > > > > https://github.com/infil00p/cordova-android-studio > > > > > > @Parashuram: Does this drop the JAR is libs? I couldn't quite tell > > > from looking at the JS code doing the installation. If it does, > > > that won't change at all. > > > > > > On Tue, May 17, 2016 at 3:03 PM, Parashuram N > > > <panar...@microsoft.com> > > > wrote: > > > > > > > This is an example - > > > > https://github.com/ConnectSDK/Connect-SDK-Cordova-Plugin. This > > > > actually has a hook that downloads and places the source code > > > > based on the current directory structure. > > > > > > > > On 5/17/16, 2:53 PM, "Richard Knoll" <rikn...@microsoft.com> wrote: > > > > > > > > >We have a lot of plugin.xml elements that depend on the old file > > > > structure. Tags like config-file, source-file, resource-file, etc. > > > > all have target elements that take arbitrary paths to project files. > > > > Looking at the new project structure, it seems like most of the > > > > relevant folders have moved around. Does your proposal handle that > > > > or do plugins need to update to reflect the new structure? I > > > > figure there isn't much we can do for plugins that use hooks. > > > > > > > > > >Richard > > > > > > > > > >-----Original Message----- > > > > >From: Joe Bowser [mailto:bows...@gmail.com] > > > > >Sent: Tuesday, May 17, 2016 2:07 PM > > > > >To: dev <dev@cordova.apache.org> > > > > >Subject: Re: Proposal: Change Android Project Directory Structure > > > > >to > > > > Android Studio style > > > > > > > > > >On Tue, May 17, 2016 at 2:01 PM, Parashuram N > > > > ><panar...@microsoft.com> > > > > >wrote: > > > > > > > > > >> I think the proposal is great. Our gradle is pretty big, and it > > > > >> does make sense to just do the defaults. > > > > >> +1 (personally speaking) to this – will save soo much of my > > > > >> +time as I > > > > >> depend on this for my react-native-cordova-plugin adapter. Your > > > > >> changes will make life so much easier ☺ > > > > >> > > > > >> How do the plugins break? Will plugins have to make change? In > > > > >> a way, it may make sense to do this with big changes at Google > > > > >> I/O – that way, we just have 1 breaking change, and plugin > > > > >> authors have to look at the changes just once. > > > > >> > > > > > > > > > >Ideally they shouldn't break, but I can't guarantee that. I do > > > > >have to > > > > change how plugins are installed in the Android cordova scripts, > > > > but the cordova-common work abstracted all that out and made that > easier. > > > > A user who hasn't tweaked their app shouldn't notice the difference. > > > > > > > > > >That said, the users who have may notice stuff, and I have no > > > > >idea how > > > > Crosswalk would work with this yet. It'd be good to work with > > > > them once we have something more working. > > > > > > > > > > > > > > >> > > > > >> On 5/17/16, 1:55 PM, "Joe Bowser" <bows...@gmail.com> wrote: > > > > >> > > > > >> >Hey > > > > >> > > > > > >> >I know people have been waiting for this for a very long time, > > > > >> >but I wrote up a proposal to change the project so it's an > > > > >> >Android Studio > > > > project. > > > > >> >Given that Android Studio is on 2.1.1, I think it's time we > > > > >> >moved forward and changed things around. > > > > >> > > > > > >> >Proposal PR is here: > > > > >> >https://github.com/cordova/cordova-discuss/pull/45 > > > > >> > > > > > >> >Branch where Proof of Concept work is being done is here: > > > > >> >https://github.com/infil00p/cordova-android/tree/studio_projec > > > > >> >t_ > > > > >> >st > > > > >> >ruc > > > > >> >ture > > > > >> > > > > > >> >The main roadblock to doing this, of course is migration of > > > > >> >plugins and custom code, as well as assets, but I think > > > > >> >Android developers would welcome this change because we're > > > > >> >acting more like a regular, normal Android project again and > > > > >> >not some old, weird legacy/special > > > > case thing. > > > > >> >I've already did some exploratory work with the old > > > > >> >cordova-android-studio version of cordova-common, and > > > > >> >installing plugins works fine depending on what version of > > > > >> >Cordova you're > > using. > > > > >> > > > > > >> >The other thing that has me stuck is all the functionality in > > > > >> >the gradle files. I would love to rip out a lot of the stuff > > > > >> >we autogenerate in there, such as the settings.gradle file > > > > >> >that caused me a huge headache earlier today when I tried to > > > > >> >get importing to work. It'd also be good to have a documented > > > > >> >process on how we set the Application ID, since I can't quite > > > > >> >figure out how we do that, and I know other people are > > > > >> >struggling with that as > > > well. > > > > >> > > > > > >> >This would be slated for Cordova-Android 6.0, and hopefully > > > > >> >Google IO doesn't have too many surprises that break us. > > > > >> > > > > > >> >Joe > > > > >> > > > > >> > > > > > > > > > >----------------------------------------------------------------- > > > > >-- > > > > >-- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > > > > >For additional commands, e-mail: dev-h...@cordova.apache.org > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > For additional commands, e-mail: dev-h...@cordova.apache.org > -- *Frederico Galvão* Diretor de Tecnologia PontoGet Inovação Web ( +55(62) 8131-5720 * www.pontoget.com.br <http://www.pontoget.com/>