YES!!!
On Wed, Jun 4, 2014 at 8:45 AM, Michal Mocny <mmo...@chromium.org> wrote: > After sleeping on it, I think if you're going to introduce package.json and > local installs of cli & platforms, and require node scripts to manage > environment, you really may as well go the last mile and replace use of the > global CLI installation with grunt/gulp plugins. (that sounds interesting, > but I do not know who would be willing & able to do it.) > > In the mean time, the existing CLI is already solving all the use cases > pointed out in this thread, and I'm not aware of it being a problem. > > -Michal > > > On Wed, Jun 4, 2014 at 11:29 AM, Michal Mocny <mmo...@chromium.org> wrote: > > > > > > > > > On Wed, Jun 4, 2014 at 11:10 AM, Carlos Santana <csantan...@gmail.com> > > wrote: > > > >> I think regardless how much sugar we use to make it easy, I think the > >> under > >> the hood foundation/architecture should be something like: > >> > >> LocalProject/www/ > >> LocalProject/config.xml > >> LocalProject/package.json > >> LocalProject/node_module/.bin/cordova > >> > >> config.xml (manages the cordova app) > >> package.json (manages the cordova project) > >> > >> pacakge.json (will specify all dependencies and npm will take care of > >> fulfill them) > >> { > >> cordova: ">3.6", > >> cordova-ios: "3.6.1", > >> cordova-android: "3.6.2", > >> cordova-plugin-device: "*", > >> cordova-plugin-file: "^0.2.4" > >> } > >> npm install will take care of making everything available locally. > >> > >> I know that we don't have plugins in npm, but something to think about, > in > >> terms of just a secondary repository to download the files and caching. > >> > >> a global @cordova-cli, can be available like grunt-cli, to look first in > >> local directory (i.e. findup) > >> > >> like someone mentioned npm installs hooks can run the "cordova platform > >> add" > >> > > > > Looked into it. Apparently this is really really taboo, which signals we > > will not have a good time down this path. > > > > > >> > >> this way minimal set of files can be put a dev repo, and reproduce by > >> another developer very easy both getting same resulting project. > >> > >> git clone https://github.com/myuser/cordovapp && cd cordovapp && npm > >> install && cordova run android > >> > >> > >> > >> On Tue, Jun 3, 2014 at 6:35 PM, Terence M. Bandoian <tere...@tmbsw.com> > >> wrote: > >> > >> > I still consider myself a relative newcomer to Cordova but, from a > >> > development standpoint, it would be easiest for me if I could manage > >> each > >> > platform of a project independently - including plugins. Creating a > >> > parallel project to make sure that the plugins and Cordova base don't > >> > change for one platform while I work on another isn't ideal but it > isn't > >> > completely unmanageable either. It just makes the workflow a little > >> more > >> > complex. > >> > > >> > -Terence > >> > > >> > > >> > > >> > On 6/3/2014 7:12 PM, Michal Mocny wrote: > >> > > >> >> We don't do platform-plugin version matching *at all* today. > Everyone > >> >> uses > >> >> the latest plugins and any platform version they want, and its been > >> >> "fine". > >> >> So using different platform versions isn't as hard as you guys are > >> >> making > >> >> it out to be. > >> >> > >> >> Still, I've already said its not necessarily a complexity that needs > >> to be > >> >> addressed in a world where you can create multiple projects and use > >> >> --link-to or whatever, so long as your platforms aren't installed > >> >> globally. > >> >> > >> >> > >> >> Anyway, thanks for posting your instructions Brian/Tommy. As I > >> mentioned > >> >> it would be, thats a different workflow than we have now. I'm going > to > >> >> sleep on it before I comment, but it certainly isn't just like "You > >> know > >> >> how we do it today". > >> >> > >> >> -Michal > >> >> > >> >> > >> >> On Tue, Jun 3, 2014 at 7:59 PM, tommy-carlos williams < > >> to...@devgeeks.org > >> >> > > >> >> wrote: > >> >> > >> >> I don’t think you really can forget about plugins for a second. > >> >>> > >> >>> In my personal opinion, the entire ./platforms folder should be a > >> build > >> >>> artefact. If you want to freeze iOS, then use a branch or a new > clone > >> of > >> >>> the project. > >> >>> > >> >>> It’s not that I can think of no scenarios where supporting multiple > >> >>> platform versions would be needed, it’s just that I think it’s > >> needlessly > >> >>> complex vs using a dev workflow to solve those problems. > >> >>> > >> >>> I already version cordova within a project… I have a local version > of > >> >>> cordova installed into ./node_modules for each project and use Grunt > >> to > >> >>> call ./node_modules/.bin/cordova rather than the global cordova cli. > >> >>> > >> >>> On 4 June 2014 at 9:46:29, Terence M. Bandoian (tere...@tmbsw.com) > >> >>> wrote: > >> >>> > >> >>> Forgetting about plugins for a second, what if: > >> >>> > >> >>> - I complete a project for iOS > >> >>> - six months later the client decides to port to Android and: > >> >>> - I want the latest fixes for Android > >> >>> - I want to keep the iOS version frozen for the time being > >> >>> > >> >>> I would expect releases for each platform to be on different > >> schedules. > >> >>> > >> >>> -Terence > >> >>> > >> >>> > >> >>> On 6/3/2014 6:17 PM, Michal Mocny wrote: > >> >>> > >> >>>> Most plugins will work across a wide range of platform versions, so > >> >>>> often > >> >>>> it would work to have disparate platform versions even with > plugins. > >> >>>> However, I do concede that in general this isn't a complexity we > >> focus > >> >>>> > >> >>> on. > >> >>> > >> >>>> Interested in your thoughts about the other points. > >> >>>> > >> >>>> -Michal > >> >>>> > >> >>>> > >> >>>> On Tue, Jun 3, 2014 at 7:07 PM, tommy-carlos williams < > >> >>>> > >> >>> to...@devgeeks.org> > >> >>> > >> >>>> wrote: > >> >>>> > >> >>>> You can’t have version x of a plugin for iOS and version y of that > >> same > >> >>>>> plugin for Android, so multiple platform versions seems like a > >> >>>>> > >> >>>> complexity > >> >>> > >> >>>> for complexity’s sake. > >> >>>>> > >> >>>>> It’s true that different apps need to support different platform > >> >>>>> > >> >>>> versions, > >> >>> > >> >>>> but I would suspect that the greatest majority of those would want > >> the > >> >>>>> > >> >>>> same > >> >>> > >> >>>> version of iOS and Android in app x. > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> On 4 June 2014 at 9:04:42, Brian LeRoux (b...@brian.io) wrote: > >> >>>>> > >> >>>>> That is the thing: you do not EVER want to have disparate versions > >> of > >> >>>>> platforms. Plugins negate this potential fantasy. > >> >>>>> > >> >>>>> You want version locked deps. You want to use package.json to do > >> that > >> >>>>> > >> >>>> b/c > >> >>> > >> >>>> that is what the runtime we use has standardized itself on. > >> >>>>> > >> >>>>> > >> >>>>> On Tue, Jun 3, 2014 at 1:12 PM, Terence M. Bandoian < > >> tere...@tmbsw.com > >> >>>>> > > >> >>>>> wrote: > >> >>>>> > >> >>>>> A typical use case might be: > >> >>>>>> > >> >>>>>> -project1 > >> >>>>>> -project1-ios > >> >>>>>> -project1-android > >> >>>>>> -project1-windows > >> >>>>>> ... > >> >>>>>> -projectN > >> >>>>>> -projectN-ios > >> >>>>>> -projectN-android > >> >>>>>> -projectN-windows > >> >>>>>> > >> >>>>>> with a different platform version for each sub-project. > >> >>>>>> > >> >>>>>> Would CLI be installed globally? Locally for each sub-project? > >> Would a > >> >>>>>> project-platform have to be re-built if a plugin were added? > >> >>>>>> > >> >>>>>> -Terence > >> >>>>>> > >> >>>>>> > >> >>>>>> On 6/3/2014 1:47 PM, Michal Mocny wrote: > >> >>>>>> > >> >>>>>> Okay, so I think that implies: > >> >>>>>>> > >> >>>>>>> (a) CLI versions tied to very specific platform versions ==> to > >> >>>>>>> switch > >> >>>>>>> platform versions you must switching CLI versions ==> switching > >> one > >> >>>>>>> platform version switches all platform versions. > >> >>>>>>> - Andrew pointed out this is currently the case, and is a > problem > >> >>>>>>> that > >> >>>>>>> leads to users not updating CLI as often as they otherwise would > >> >>>>>>> - I think this basically implies platforms cannot be > independently > >> >>>>>>> versioned (sure the semver numbers may differ, but for all > >> practical > >> >>>>>>> purposes, you would use platforms from the same release date, > >> based > >> >>>>>>> on > >> >>>>>>> > >> >>>>>> CLI > >> >>>>> > >> >>>>>> version). > >> >>>>>>> > >> >>>>>>> (b) Require apps to depend on specific CLI version, assuming you > >> mean > >> >>>>>>> > >> >>>>>> with > >> >>>>> > >> >>>>>> a local package.json: > >> >>>>>>> - Now all cordova projects must be node projects, which they > >> >>>>>>> currently > >> >>>>>>> > >> >>>>>> are > >> >>>>> > >> >>>>>> not. > >> >>>>>>> - Currently the cordova-cli creates apps, so we have a globally > >> >>>>>>> > >> >>>>>> installed > >> >>>>> > >> >>>>>> bootstrapping cordova-cli, and a locally installed specific > version > >> >>>>>>> cordova-cli, a-la grunt/gulp. (this idea was thrown around > >> before). > >> >>>>>>> - Quite a dramatic change for cordova workflow, surely larger > than > >> >>>>>>> the > >> >>>>>>> current proposal. > >> >>>>>>> - Or we drop cordova-cli entirely and just publish grunt/gulp > >> plugins > >> >>>>>>> > >> >>>>>> to > >> >>> > >> >>>> "add cordova" to your existing web app. Thats an even more radical > >> >>>>>>> departure and significant work. > >> >>>>>>> > >> >>>>>>> -Michal > >> >>>>>>> > >> >>>>>>> > >> >>>>>>> On Tue, Jun 3, 2014 at 1:58 PM, Brian LeRoux <b...@brian.io> > wrote: > >> >>>>>>> > >> >>>>>>> No, at least not how I'd see it done. > >> >>>>>>> > >> >>>>>>>> 1.) Updating is important. Staying current: encouraged. > >> >>>>>>>> 2.) I'd make my App depend on a specific CLI version. I'd call > >> into > >> >>>>>>>> > >> >>>>>>> that > >> >>>>> > >> >>>>>> using npm scripts. > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> On Tue, Jun 3, 2014 at 10:48 AM, Michal Mocny < > >> mmo...@chromium.org> > >> >>>>>>>> wrote: > >> >>>>>>>> > >> >>>>>>>> Thinking it through, if cordova platforms are deps of the CLI, > to > >> >>>>>>>> install a > >> >>>>>>>> > >> >>>>>>>> specific version you wouldn't just do: > >> >>>>>>>>> > >> >>>>>>>>> npm install -g cordova-ios@3.4.1 > >> >>>>>>>>>> > >> >>>>>>>>>> you would actually need to: > >> >>>>>>>>> > >> >>>>>>>>> cd $(npm config get prefix)/lib/node_modules/cordova > >> >>>>>>>>>> npm install --save cordova-ios@3.4.1 > >> >>>>>>>>>> > >> >>>>>>>>>> ..and then remember to do that again whenever you `npm > update > >> -g` > >> >>>>>>>>> ..and its harder to have multiple platform versions for > >> different > >> >>>>>>>>> > >> >>>>>>>>> projects > >> >>>>>>>> > >> >>>>>>>> (questionable if this is useful for devs outside of cordova > >> >>>>>>>>> contributors, > >> >>>>>>>>> but may be useful at last test upgrades when we ship new > >> platform > >> >>>>>>>>> versions). > >> >>>>>>>>> > >> >>>>>>>>> -Michal > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> On Tue, Jun 3, 2014 at 1:28 PM, Brian LeRoux <b...@brian.io> > >> wrote: > >> >>>>>>>>> > >> >>>>>>>>> NIH: not invented here > >> >>>>>>>>> > >> >>>>>>>>>> > >> >>>>>>>>>> On Tue, Jun 3, 2014 at 10:17 AM, Andrew Grieve < > >> >>>>>>>>>> > >> >>>>>>>>> agri...@chromium.org > >> >>> > >> >>>> wrote: > >> >>>>>>>>>> > >> >>>>>>>>>> On Tue, Jun 3, 2014 at 12:19 PM, Brian LeRoux <b...@brian.io> > >> wrote: > >> >>>>>>>>>> > >> >>>>>>>>>>> Actually that was >0 LOC which is a fine argument if you ask > >> me. > >> >>>>>>>>>>> And > >> >>>>>>>>>>> > >> >>>>>>>>>> we > >> >>>>>>>>> > >> >>>>>>>>> both know there is much more to it than just that. > >> lazy_load…for > >> >>>>>>>>>> > >> >>>>>>>>>>> example. > >> >>>>>>>>>>> If you're concerned about code, there is a tonne of much > >> >>>>>>>>>>> > >> >>>>>>>>>>> lower-hanging > >> >>>>>>>>>> > >> >>>>>>>>> fruit. > >> >>>>>>>>> > >> >>>>>>>>>> Bundling platforms is bundling a dep that we require to > >> operate. > >> >>>>>>>>>>> > >> >>>>>>>>>> We > >> >>> > >> >>>> do > >> >>>>>>>>>>> > >> >>>>>>>>>> not > >> >>>>>>>>>> > >> >>>>>>>>>>> require plugins to operate. You cannot build a project > without > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> having a > >> >>>>>>>>>>> > >> >>>>>>>>>> platform and, indeed, you probably want more than one. > >> >>>>>>>>>> > >> >>>>>>>>>>> I don't require blackberry to create an iOS project. But I > do > >> >>>>>>>>>>>> > >> >>>>>>>>>>> require > >> >>>>>>>>>>> > >> >>>>>>>>>>> some > >> >>>>>>>>>> > >> >>>>>>>>>> plugins. We use "npm cache add" to download plugins, I don't > >> see > >> >>>>>>>>>>> > >> >>>>>>>>>> how > >> >>> > >> >>>> platforms would not work just as easily. > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> Agree that we need discreet versioning: hence why I'm > >> advocating > >> >>>>>>>>>>> > >> >>>>>>>>>> we > >> >>> > >> >>>> use > >> >>>>>>>>>>> > >> >>>>>>>>>> well understood, maintained, and effectively standard system > >> for > >> >>>>>>>>>> > >> >>>>>>>>>>> doing > >> >>>>>>>>>>> > >> >>>>>>>>>> this. We do not need NIH dependencies that is what > >> package.json is > >> >>>>>>>>>> > >> >>>>>>>>>>> for! > >> >>>>>>>>>>> > >> >>>>>>>>>> I don't know what NIH dependencies are. Googling suggests > >> you're > >> >>>>>>>>>> talking > >> >>>>>>>>>> about drugs... > >> >>>>>>>>>> > >> >>>>>>>>>>> We *are* using npm for downloading, we're just not making > the > >> >>>>>>>>>>> user > >> >>>>>>>>>>> > >> >>>>>>>>>>> type > >> >>>>>>>>>> > >> >>>>>>>>> it > >> >>>>>>>>> > >> >>>>>>>>>> directly. > >> >>>>>>>>>>> > >> >>>>>>>>>>> Mark's approach also avoids the "what-if" cases where what's > >> in > >> >>>>>>>>>>> > >> >>>>>>>>>> your > >> >>> > >> >>>> node_modules might not match what's in your platforms/ > >> >>>>>>>>>>> > >> >>>>>>>>>>> Does what Mark has implemented not address a use-case of > >> yours? > >> >>>>>>>>>>> Or > >> >>>>>>>>>>> > >> >>>>>>>>>>> are > >> >>>>>>>>>> > >> >>>>>>>>> we > >> >>>>>>>>> > >> >>>>>>>>> going back & forth over personal preference? > >> >>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> On Tue, Jun 3, 2014 at 9:07 AM, Andrew Grieve < > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> agri...@chromium.org> > >> >>>>>>>>>>> > >> >>>>>>>>>> wrote: > >> >>>>>>>>> > >> >>>>>>>>>> On Tue, Jun 3, 2014 at 11:34 AM, Brian LeRoux <b...@brian.io> > >> >>>>>>>>>>>> wrote: > >> >>>>>>>>>>>> > >> >>>>>>>>>>> Andrew, you misunderstand. I am talking about bundling > >> >>>>>>>>> > >> >>>>>>>>>> platforms > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> directly > >> >>>>>>>>> > >> >>>>>>>>>> as dependencies of the CLI. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> A trivial example: > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> CLI > >> >>>>>>>>>>>>>> '-ios > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Wherein, CLI declares the precise version of the platform > >> it > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> uses. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> We > >> >>>>>>>>>> > >> >>>>>>>>>> could > >> >>>>>>>>>>> > >> >>>>>>>>>>>> wildcard. I don't know that we want or need to do that. > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> It would have identical semantics to today except the > >> download > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> penalty > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> happens up front. (We can remove lazy_load logic. We don't > >> have > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> to > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> maintain > >> >>>>>>>>>> > >> >>>>>>>>>>> our own dependency manifests and caches. LESS code: good > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> thing.) > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> Let me paste the code for doing our own caching for you: > >> >>>>>>>>> > >> >>>>>>>>>> cordova_npm: function lazy_load_npm(platform) { > >> >>>>>>>>>>>>> if (!(platform in platforms)) { > >> >>>>>>>>>>>>> return Q.reject(new Error('Cordova library "' + > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> platform > >> >>>>>>>>>>>> > >> >>>>>>>>>>> + > >> >>>>>>>>>> > >> >>>>>>>>>> '" > >> >>>>>>>>>>> > >> >>>>>>>>>>> not recognized.')); > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> } > >> >>>>>>>>>>>>> var pkg = 'cordova-' + platform + '@' + > >> >>>>>>>>>>>>> platforms[platform].version; > >> >>>>>>>>>>>>> return Q.nfcall( npm.load, {cache: > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> path.join(util.libDirectory, > >> >>>>>>>>>>>> > >> >>>>>>>>>>> 'npm_cache') }) > >> >>>>>>>>>>> > >> >>>>>>>>>>>> .then(function() { > >> >>>>>>>>>>>>> return Q.ninvoke(npm.commands, 'cache', ['add', > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> pkg]); > >> >>>>>>>>>>>> > >> >>>>>>>>>>> }).then(function(info) { > >> >>>>>>>>> > >> >>>>>>>>>> var pkgDir = path.resolve(npm.cache, info.name, > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> info.version, > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> 'package'); > >> >>>>>>>>>>>>> return pkgDir; > >> >>>>>>>>>>>>> }); > >> >>>>>>>>>>>>> }, > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> There's really no "amount of code" argument here. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> Adding platforms at a specific version would mean having a > >> >>>>>>>>>>>>> specific > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> version > >> >>>>>>>>>> > >> >>>>>>>>>>> of the CLI. Yes: this is way better! Explicit dependencies > is > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> the > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> best > >> >>>>>>>>> > >> >>>>>>>>>> way > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> to work w/ the small modules thing. > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Bundling platforms with CLI would be like bundling all of > >> the > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> plugins > >> >>>>>>>>>>>> > >> >>>>>>>>>>> with > >> >>>>>>>>>> > >> >>>>>>>>>>> CLI, or like bundling every npm module with npm. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> Devs need to be able to try out platforms at different > >> >>>>>>>>>>>>> versions. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> We > >> >>>>>>>>>>>> > >> >>>>>>>>>>> should > >> >>>>>>>>> > >> >>>>>>>>>> not do anything that keeps users clinging to old versions of > >> CLI > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> (e.g. > >> >>>>>>>>>>>> > >> >>>>>>>>>>> they > >> >>>>>>>>>>> > >> >>>>>>>>>>>> do this now because they don't want to update to new > >> platforms) > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> On Mon, Jun 2, 2014 at 7:34 PM, Michal Mocny < > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> mmo...@chromium.org> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> wrote: > >> >>>>>>>>>> > >> >>>>>>>>>>> On Mon, Jun 2, 2014 at 10:14 PM, Andrew Grieve < > >> >>>>>>>>>>>>>> agri...@chromium.org > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> Here's both flows as I understand them: > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Direct NPM flow: > >> >>>>>>>>>>>>>>>> # Downloads platform source into node_modules > >> >>>>>>>>>>>>>>>> npm install cordova-ios@3.4.0 --save > >> >>>>>>>>>>>>>>>> # Runs the create script and installs plugins to create > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> platforms/ios > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> cordova platform add ios --path=node_modules/cordova-ios > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> To be fair, I think with Brian's suggestion, platform add > >> FOO > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> would > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> by > >> >>>>>>>>>>> > >> >>>>>>>>>>>> default look in node_modules so you wouldn't be explicit > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> about > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> it, > >> >>>>>>>>> > >> >>>>>>>>>> and > >> >>>>>>>>>>> > >> >>>>>>>>>>>> also > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> the default cordova project package.json would depend on > >> all > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> the > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> latest > >> >>>>>>>>>> > >> >>>>>>>>>>> versions of each platform, so the flows would actually be: > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> cordova create Foo && cd Foo > >> >>>>>>>>>>>>>>>> npm install > >> >>>>>>>>>>>>>>>> npm install cordova-ios@3.4 --save > >> >>>>>>>>>>>>>>>> cordova platform add android > >> >>>>>>>>>>>>>>>> cordova platform add ios > >> >>>>>>>>>>>>>>>> # crazy idea? use npm post-install hooks to auto-run > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> create/upgrade > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> so > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> you usually don't need above two lines? > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> Compared to: > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> cordova create Foo && cd Foo > >> >>>>>>>>>>>>>>>> cordova platform add android > >> >>>>>>>>>>>>>>>> cordova platform add ios@3.4 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> I think #2 is enough better that its not worth > changing. > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> Cordova-to-npm flow (as Mark's implemented): > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> # Runs "npm cache add cordova-ios", then runs create > >> script > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> from > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> ~/cache/cordova-ios/bin/create > >> >>>>>>>>>>> > >> >>>>>>>>>>>> cordova platform add ios@3.4.0 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> - In both flows: we use npm to do all of the heavy > >> lifting > >> >>>>>>>>>>>>>>>> - In both flows: the npm module is cached in your home > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> directory > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> - In both flows?: we store the plugins & platforms > >> >>>>>>>>>>> > >> >>>>>>>>>>>> explicitly > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> within > >> >>>>>>>>> > >> >>>>>>>>>> config.xml (Gorkem's added this) > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> - In flow #1, we have a package.json & a node_modules, in > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> #2 > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> we > >> >>>>>>>>> > >> >>>>>>>>> don't. > >> >>>>>>>>>> > >> >>>>>>>>>>> Why put the onus on the user to fetch the platform source > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> when > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> it's > >> >>>>>>>>>> > >> >>>>>>>>>>> as > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> easy > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> as running "npm cache add" under-the-hood? > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> In regards to the idea of using require() on platform > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> scripts > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> instead > >> >>>>>>>>> > >> >>>>>>>>>> of > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> subshelling: I think this is tangental to the debate of > how > >> >>>>>>>>>>>>>>> to > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> fetch > >> >>>>>>>>>> > >> >>>>>>>>>>> the > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> platform. > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> In regards to using "npm install" directly when using > the > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> plugman > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> workflow: > >> >>>>>>>>>>> > >> >>>>>>>>>>>> Sounds good to me. > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> On Mon, Jun 2, 2014 at 6:05 PM, Brian LeRoux < > b...@brian.io > >> > > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Eventually, yes. (Sort of how Grunt works now.) > >> >>>>>>>>>>> > >> >>>>>>>>>>>> On Mon, Jun 2, 2014 at 5:52 PM, Terence M. Bandoian < > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> tere...@tmbsw.com > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Can multiple versions of a platform be installed > >> >>>>>>>>>>>>>>>>> side-by-side? > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> -Terence > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> On 6/2/2014 3:04 PM, Michal Mocny wrote: > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> >From original email: "Ideal future CLI uses > platforms > >> >>>>>>>>>>>>>>>>>> just > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> like > >> >>>>>>>>>>> > >> >>>>>>>>>>>> other > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> deps. > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> We lose lazy loading but network and disk is cheap so > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> it > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> wasn't > >> >>>>>>>>> > >> >>>>>>>>>> really > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> important anyhow." > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> Made me think Brian is proposing adding platforms to > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> cli > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> package.json > >> >>>>>>>>> > >> >>>>>>>>>> dependencies, and you would have a single global > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> install > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> cordova-platforms. > >> >>>>>>>>> > >> >>>>>>>>>> Then you can override the version with an explicit > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> install > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> as > >> >>>>>>>>>>> > >> >>>>>>>>>>>> he > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> mentions > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> "npm i cordova-ios@3.5.0". > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> Personally, I think that workflow could work, and > has > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> a > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> few > >> >>>>>>>>> > >> >>>>>>>>>> benefits, > >> >>>>>>>>>>> > >> >>>>>>>>>>>> but > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> I'm not sure that option compares well to the > >> >>>>>>>>>>>>>>>>>> alternative > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> of > >> >>>>>>>>>> > >> >>>>>>>>>> just > >> >>>>>>>>>>> > >> >>>>>>>>>>>> lazy > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> loading using npm cache add as Mark has already > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> implemented > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> an > >> >>>>>>>>>>> > >> >>>>>>>>>>> experiment > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> (anyone interested in this topic should take a look at > >> >>>>>>>>>>>>>>>>>> that > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> patch). > >> >>>>>>>>>>> > >> >>>>>>>>>>>> The steps Brian & Ian outline about how to package > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> platforms > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> for > >> >>>>>>>>>>> > >> >>>>>>>>>>>> release > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> to > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> npm are possibly an improvement over the old-style > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> platform-centric > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> workflow. Instead of downloading a tarball and > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> running > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> a > >> >>>>>>>>> > >> >>>>>>>>> create > >> >>>>>>>>>> > >> >>>>>>>>>>> script, > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> you npm install and run a create() function, and that > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> can > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> more > >> >>>>>>>>>> > >> >>>>>>>>>>> easily > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> be > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> bundled into other build scripts/boilerplate. For CLI > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> workflow, > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> not > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> sure > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> that there is any real difference (as Jesse says). > >> >>>>>>>>>>>>>>>>>> One > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> note, > >> >>>>>>>>> > >> >>>>>>>>>> though: > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> cordova-* platforms are templates for projects, so > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> the > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> package.json > >> >>>>>>>>> > >> >>>>>>>>>> of > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> the > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> npm package itself shouldn't end up inside projects > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> that > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> are > >> >>>>>>>>> > >> >>>>>>>>>> created > >> >>>>>>>>>>> > >> >>>>>>>>>>>> with > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> it. I think. > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> -Michal > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> On Mon, Jun 2, 2014 at 3:42 PM, Ian Clelland < > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> iclell...@chromium.org> > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> There seems to be some confusion -- I think people > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> are > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> talking > >> >>>>>>>>> > >> >>>>>>>>>> about > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> different things here, but perhaps it's just me ;) > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> I thought that Brian's original suggestion was about > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> being > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> able > >> >>>>>>>>>>> > >> >>>>>>>>>>>> to > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> host > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Cordova platforms directly on NPM. That's why each > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> one > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> would > >> >>>>>>>>> > >> >>>>>>>>>> require > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> a > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> package.json. (which would probably end up in > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> <project>/platforms/<platform> in a project, but > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> that's > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> not > >> >>>>>>>>> > >> >>>>>>>>>> the > >> >>>>>>>>>>> > >> >>>>>>>>>>>> point > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> of > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> it). > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> As an NPM project, we then would have the > opportunity > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> (though > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> not > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> the > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> obligation) to make all of the supporting scripts for > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> each > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> platform > >> >>>>>>>>>>> > >> >>>>>>>>>>>> (create, build, run, etc) part of the node module, > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> for > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> a > >> >>>>>>>>> > >> >>>>>>>>> uniform > >> >>>>>>>>>> > >> >>>>>>>>>>> interface > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> that doesn't require going through the command line. > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> It's not about making platforms into CLI > dependencies > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> (any > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> more > >> >>>>>>>>>>> > >> >>>>>>>>>>>> than > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> plugins are CLI dependencies right now), or about > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> making > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> a > >> >>>>>>>>>> > >> >>>>>>>>>> cordova-based > >> >>>>>>>>>>> > >> >>>>>>>>>>>> project into a node package. > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> If that's right, then I support that -- I'd like the > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> platforms > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> to > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> be > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> installable through npm, and to be versioned > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> separately, > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> installable > >> >>>>>>>>>> > >> >>>>>>>>>>> separately, and scriptable without having to spawn > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> subshells. > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> And if I have it completely wrong, then let me know > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> -- > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> I'll > >> >>>>>>>>> > >> >>>>>>>>>> just > >> >>>>>>>>>>> > >> >>>>>>>>>>>> go > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> back > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> to > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> fixing File bugs ;) > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> On Mon, Jun 2, 2014 at 3:29 PM, Andrew Grieve < > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> agri...@chromium.org> > >> >>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> Not sure what your question is. > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> On Mon, Jun 2, 2014 at 2:03 PM, Brian LeRoux < > >> >>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>> b...@brian.io> > >> >>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>> > >> >>>>>>>>>>>> *ahem > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> On Wed, May 28, 2014 at 11:20 AM, Brian LeRoux < > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> b...@brian.io > >> >>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> npm i cordova-ios@3.5.0 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> Right? > >> >>>>>>>>>>>>>>>>>>>>>>> On May 27, 2014 11:06 PM, "Andrew Grieve" < > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> agri...@chromium.org > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Lazy loading is what will give us the ability to > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> support > >> >>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> multiple > >> >>>>>>>>>>> > >> >>>>>>>>>>>> versions > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> of platforms. > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> If we don't support users choosing the version > of > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> the > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> platform > >> >>>>>>>>>> > >> >>>>>>>>>>> they > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> want, > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> then they will resist updating their version of > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> CLI > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>> (like > >> >>>>>>>>> > >> >>>>>>>>>> they > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> do > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> right > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> now). > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> I'm very keen to allow users to chose their > >> >>>>>>>>>>>>>>>>>>>>>>> platform > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> versions, > >> >>>>>>>>>> > >> >>>>>>>>>>> just > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> as > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> they > >> >>>>>>>>>>>>>>>>>>>>>> are able to choose their plugin versions. > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> On Tue, May 27, 2014 at 5:57 PM, Mark > Koudritsky > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> < > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> kam...@google.com > >> >>>>>>>>> > >> >>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>> +1 > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> Steve published (some of?) the platforms on > npm > >> >>>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>>> as > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> part > >> >>>>>>>>> > >> >>>>>>>>>> of > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> the > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> latest > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> release. > >> >>>>>>>>>>>>>>>>>>>>>>> https://www.npmjs.org/package/cordova-android > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> https://www.npmjs.org/package/cordova-ios > >> >>>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>>> CLI already require()s npm for downloading > >> >>>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>>> plugins > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> from > >> >>>>>>>>> > >> >>>>>>>>>> the > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> registry. > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> Extending this to platforms is on my todo list for > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> this\next > >> >>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>> week. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> The "lazy" part of the loading was about > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> caching, > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> so > >> >>>>>>>>> > >> >>>>>>>>> we > >> >>>>>>>>>> > >> >>>>>>>>>>> don't > >> >>>>>>>>>>>> > >> >>>>>>>>>>>>> lose > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> it > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> since > >> >>>>>>>>>>>>>>>>>>>>>>> npm does its own caching. > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>>> On Tue, May 27, 2014 at 5:42 PM, Parashuram > >> >>>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>>> Narasimhan > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> (MS > >> >>>>>>>>>>> > >> >>>>>>>>>>>> OPEN > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> TECH) > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> < > >> >>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>> panar...@microsoft.com> wrote: > >> >>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> +1. This will also be a step towards releasing > >> >>>>>>>>>>>>>>>>>>>>>>>> platforms > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>> independently. > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Will the CLI have a semver like dependency on > >> >>>>>>>>>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>>>>>>>> > >> >>> > >> >>> > >> > > >> > >> > >> -- > >> Carlos Santana > >> <csantan...@gmail.com> > >> > > > > >