cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Maj <...@adobe.com>
Subject Re: CLI lazy loading of libraries
Date Fri, 07 Jun 2013 21:38:43 GMT
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
View raw message