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 <mmo...@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 <bra...@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 <f...@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 > > > > > > > > >