Updated: http://wiki.apache.org/cordova/PluginDesign
Anis, can you do us a solid and review the document based on your latest experience authoring plug man? Like make sure the doc is not missing anything and is up to date? On 2/1/13 12:09 PM, "Andrew Grieve" <agri...@chromium.org> wrote: >Great! thanks! > > >On Fri, Feb 1, 2013 at 3:06 PM, Brian LeRoux <b...@brian.io> wrote: > >> Seems like a wiki thing. >> >> On Fri, Feb 1, 2013 at 12:01 PM, Filip Maj <f...@adobe.com> wrote: >> > Its just a document.. >> > >> > Ill move it / create a spot for it in the wiki ? >> > >> > On 2/1/13 11:56 AM, "Brian LeRoux" <b...@brian.io> wrote: >> > >> >>Yup, you only need to update the NOTICE and only if we are >>distributing. >> >> >> >>On Fri, Feb 1, 2013 at 11:47 AM, Filip Maj <f...@adobe.com> wrote: >> >>> isn't mit compatible with apache license? >> >>> >> >>> On 2/1/13 11:41 AM, "Andrew Grieve" <agri...@chromium.org> wrote: >> >>> >> >>>>Did anyone act on putting this on the wiki? >> >>>> >> >>>>We'd need to ask Andrew to re-license from MIT -> Apache before we >>did >> >>>>so >> >>>>I >> >>>>think. >> >>>> >> >>>> >> >>>>On Wed, Jan 9, 2013 at 2:10 PM, Shazron <shaz...@gmail.com> wrote: >> >>>> >> >>>>> +1 >> >>>>> >> >>>>> >> >>>>> On Wed, Jan 9, 2013 at 10:57 AM, Filip Maj <f...@adobe.com> wrote: >> >>>>> >> >>>>> > https://github.com/alunny/cordova-plugin-spec >> >>>>> > >> >>>>> > >> >>>>> > We should move this to our wiki asap >> >>>>> > >> >>>>> > On 1/9/13 7:28 AM, "Gord Tanner" <gtan...@gmail.com> wrote: >> >>>>> > >> >>>>> > >Ideally the require paths should stay true to the following >>rules >> >>>>>(not >> >>>>> > >that >> >>>>> > >we follow them exactly now but we are close): >> >>>>> > > >> >>>>> > >1. should always start with cordova (in case we ever share a >> >>>>>require >> >>>>> > >framework) >> >>>>> > >2. should follow as close as possible to the folder structure. >> >>>>> > > >> >>>>> > >We don't really do this now (but we are close). It is mainly >>to >> >>>>>help >> >>>>> with >> >>>>> > >navigation of the project from a require statement: >> >>>>> > > >> >>>>> > > var foo = require('cordova/plugin/foo/submodule') >> >>>>> > > >> >>>>> > >Ideally I should be able to navigate to a file that lives in: >> >>>>> > > >> >>>>> > > ~/cordova.js/plugin/foo/submodule.js >> >>>>> > > >> >>>>> > >But realistically we are probably going to see: >> >>>>> > > >> >>>>> > > ~/cordova.js/plugin/foo/js/submodule.js >> >>>>> > > >> >>>>> > >Assuming we are dumping everything into a js folder here is the >> >>>>> "mapping" >> >>>>> > >off the top of my head: >> >>>>> > > >> >>>>> > > var foo = require('cordova/plugin/foo') >> >>>>> > > ~/cordova.js/plugin/foo/js/index.js >> >>>>> > > >> >>>>> > > var foo = require('cordova/plugin/foo/ios') >> >>>>> > > ~/cordova.js/plugin/foo/js/ios.js >> >>>>> > > >> >>>>> > > var foo = require('cordova/plugin/foo/blackberry/qnx') >> >>>>> > > ~/cordova.js/plugin/foo/js/blackberry/qnx.js >> >>>>> > > >> >>>>> > >What does a plugin (native and js code) folder structure look >> like? >> >>>>> > > >> >>>>> > > >> >>>>> > >On Wed, Jan 9, 2013 at 9:42 AM, Andrew Grieve >><agri...@google.com >> > >> >>>>> wrote: >> >>>>> > > >> >>>>> > >> I'd like to take a first step towards moving plugin JS into >> >>>>>separate >> >>>>> > >>repos >> >>>>> > >> by first moving them around within cordova-js. >> >>>>> > >> >> >>>>> > >> Here is my proposal: >> >>>>> > >> >> >>>>> > >> Current structure: >> >>>>> > >> lib/common/plugin/*.js >> >>>>> > >> lib/$PLATFORM/plugin/*.js >> >>>>> > >> >> >>>>> > >> New structure: >> >>>>> > >> plugin/$PLUGIN_NAME/js/common/*.js >> >>>>> > >> plugin/$PLUGIN_NAME/js/$PLATFORM/*.js >> >>>>> > >> >> >>>>> > >> The require path will need to change. Going from: >> >>>>> > >> cordova.require('cordova/plugin/FileTransferError') >> >>>>> > >> To: >> >>>>> > >> cordova.require('plugin/file/FileTransferError') >> >>>>> > >> >> >>>>> > >> >> >>>>> > >> I'll obviously need to update the builder scripts >>accordingly. >> >>>>>The >> >>>>> idea >> >>>>> > >> here is that we: >> >>>>> > >> 1. "cordova plugin add" will copy files into a >>project's >> >>>>> plugins >> >>>>> > >> directory >> >>>>> > >> 2. "cordova build ios" will use the cordova-js >>packager >> >>>>>and >> >>>>> > >>pass it >> >>>>> > >> the plugin/ directory to use >> >>>>> > >> >> >>>>> > >> This will not involve changing how we export modules onto >> >>>>>namespaces >> >>>>> in >> >>>>> > >> common.js / platform.js. That will come next though. >> >>>>> > >> >> >>>>> > >> >> >>>>> > >> The resulting structure will look like: >> >>>>> > >> >> >>>>> > >> plugin/accelerometer/js/common/Acceleration.js >> >>>>> > >> plugin/accelerometer/js/common/accelerometer.js >> >>>>> > >> plugin/battery/js/common/battery.js >> >>>>> > >> plugin/compass/js/common/Compass*.js >> >>>>> > >> plugin/contacts/js/common/Contact*.js >> >>>>> > >> plugin/device/js/common/device.js >> >>>>> > >> plugin/geolocation/js/common/Coordinates.js >> >>>>> > >> plugin/geolocation/js/common/Position*.js >> >>>>> > >> plugin/globalization/js/common/Globalization*.js >> >>>>> > >> plugin/inappbrowser/js/common/InAppBrowser.js >> >>>>> > >> plugin/logger/js/common/logger.js >> >>>>> > >> plugin/logger/js/common/console-via-logger.js >> >>>>> > >> plugin/media/js/common/Capture*.js >> >>>>> > >> plugin/media/js/common/ConfigurationData.js >> >>>>> > >> plugin/media/js/common/Media*.js >> >>>>> > >> plugin/network/js/common/Connection.js >> >>>>> > >> plugin/notification/js/common/notification.js >> >>>>> > >> plugin/camera/js/common/Camera*.js >> >>>>> > >> plugin/echo/js/common/echo.js >> >>>>> > >> plugin/file/js/common/Directory*.js >> >>>>> > >> plugin/file/js/common/Entry.js >> >>>>> > >> plugin/file/js/common/File*.js >> >>>>> > >> plugin/file/js/common/Flags.js >> >>>>> > >> plugin/file/js/common/LocalFileSystem.js >> >>>>> > >> plugin/file/js/common/Metadata.js >> >>>>> > >> plugin/file/js/common/ProgressEvent.js >> >>>>> > >> plugin/splashscreen/js/common/splashscreen.js >> >>>>> > >> >> >>>>> > >> >>>>> > >> >>>>> >> >>> >> > >>