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> >> > >