cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian LeRoux...@brian.io>
Subject Re: adding platforms to npm for dependency sanity
Date Mon, 02 Jun 2014 21:47:20 GMT
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 <mmocny@chromium.org> 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 <iclelland@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 <agrieve@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" <agrieve@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 <
> kamrik@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)
> > > > <
> > > > >> > panarasi@microsoft.com> 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: brian.leroux@gmail.com [mailto:brian.leroux@gmail.com]
> On
> > > > >> Behalf
> > > > >> > Of
> > > > >> > > Brian LeRoux
> > > > >> > > Sent: Tuesday, May 27, 2014 2:20 PM
> > > > >> > > To: dev@cordova.apache.org
> > > > >> > > 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!
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message