cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Maj <...@adobe.com>
Subject Re: [cordova-cli] versioning
Date Tue, 26 Mar 2013 23:04:23 GMT
Noted in https://issues.apache.org/jira/browse/CB-2163

On 3/26/13 11:34 AM, "Braden Shepherdson" <braden@chromium.org> wrote:

>+1 to having ~/.cordova/thing/name/version. I know we name our releases
>foo-version, but this is an unambiguous split on a character that isn't
>legal in plugin names.
>
>Braden
>
>
>On Tue, Mar 26, 2013 at 1:34 PM, Michael Brooks
><michael@michaelbrooks.ca>wrote:
>
>> >
>> >  ~/.cordova/<thing>/<name>/<version>
>>
>>
>> I originally wrote this but expected some backlash on breaking our
>> <name>-<version> convention. I agree, it makes the tool parsing easier.
>>
>> One thing, though: cordova-cli currently runs up the file tree searching
>> > for '.cordova' to identify a cordova-cli-generated project root (like
>> > git). Can we rename the cache folder to something other than .cordova?
>> > .cordovalibs or something?
>>
>>
>> I think we can solve this without renaming:
>>
>>     if .cordova path is HOME_DIR
>>        then path is not a project
>>
>> Thoughts?
>> Michael
>>
>> On Tue, Mar 26, 2013 at 10:24 AM, Filip Maj <fil@adobe.com> wrote:
>>
>> > Yep, on it, and agree.
>> >
>> > One thing, though: cordova-cli currently runs up the file tree
>>searching
>> > for '.cordova' to identify a cordova-cli-generated project root (like
>> > git). Can we rename the cache folder to something other than .cordova?
>> > .cordovalibs or something?
>> >
>> > On 3/26/13 10:22 AM, "Brian LeRoux" <b@brian.io> wrote:
>> >
>> > >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