Eventually, yes. (Sort of how Grunt works now.)
On Mon, Jun 2, 2014 at 5:52 PM, Terence M. Bandoian <[email protected]> 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 [email protected]". >> >> 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 <[email protected]> >> 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 <[email protected]> >>> wrote: >>> >>> Not sure what your question is. >>>> >>>> >>>> On Mon, Jun 2, 2014 at 2:03 PM, Brian LeRoux <[email protected]> wrote: >>>> >>>> *ahem >>>>> >>>>> >>>>> On Wed, May 28, 2014 at 11:20 AM, Brian LeRoux <[email protected]> wrote: >>>>> >>>>> npm i [email protected] >>>>>> >>>>>> Right? >>>>>> On May 27, 2014 11:06 PM, "Andrew Grieve" <[email protected]> >>>>>> >>>>> 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 <[email protected] >>>>>>> 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) >>>> >>>>> < >>>>> >>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>> +1. This will also be a step towards releasing platforms >>>>>>>>> >>>>>>>> independently. >>>>>>> >>>>>>>> Will the CLI have a semver like dependency on the platform >>>>>>>>> >>>>>>>> specified >>>> >>>>> somewhere ? Would the cli have to require('npm') and do the >>>>>>>>> >>>>>>>> install? >>>> >>>>> -----Original Message----- >>>>>>>>> From: [email protected] [mailto:[email protected]] On >>>>>>>>> >>>>>>>> Behalf >>>>>>> >>>>>>>> Of >>>>>>>> >>>>>>>>> Brian LeRoux >>>>>>>>> Sent: Tuesday, May 27, 2014 2:20 PM >>>>>>>>> To: [email protected] >>>>>>>>> Subject: adding platforms to npm for dependency sanity >>>>>>>>> >>>>>>>>> We've discussed this but I'm not sure the whole idea has >>>>>>>>> >>>>>>>> crystalized. >>>>> >>>>>> My >>>>>>> >>>>>>>> proposal (based on previous discussions) below. I'll use iOS as >>>>>>>>> >>>>>>>> an >>> >>>> example >>>>>>>> >>>>>>>>> but this applies to all platforms supported by the CLI. >>>>>>>>> >>>>>>>>> First, we'd add two files: >>>>>>>>> >>>>>>>>> cordova-ios >>>>>>>>> |-package.json >>>>>>>>> '-index.js >>>>>>>>> >>>>>>>>> …I don't think I need to describe the utility of package.json >>>>>>>>> >>>>>>>> but >>> >>>> index.js >>>>>>>> >>>>>>>>> would expose programatic library apis: >>>>>>>>> >>>>>>>>> module.exports = { create:Function, run:Function, >>>>>>>>> >>>>>>>> build:Function, >>> >>>> clean:Function, log:Function} >>>>>>>>> >>>>>>>>> We then publish to npm. That is it for now. 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. >>>>>>>>> >>>>>>>>> Discuss! >>>>>>>>> >>>>>>>>> >
