cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeffrey Heifetz <jheif...@blackberry.com>
Subject Re: PROPOSAL: node.js all the script things
Date Mon, 26 Aug 2013 23:40:24 GMT
We've been doing all our scripts in node and have yet to find a better route than ".bat" scripts
that call in. So I'm interested if anyone knows of one.

Sent from my BlackBerry 10 smartphone on the Rogers network.
From: Benn Mapes
Sent: Monday, August 26, 2013 5:53 PM
To: dev@cordova.apache.org
Reply To: dev@cordova.apache.org
Subject: Re: PROPOSAL: node.js all the script things


Ok, I'm pushing up these changes to the android master branch.

The only problem I see arising is the fact that you need a 'node' prefix
before any of the commands on windows. This will break the CLI for android
on windows (maybe plugman too), unless we update the tooling to require the
node modules instead.

I added .bat files (which I really didn't want to) to account for this
discrepancy as a temporary solution, but I think we should figure out a
better way to do this in the future.

Please log any bugs you find with the scripts and assign them to me. I know
if one with the ulimit in the terminal being set too low, still gotta
figure this one out, it usually errors when waiting for the emulator unless
you set your ulimit higher.

~Benn


On Mon, Aug 19, 2013 at 2:32 PM, Benn Mapes <benn.mapes@gmail.com> wrote:

> Ok, I've started with the node tooling for android and put it up on github.
> https://github.com/bennmapes/cordova-android/tree/node-toolin
>
> If someone can take a look at it and maybe add some suggestions that would
> be awesome. I added a project.properties file to the root/bin folder so you
> can `cd` into that folder and run npm install to get the node modules (I
> only used shell js, and the node_modules folder gets copied to each created
> project).
>
> I ran into a ulimit problem when waiting for the android emulator, I know
> Andrew solved this for the coho script but I wasn't able to get it working
> on this one so maybe you could shed some light?
>
> Because you can't have executable (at least not that I know of) node
> scripts in windows you need to call it with a node prefix. Such as `node
> bin\create asdf`
>
> I can also push this branch up to apache if people want it up there, I
> didn't want to clutter the repo.
>
> Cheers,
> ~Benn
>
>
> On Mon, Aug 12, 2013 at 1:02 PM, Filip Maj <fil@adobe.com> wrote:
>
>> An unofficial tally of opinion so far:
>>
>> Android only: Jesse, Anis, Andrew, Lorin
>> All: Fil, Frank Henning, Matt Lantz
>>
>> Benn's vote counts as "do android now/soon, with all eventually".
>>
>> So putting effort into this venture for Android seems to be supported for
>> now.
>>
>> If anyone is interested in kicking that off, it's filed as CB-3542 [1].
>>
>> [1] https://issues.apache.org/jira/browse/CB-3542
>>
>>
>> On 8/12/13 12:26 PM, "Jesse" <purplecabbage@gmail.com> wrote:
>>
>> >The question is not _are_ there benefit, but what value do that they
>> >bring,
>> >versus the effort to do it?
>> >In my opinion rewriting it presents a greater risk than (for example)
>> >having a Log utility function duplicated across files, as it will _never_
>> >change.
>> >To me this is a case of knowing what and when to optimize.
>> >
>> >We've already talked about this too much, so I will go with whatever the
>> >consensus is.
>> >
>> >
>> >
>> >
>> >@purplecabbage
>> >risingj.com
>> >
>> >
>> >On Mon, Aug 12, 2013 at 11:58 AM, Filip Maj <fil@adobe.com> wrote:
>> >
>> >> One thing about the windows sets of scripts (Jscript-based) is that it
>> >>is
>> >> a primitive scripting language. From what I can tell (please correct me
>> >>if
>> >> I'm wrong) there's no concept of modules, so code re-use is a problem,
>> >> which leads us to roll with copy-paste jobs such as the Log function
>> [1]
>> >> [2] [3] and the exec function [4] [5].
>> >>
>> >> I agree forging ahead and rewriting a bunch of stuff just for the sake
>> >>of
>> >> consistency is make-work, but there _are_ benefits that would come out
>> >>of
>> >> these efforts.
>> >>
>> >> [1]
>> >>
>> >>
>> https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li
>> >>b/
>> >> deploy.js#L72
>> >> [2]
>> >>
>> >>
>> https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li
>> >>b/
>> >> clean.js#L39
>> >> [3]
>> >>
>> >>
>> https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li
>> >>b/
>> >> build.js#L44
>> >> [4]
>> >>
>> >>
>> https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li
>> >>b/
>> >> deploy.js#L94
>> >> [5]
>> >>
>> >>
>> https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li
>> >>b/
>> >> build.js#L54
>> >>
>> >> On 8/12/13 10:18 AM, "Benn Mapes" <benn.mapes@gmail.com> wrote:
>> >>
>> >> >+1 to this thread.
>> >> >
>> >> >I say we work on BB/Android first but it would be nice to have all the
>> >> >tooling eventually in node (for consistency/maintainability). For the
>> >> >windows tooling, it's mostly in JScript at the moment anyways so the
>> >>code
>> >> >could pretty much stay the same by just updating a few of the basic
>> >> >functions such as logging, exec, and read/write.
>> >> >
>> >> >
>> >> >On Mon, Aug 12, 2013 at 9:11 AM, Lorin Beer
>> >> ><lorin.beer.dev@gmail.com>wrote:
>> >> >
>> >> >> this conversation has been continuing on and offline around the
>> >> >> watercooler.
>> >> >>
>> >> >> +1 for Jesse's concern.
>> >> >>
>> >> >> There is absolutely no value in throwing out working bat scripts
and
>> >> >> rewriting them in node. It's makework.
>> >> >>
>> >> >> For BB10, the scripts were written in node in the first place,
and
>> >> >>bash/bat
>> >> >> scripts invoke the node scripts. The inverse would be fine for
>> WP7/8.
>> >> >>Node
>> >> >> alias invokes bat script.
>> >> >>
>> >> >>
>> >> >> On Wed, Aug 7, 2013 at 12:51 PM, Jesse <purplecabbage@gmail.com>
>> >>wrote:
>> >> >>
>> >> >> > No, I have not yet seen it, sounds sweet, and I applaud your
>> >> >>commitment.
>> >> >> > The comment was based on historical data; I am still optimistic
>> for
>> >> >>the
>> >> >> > future.
>> >> >> > You will of course need to upgrade/downgrade to Windows 8
to
>> >> >>develop/test
>> >> >> > for Windows 8, or Windows Phone 8.
>> >> >> >
>> >> >> > @purplecabbage
>> >> >> > risingj.com
>> >> >> >
>> >> >> >
>> >> >> > On Wed, Aug 7, 2013 at 12:14 PM, Filip Maj <fil@adobe.com>
wrote:
>> >> >> >
>> >> >> > > I resent that comment about lack of Windows testing!
Have you
>> >>seen
>> >> >>my
>> >> >> > > sweet swivel-monitor laptop that I have Windows 7 on?
>> >> >> > >
>> >> >> > > On 8/7/13 12:11 PM, "Jesse" <purplecabbage@gmail.com>
wrote:
>> >> >> > >
>> >> >> > > >Well, given that only Benn, and myself have contributed
to the
>> >> >>windows
>> >> >> > 8,
>> >> >> > > >and windows phone platform scripts, and no one else
even seems
>> >> >>willing
>> >> >> > to
>> >> >> > > >test the windows phone platform, it seems unfair
to suggest we
>> >> >>throw
>> >> >> > away
>> >> >> > > >working code, and rewrite it just for fun.
>> >> >> > > >
>> >> >> > > >Having a dependency on node is not a big deal, it
is the 30+
>> >>other
>> >> >>npm
>> >> >> > > >libraries that always seem to come along, each with
varying
>> >>support
>> >> >> for
>> >> >> > > >windows, that I have issues with.
>> >> >> > > >
>> >> >> > > >I will consider writing you a node callable facade,
that still
>> >> >>calls
>> >> >> the
>> >> >> > > >.bat and wsh files behind the scenes.
>> >> >> > > >
>> >> >> > > >
>> >> >> > > >
>> >> >> > > >@purplecabbage
>> >> >> > > >risingj.com
>> >> >> > > >
>> >> >> > > >
>> >> >> > > >On Wed, Aug 7, 2013 at 11:40 AM, Steven Gill
>> >> >><stevengill97@gmail.com>
>> >> >> > > >wrote:
>> >> >> > > >
>> >> >> > > >> To install any plugins you at least need plugman
which
>> >>requires
>> >> >> node.
>> >> >> > > >>Our
>> >> >> > > >> users are most likely going to have to install
node as a
>> >> >>dependency
>> >> >> at
>> >> >> > > >>some
>> >> >> > > >> point. I don't see why having it as a dependency
for platform
>> >> >> > libraries
>> >> >> > > >>is
>> >> >> > > >> such a big deal.
>> >> >> > > >>
>> >> >> > > >>
>> >> >> > > >> On Wed, Aug 7, 2013 at 11:34 AM, M. Lantz
>> >><mattlantz@gmail.com>
>> >> >> > wrote:
>> >> >> > > >>
>> >> >> > > >> > +1
>> >> >> > > >> >
>> >> >> > > >> > Agreed I pretty much only use Cordova cli
at this stage to
>> >>make
>> >> >> apps
>> >> >> > > >>and
>> >> >> > > >> > as such don't have any issues keeping my
node up to date or
>> >> >> relying
>> >> >> > > >>on is
>> >> >> > > >> > as a dependency.
>> >> >> > > >> >
>> >> >> > > >> > M. Lantz
>> >> >> > > >> >
>> >> >> > > >> > On 2013-08-07, at 1:07 PM, Frank Hennig
<
>> >> >> fhe.development@gmail.com>
>> >> >> > > >> wrote:
>> >> >> > > >> >
>> >> >> > > >> > > +1 for all platforms
>> >> >> > > >> > >
>> >> >> > > >> > > I think it's not really an completely
new dependency.
>> Some
>> >> >> > > >>components
>> >> >> > > >> > actually depends on node.js like cordova-cli
and plugman.
>> >>Many
>> >> >> > > >>developers
>> >> >> > > >> > of cordova app's actually using grunt or
bower and other
>> >>node
>> >> >> > related
>> >> >> > > >> stuff
>> >> >> > > >> > to lint or to test their html and js code.
>> >> >> > > >> > >
>> >> >> > > >> > > A consistent tool and script language
it's easier to
>> >> >>maintain an
>> >> >> > to
>> >> >> > > >> > debug.
>> >> >> > > >> > >
>> >> >> > > >> > >
>> >> >> > > >> > > On Aug 7, 2013, at 12:14 AM, Filip
Maj wrote:
>> >> >> > > >> > >
>> >> >> > > >> > >> I would like to introduce node.js
as a dependency for
>> the
>> >> >> > platform
>> >> >> > > >> > >> libraries, so that the platform
scripts (bin/create,
>> >> >> cordova/run,
>> >> >> > > >>etc)
>> >> >> > > >> > are
>> >> >> > > >> > >> written in node.
>> >> >> > > >> > >>
>> >> >> > > >> > >> Pros:
>> >> >> > > >> > >> - For multi-OS platforms (Android,
BlackBerry), this
>> >>reduces
>> >> >> > > >>committer
>> >> >> > > >> > >> cognitive load as the scripts
do not need to be authored
>> >>in
>> >> >>two
>> >> >> > > >> > different
>> >> >> > > >> > >> script languages (I.e. Shell for
unix-y Oses, Wscript
>> for
>> >> >> > Windows)
>> >> >> > > >> > >> - consistency in tool/script language.
Cordova-js, coho,
>> >>cli
>> >> >> and
>> >> >> > > >> plugman
>> >> >> > > >> > >> are all written on top of node.js.
>> >> >> > > >> > >>
>> >> >> > > >> > >> Cons:
>> >> >> > > >> > >> - Introducing a new dependency
>> >> >> > > >> > >>
>> >> >> > > >> > >> NB: This is separate from platform-spec;
I would like to
>> >>see
>> >> >> > > >> > platform-spec
>> >> >> > > >> > >> created/used regardless of the
outcome of this thread.
>> >> >> > > >> > >
>> >> >> > > >> >
>> >> >> > > >>
>> >> >> > >
>> >> >> > >
>> >> >> >
>> >> >>
>> >>
>> >>
>>
>>
>

---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential information, privileged
material (including material protected by the solicitor-client or other applicable privileges),
or constitute non-public information. Any use of this information by anyone other than the
intended recipient is prohibited. If you have received this transmission in error, please
immediately reply to the sender and delete this information from your system. Use, dissemination,
distribution, or reproduction of this transmission by unintended recipients is not authorized
and may be unlawful.

Mime
View raw message