cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian LeRoux...@brian.io>
Subject Re: [cordova-cli] versioning
Date Tue, 26 Mar 2013 17:22:20 GMT
Ok. I really like Mike's proposal. Think we should do this. Its solves
most of our woe. Slight caveat that I would like the cache to be in
the format of:

 ~/.cordova/<thing>/<name>/<version>

(To prevent weird string splitting logic/bugs emerging.)

Fil: can you backlog this? I think it should come AFTER we finish
fixing up plugman/jsinstall and at least one plugin xplatform done.


On Mon, Mar 25, 2013 at 3:26 PM, Michael Brooks
<michael@michaelbrooks.ca> wrote:
> With respect to the lazy-loading suggestion, I know Brian has raised the
> offline scenario on a previous thread.
>
> At install time of the CLI (`npm install -g cordova`), we can lazy-load all
> platforms and sample app(s) for a given version.
>
> At install time of the CLI as a library (`npm install cordova`), we can not
> lazy-load the platforms. This allows other distributions (e.g.
> `phonegap-cli`) to not be forced to download a large number of
> unnecessary files.
>
> Michael
>
> On Mon, Mar 25, 2013 at 3:18 PM, Filip Maj <fil@adobe.com> wrote:
>
>> Really like this. It a) slims down the cli tools by lazy loading the
>> libraries as they are needed and b) solves the upgrade/downgrade story,
>> since eventually you'll be able to simply change the version of the
>> cordova npm dependency at a project-level.
>>
>> The only "downside" (not really) is that every generated cordova-cli
>> project now is implicitly an npm project as it needs a package.json at the
>> top-level.
>>
>> On 3/25/13 11:06 AM, "Michael Brooks" <michael@michaelbrooks.ca> wrote:
>>
>> >+1 to locking the CLI to a version
>> >+1 to the Grunt vision
>> >
>> >However, I'd like to propose a different approach to the CLI versioning
>> >and
>> >it can also solve the `create` command issue to help move towards a dumb
>> >global `cordova`.
>> >
>> >## Cordova-CLI
>> >
>> >- npm version is still associated with a Cordova distribution
>> >- Cordova-CLI does not vendor the Cordova distribution
>> >- Adding a platform will lazy load the platform distribution into
>> >~/.cordova/platform/<name>-<version>/
>> >    - We can lazy load by downloading a gzip from the Apache Git web
>> >server
>> >- Next time the platform is needed, it is copied from
>> >~/.cordova/platform/<name>-<version/
>> >
>> >## Cordova Create
>> >
>> >- Creating an app should be a lazy load of the Hello World app
>> >   - Cached in ~/.cordova/app/<name>-<version>/
>> >- We can update the Hello World app to match a standard Cordova CLI
>> >project
>> >- Now the global Cordova CLI is a dumb tool
>> >   - On create: lazy loading or copying the hello world app
>> >   - On project command: shelling to ./node_modules/bin/cordova <command>
>> >
>> >On Fri, Mar 22, 2013 at 1:08 PM, Filip Maj <fil@adobe.com> wrote:
>> >
>> >> As Tommay pointed out, you need to create the cordova project structure
>> >>in
>> >> the first place with some manner of tool..
>> >>
>> >> On 3/22/13 11:58 AM, "tommy-carlos Williams" <tommy@devgeeks.org>
>> wrote:
>> >>
>> >> >I don't have much to add except that I really like this about Grunt.
>> >> >
>> >> >However, it would get "interesting" with Cordova since the global is
>> >>what
>> >> >creates a project in the first place. I still think it could work and
>> >> >have the global only responsible for creating dirs and setting up
>> >> >package.json stuff etc...
>> >> >
>> >> >+1 for looking into this.
>> >> >
>> >> >On 23/03/2013, at 4:53, Brian LeRoux <b@brian.io> wrote:
>> >> >
>> >> >> Right now the global executable is version locked to a Cordova
>> >> >> release. If you have a project running 2.5 you are required to
have
>> >> >> Cordova/CLI 2.5. If you need to then work in Cordova 2.4 you need
to
>> >> >> downgrade (not really but you would to be safe).
>> >> >>
>> >> >> In Grunt .4 the global executable is dumb. It just shells to locally
>> >> >> installed ./node_module version of Grunt. This enables project
level
>> >> >> versioning of Grunt. Nice feature. We can do the same thing: with
the
>> >> >> caveat that you would then require a package.json and ./node_modules
>> >> >> folder in our Cordova projects.
>> >> >>
>> >> >> Discuss.
>> >>
>> >>
>>
>>

Mime
View raw message