cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Brooks <mich...@michaelbrooks.ca>
Subject Re: CLI lazy loading of libraries
Date Fri, 07 Jun 2013 21:46:31 GMT
1. Awesome

2. Very similar logic exists in the phonegap-cli [1] [2]. Since this logic
is being used by phonegap-cli, node-phonegap-build, and cordova-cli, we
could extract it out to a new NPM module called cordova-config.

3. Additionally, PhoneGap will want to load its own Hello World app instead
of the Cordova Hello World app. So, it would be nice to accomodate this
situation gracefully. Do Chrome Apps have any odd requirements?

[1]
https://github.com/mwbrooks/phonegap-cli/blob/master/lib/common/config.js
[2] https://github.com/mwbrooks/phonegap-cli/tree/master/spec/common/config


On Fri, Jun 7, 2013 at 2:38 PM, Filip Maj <fil@adobe.com> wrote:

> Cool, thanks Mike, I'll use the gitweb approach to download libraries.
>
> And re #2: fair enough, I'll add that bit of logic to the "find the root
> of a cordova project" utility function.
>
> As for the hooks, I am still mulling over different approaches. One
> scenario that us Adobe folk want to support for PhoneGap is redirecting
> any adds/builds for particular platforms that are not supported on a
> user's machine to PhoneGap Build. For example, if a user's machine was not
> setup for iOS development (say, a Windows machine), the PhoneGap CLI not
> only needs to know when a particular event happens, but also needs to be
> able to stop the Cordova CLI from proceeding with the event - something
> akin to e.preventDefault() in DOM events.
>
> I'm not sure of any npm libraries out there that have a similar eventing
> system in place but I will do some research and see if there is any prior
> art out there.
>
> If anyone on the list has any ideas, I'm all ears :)
>
> On 13-06-07 10:07 AM, "Michael Brooks" <michael@michaelbrooks.ca> wrote:
>
> >1. The Apache GitWeb implementation allows us to download a tar.gz of any
> >hash or tag. Using this will allow us to download any platform release.
> >Here is an example of how to download cordova-android 2.8.0 [1]. I think
> >this is better than downloading the entire release, because lazy-loading
> >is
> >meant to only grab what's needed. It's also a better choice than GitHub's
> >downloads because Apache's mirroring is sometimes unreliable.
> >
> >2. We should use $HOME/.cordova/ There is no reason to invent
> >yet-another-name for the Cordova configuration directory. When a
> >".cordova/" is found the $HOME directory, it is considered a global
> >configuration directory and not a Cordova project. We can use
> >$HOME/.cordova/lib/cordova-android to store the lazy-loaded libraries. I
> >chose "lib/" instead of "platforms/" because we will also be lazy-loading
> >resources such as the Hello World app and someday perhaps even ios-sim.
> >
> >3. Sure, the hooks sound good.
> >
> >[1]
> >
> https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=snapshot;h
> >=2.8.0;sf=tgz
> >
> >
> >On Fri, Jun 7, 2013 at 7:41 AM, Michal Mocny <mmocny@chromium.org> wrote:
> >
> >> Glad to see movement on this.
> >>
> >> Few suggestions:
> >> - use $HOME/.cordova-config/libs  <-- this gives us a folder to put
> >>other
> >> stuff into later, without littering $HOME with .cordova-this and
> >> .cordova-that
> >> - I would love to have the ability to use different cordova-lib versions
> >> within any project easily.  Changing the before-hook or adjusting the
> >>libs
> >> folder sound like global operations.  Can we support --libs-dir= command
> >> line flag to cordova-cli?  This should only need to be specified on
> >>create.
> >>
> >> -Michal
> >>
> >>
> >> On Fri, Jun 7, 2013 at 10:07 AM, Braden Shepherdson <
> braden@chromium.org
> >> >wrote:
> >>
> >> > The Apache Way of having source release bundles is important and we
> >> follow
> >> > it. But we can download content for CLI from wherever we please. We're
> >> > currently downloading the libs from npm, getting the code from npm and
> >> the
> >> > libs from Github doesn't change much.
> >> >
> >> > This is $HOME, as in /Users/me or /home/me or C:\Users\me\Application
> >> Data
> >> > or whatever it is on Windows? SGTM.
> >> >
> >> > The before hook should have the ability to substitute their own copy
> >>of
> >> the
> >> > libs from somewhere else, ideally a git URL/directory and revision.
> >>This
> >> > way it would be trivial to point CLI at master versions of platforms.
> >> >
> >> > Braden
> >> >
> >> >
> >> > On Fri, Jun 7, 2013 at 3:58 AM, Filip Maj <fil@adobe.com> wrote:
> >> >
> >> > > One of the last key outstanding tasks for the CLI is lazy loading
of
> >> > > platform libraries [1].
> >> > >
> >> > > I want to start tackling that tomorrow. I have a few
> >>points/questions
> >> to
> >> > > bring up and wanted to share my vision of the implementation, give
> >> folks
> >> > > an opportunity to comment.
> >> > >
> >> > > - where to download the source from?
> >> Archive.apache.org/dist/cordovaseems
> >> > > to have all of our releases, but each zip file contains ALL
> >>platforms,
> >> > not
> >> > > individual ones. Github.com, on the other hand, DOES offer
> >>per-platform
> >> > > downloads, for e.g. [2].
> >> > > - storing the location in HOME/.cordova-libs cool with people? I
> >>want
> >> to
> >> > > avoid naming the folder .cordova since that is already used on a
> >> > > per-project basis to identify the root of a cordova-cli-created
> >>project
> >> > (a
> >> > > la git).
> >> > > - I am thinking of exposing hooks/events for this
> >> > (before_library_download
> >> > > and after_library_download is my initial thought, which get passed
> >>in
> >> > > platform and version as event parameters/data).
> >> > >
> >> > > Comments/suggestions welcome. Thanks!
> >> > >
> >> > > Fil
> >> > >
> >> > > [1] https://issues.apache.org/jira/browse/CB-3306
> >> > > [2] https://github.com/apache/cordova-android/archive/2.8.0.zip
> >> > >
> >> > >
> >> >
> >>
>
>

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