The benefit for the cli is clearly defined deps and removing all the logic for managing them.
On Mon, Jun 2, 2014 at 4:04 PM, Michal Mocny <[email protected]> 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! > > > > >> > > > > > > >> > > > > > >> > > > > > > > > > > > > > > >
