You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com> on 2015/04/13 20:53:27 UTC

Proposal: Expose check_reqs at the CLI level

Hi,

One of the main problems a lot of developers seem to have is the issue to setting up their machines for building various platforms. This came out from the Stack overflow survey, and the number of questions on stack overflow, twitter. Etc.

I thought it would be helpful to have a check_reqs command exposed at the CLI level. This is similar to `brew doctor` or `appium doctor`. The idea is


1.       Have a way for the user to see if they have all dependencies (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but moving it out to a CLI level command where you can run cordova check_reqs (or something similar) would be useful to the users.

2.       Today, the build command shows one error at a time. The check_reqs could run all the checks, and show a summary of the issues so that the user can fix them all, instead of fixing one, running build, fixing again, etc.

What does the community think of this idea ? Can we implement a prototype and see if this is useful to our developers ?
Note that this does not change or break existing functionality - it just exposes the already existing check_reqs in the CLI. Build will continue to call check_reqs.

Please vote on this proposal, or raise any concerns you may have.

Re: Proposal: Expose check_reqs at the CLI level

Posted by ta...@developerhut.co.za.
I recently got started with Cordova and this was one of my biggest problems. It would be even better if the command could provide hints on how to fix the issues. 




Regards,
Taylor Gibb


CEO and Founder - Developer Hut | Microsoft MVP | FoRG 





From: Shazron
Sent: ‎Monday‎, ‎April‎ ‎13‎, ‎2015 ‎8‎:‎56‎ ‎PM
To: dev@cordova.apache.org





+1
This will be great for users

On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH)
<pa...@microsoft.com> wrote:
> Hi,
>
> One of the main problems a lot of developers seem to have is the issue to setting up their machines for building various platforms. This came out from the Stack overflow survey, and the number of questions on stack overflow, twitter. Etc.
>
> I thought it would be helpful to have a check_reqs command exposed at the CLI level. This is similar to `brew doctor` or `appium doctor`. The idea is
>
>
> 1.       Have a way for the user to see if they have all dependencies (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but moving it out to a CLI level command where you can run cordova check_reqs (or something similar) would be useful to the users.
>
> 2.       Today, the build command shows one error at a time. The check_reqs could run all the checks, and show a summary of the issues so that the user can fix them all, instead of fixing one, running build, fixing again, etc.
>
> What does the community think of this idea ? Can we implement a prototype and see if this is useful to our developers ?
> Note that this does not change or break existing functionality - it just exposes the already existing check_reqs in the CLI. Build will continue to call check_reqs.
>
> Please vote on this proposal, or raise any concerns you may have.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Treggiari, Leo" <le...@intel.com>.
+1   It sounds like a very good thing to do.

Leo

-----Original Message-----
From: Jesse [mailto:purplecabbage@gmail.com] 
Sent: Monday, April 13, 2015 12:24 PM
To: dev@cordova.apache.org
Subject: Re: Proposal: Expose check_reqs at the CLI level

Everyone's +1's count! It's the -1's that may be scrutinized

@purplecabbage
risingj.com

On Mon, Apr 13, 2015 at 12:11 PM, Dmitry Blotsky <db...@microsoft.com>
wrote:

> +1 for me too, even though my +1 points don't matter :)
>
> I've actually run into this issue when writing documentation for setting
> up slaves for medic. My short documentation is here:
> https://github.com/apache/cordova-medic/blob/master/SLAVES.md, but it is
> best for it to refer to the official Cordova docs instead.
>
> Should we make a JIRA task for better docs and automated platform
> dependency detection?
>
> Kindly,
> Dmitry
>
> -----Original Message-----
> From: Shazron [mailto:shazron@gmail.com]
> Sent: Monday, April 13, 2015 11:56 AM
> To: dev@cordova.apache.org
> Subject: Re: Proposal: Expose check_reqs at the CLI level
>
> +1
> This will be great for users
>
> On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH) <
> panarasi@microsoft.com> wrote:
> > Hi,
> >
> > One of the main problems a lot of developers seem to have is the issue
> to setting up their machines for building various platforms. This came out
> from the Stack overflow survey, and the number of questions on stack
> overflow, twitter. Etc.
> >
> > I thought it would be helpful to have a check_reqs command exposed at
> > the CLI level. This is similar to `brew doctor` or `appium doctor`.
> > The idea is
> >
> >
> > 1.       Have a way for the user to see if they have all dependencies
> (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> moving it out to a CLI level command where you can run cordova check_reqs
> (or something similar) would be useful to the users.
> >
> > 2.       Today, the build command shows one error at a time. The
> check_reqs could run all the checks, and show a summary of the issues so
> that the user can fix them all, instead of fixing one, running build,
> fixing again, etc.
> >
> > What does the community think of this idea ? Can we implement a
> prototype and see if this is useful to our developers ?
> > Note that this does not change or break existing functionality - it just
> exposes the already existing check_reqs in the CLI. Build will continue to
> call check_reqs.
> >
> > Please vote on this proposal, or raise any concerns you may have.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>

Re: Proposal: Expose check_reqs at the CLI level

Posted by Jesse <pu...@gmail.com>.
Everyone's +1's count! It's the -1's that may be scrutinized

@purplecabbage
risingj.com

On Mon, Apr 13, 2015 at 12:11 PM, Dmitry Blotsky <db...@microsoft.com>
wrote:

> +1 for me too, even though my +1 points don't matter :)
>
> I've actually run into this issue when writing documentation for setting
> up slaves for medic. My short documentation is here:
> https://github.com/apache/cordova-medic/blob/master/SLAVES.md, but it is
> best for it to refer to the official Cordova docs instead.
>
> Should we make a JIRA task for better docs and automated platform
> dependency detection?
>
> Kindly,
> Dmitry
>
> -----Original Message-----
> From: Shazron [mailto:shazron@gmail.com]
> Sent: Monday, April 13, 2015 11:56 AM
> To: dev@cordova.apache.org
> Subject: Re: Proposal: Expose check_reqs at the CLI level
>
> +1
> This will be great for users
>
> On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH) <
> panarasi@microsoft.com> wrote:
> > Hi,
> >
> > One of the main problems a lot of developers seem to have is the issue
> to setting up their machines for building various platforms. This came out
> from the Stack overflow survey, and the number of questions on stack
> overflow, twitter. Etc.
> >
> > I thought it would be helpful to have a check_reqs command exposed at
> > the CLI level. This is similar to `brew doctor` or `appium doctor`.
> > The idea is
> >
> >
> > 1.       Have a way for the user to see if they have all dependencies
> (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> moving it out to a CLI level command where you can run cordova check_reqs
> (or something similar) would be useful to the users.
> >
> > 2.       Today, the build command shows one error at a time. The
> check_reqs could run all the checks, and show a summary of the issues so
> that the user can fix them all, instead of fixing one, running build,
> fixing again, etc.
> >
> > What does the community think of this idea ? Can we implement a
> prototype and see if this is useful to our developers ?
> > Note that this does not change or break existing functionality - it just
> exposes the already existing check_reqs in the CLI. Build will continue to
> call check_reqs.
> >
> > Please vote on this proposal, or raise any concerns you may have.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>

RE: Proposal: Expose check_reqs at the CLI level

Posted by Dmitry Blotsky <db...@microsoft.com>.
+1 for me too, even though my +1 points don't matter :)

I've actually run into this issue when writing documentation for setting up slaves for medic. My short documentation is here: https://github.com/apache/cordova-medic/blob/master/SLAVES.md, but it is best for it to refer to the official Cordova docs instead.

Should we make a JIRA task for better docs and automated platform dependency detection?

Kindly,
Dmitry

-----Original Message-----
From: Shazron [mailto:shazron@gmail.com] 
Sent: Monday, April 13, 2015 11:56 AM
To: dev@cordova.apache.org
Subject: Re: Proposal: Expose check_reqs at the CLI level

+1
This will be great for users

On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH) <pa...@microsoft.com> wrote:
> Hi,
>
> One of the main problems a lot of developers seem to have is the issue to setting up their machines for building various platforms. This came out from the Stack overflow survey, and the number of questions on stack overflow, twitter. Etc.
>
> I thought it would be helpful to have a check_reqs command exposed at 
> the CLI level. This is similar to `brew doctor` or `appium doctor`. 
> The idea is
>
>
> 1.       Have a way for the user to see if they have all dependencies (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but moving it out to a CLI level command where you can run cordova check_reqs (or something similar) would be useful to the users.
>
> 2.       Today, the build command shows one error at a time. The check_reqs could run all the checks, and show a summary of the issues so that the user can fix them all, instead of fixing one, running build, fixing again, etc.
>
> What does the community think of this idea ? Can we implement a prototype and see if this is useful to our developers ?
> Note that this does not change or break existing functionality - it just exposes the already existing check_reqs in the CLI. Build will continue to call check_reqs.
>
> Please vote on this proposal, or raise any concerns you may have.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


Re: Proposal: Expose check_reqs at the CLI level

Posted by Jesse <pu...@gmail.com>.
+1
Sounds great!

@purplecabbage
risingj.com

On Mon, Apr 13, 2015 at 11:56 AM, Shazron <sh...@gmail.com> wrote:

> +1
> This will be great for users
>
> On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH)
> <pa...@microsoft.com> wrote:
> > Hi,
> >
> > One of the main problems a lot of developers seem to have is the issue
> to setting up their machines for building various platforms. This came out
> from the Stack overflow survey, and the number of questions on stack
> overflow, twitter. Etc.
> >
> > I thought it would be helpful to have a check_reqs command exposed at
> the CLI level. This is similar to `brew doctor` or `appium doctor`. The
> idea is
> >
> >
> > 1.       Have a way for the user to see if they have all dependencies
> (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> moving it out to a CLI level command where you can run cordova check_reqs
> (or something similar) would be useful to the users.
> >
> > 2.       Today, the build command shows one error at a time. The
> check_reqs could run all the checks, and show a summary of the issues so
> that the user can fix them all, instead of fixing one, running build,
> fixing again, etc.
> >
> > What does the community think of this idea ? Can we implement a
> prototype and see if this is useful to our developers ?
> > Note that this does not change or break existing functionality - it just
> exposes the already existing check_reqs in the CLI. Build will continue to
> call check_reqs.
> >
> > Please vote on this proposal, or raise any concerns you may have.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>

Re: Proposal: Expose check_reqs at the CLI level

Posted by Shazron <sh...@gmail.com>.
+1
This will be great for users

On Mon, Apr 13, 2015 at 11:53 AM, Parashuram N (MS OPEN TECH)
<pa...@microsoft.com> wrote:
> Hi,
>
> One of the main problems a lot of developers seem to have is the issue to setting up their machines for building various platforms. This came out from the Stack overflow survey, and the number of questions on stack overflow, twitter. Etc.
>
> I thought it would be helpful to have a check_reqs command exposed at the CLI level. This is similar to `brew doctor` or `appium doctor`. The idea is
>
>
> 1.       Have a way for the user to see if they have all dependencies (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but moving it out to a CLI level command where you can run cordova check_reqs (or something similar) would be useful to the users.
>
> 2.       Today, the build command shows one error at a time. The check_reqs could run all the checks, and show a summary of the issues so that the user can fix them all, instead of fixing one, running build, fixing again, etc.
>
> What does the community think of this idea ? Can we implement a prototype and see if this is useful to our developers ?
> Note that this does not change or break existing functionality - it just exposes the already existing check_reqs in the CLI. Build will continue to call check_reqs.
>
> Please vote on this proposal, or raise any concerns you may have.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


Re: Proposal: Expose check_reqs at the CLI level

Posted by Sachax <me...@sachax.com>.
Absolutely +1

Sent from my iPhone - 4eSPJ
Sacha Herbert





Website: 	www.sachax.com
Studio: 	Via A. Bertani, 20a - 00153 Roma
Office:	+39 06 933 798 66
Mobile: 	+39 392 188 0793
Twitter: 	sachax08
Skype: 	as3_master



 




Il presente messaggio e-mail contiene informazioni confidenziali indirizzate esclusivamente alle persone sopra indicate. Se il ricevente non è tra dette persone, il presente messaggio e-mail non dovrà essere copiato, reso noto o altrimenti distribuito in alcun modo. Se avete per errore ricevuto il presente messaggio, informate di ciò  il mittente con urgenza e cancellate il messaggio dal vostro sistema. Trasmissioni via e-mail non possono essere garantite in merito alla loro sicurezza o correttezza poiché mezzi di comunicazione che possono essere intercettati, corrotti, persi, distrutti, trasmessi in ritardo o in modo incompleto, nonche' contenenti virus. Il mittente perciò non potra' accettare alcuna responsabilità per errori o omissioni nei contenuti del presente messaggio, quale conseguenza della suatrasmissione.  Qualora fosse necessaria una verifica, siete pregati di richiedere  copia cartacea del presente messaggio.
This message contains confidential information and is intended only for the named addressee. If you are not named addressee you should not copy or distribute this e-mail. If you have received this e-mail by mistake,please notify the sender immediately and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrivelate or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.


> On 13 Apr 2015, at 20:53, Parashuram N (MS OPEN TECH) <pa...@microsoft.com> wrote:
> 
> Hi,
> 
> One of the main problems a lot of developers seem to have is the issue to setting up their machines for building various platforms. This came out from the Stack overflow survey, and the number of questions on stack overflow, twitter. Etc.
> 
> I thought it would be helpful to have a check_reqs command exposed at the CLI level. This is similar to `brew doctor` or `appium doctor`. The idea is
> 
> 
> 1.       Have a way for the user to see if they have all dependencies (like JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but moving it out to a CLI level command where you can run cordova check_reqs (or something similar) would be useful to the users.
> 
> 2.       Today, the build command shows one error at a time. The check_reqs could run all the checks, and show a summary of the issues so that the user can fix them all, instead of fixing one, running build, fixing again, etc.
> 
> What does the community think of this idea ? Can we implement a prototype and see if this is useful to our developers ?
> Note that this does not change or break existing functionality - it just exposes the already existing check_reqs in the CLI. Build will continue to call check_reqs.
> 
> Please vote on this proposal, or raise any concerns you may have.

Re: Proposal: Expose check_reqs at the CLI level

Posted by julio cesar sanchez <jc...@gmail.com>.
+1 to Josh, I think it should be possible to check even before you create a
project


El miércoles, 15 de abril de 2015, Josh Soref <js...@blackberry.com>
escribió:

> We already support:
>
> `cordova build android`
>
> There's no need for the extra `platform` verb..
>
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the
> extra
> "platform".
>
>
> And yes, as I noted, and others have noted, we used to run check_reqs in
> add,
> we're not going back to doing that.
>
> A `cordova doctor` or `cordova requirements` verb seems fine.
>
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor
> PLATFORM`,
>
> As for when someone is likely to want to ask "what requirements do I need
> for
> a platform", it's fairly arbitrary.
>
> Someone who is given a project might know that they don't have the
> environment
> for a platform, they aren't likely to want to go down a "build" rabbit
> hole,
> so, I'm -1 on hiding it anywhere near build.
>
> It's perfectly reasonable from my perspective for someone to want to run
> `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know they
> want
> to develop for PLATFORM, they could reasonably want to set up their
> requirements for that platform before trying to create a project...
>
> I don't know if anyone's check_reqs scripts actually requires a project, I
> actually think they don't, so it's probably sufficient to run them straight
> from the platform origin instead of from a created project.
>
> One notable thing: check_reqs isn't a .js file yet, as an API, it's
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT% (Windows)
>
> > -----Original Message-----
> > From: agrieve@google.com <javascript:;> [mailto:agrieve@google.com
> <javascript:;>] On Behalf Of
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a good
> > idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <leo.treggiari@intel.com
> <javascript:;>>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  If
> > > requirements
> > > used to be checked on 'platform add', then I suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something
> (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com
> <javascript:;>]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org <javascript:;>
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of check_reqs
> for
> > > platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform and
> > > report results.
> > > 1.5 - Just download the check_reqs script (or use it from the cached
> > > platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want to
> run
> > > the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or when
> it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top
> level
> > > req_check is required or not. We should also look at what check_reqs do
> > > today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think about
> > > these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com <javascript:;>]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org <javascript:;>
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > > cordova platform doctor $PLATFORM;
> > > (cordova platform remove $PLATFORM 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the temporary
> > > project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform
> requirements
> > > [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to do
> so,
> > > but it's an incredibly ugly thing and doesn't belong in a public facing
> > > interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com
> <javascript:;>]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org <javascript:;>
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <csantana23@gmail.com
> <javascript:;>> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently
> check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the platform
> > > > >check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to cli
> repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is present
> in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <jsoref@blackberry.com
> <javascript:;>>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter
> should
> > > > >>support
> > > > >> doctoring for available but not added platforms -- if said
> platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` that
> it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate to
> people
> > > > >>that
> > > > >> the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we
> introduced
> > > > >>when
> > > > >> we
> > > > >> made `cordova platform add` not call check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com <javascript:;>]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org <javascript:;>
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. This
> came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`.
> The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time,
> > but
> > > > >> > moving it out to a CLI level command where you can run cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues so
> that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing functionality
> - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will continue
> to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may
> have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><csantana23@gmail.com <javascript:;>>
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> <javascript:;>
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> <javascript:;>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> <javascript:;>
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> <javascript:;>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> <javascript:;>
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> <javascript:;>
> > >
> > >
>

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Vladimir Kotikov (Akvelon)" <v-...@microsoft.com>.
Hey, guys.

Leo and Josh's feedback is addressed and since there is no more issues, I'm going to merge these changes tomorrow.
If there is still any notes/questions, please let me know.

---------------
Best regards, Vladimir

-----Original Message-----
From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com] 
Sent: Thursday, 23 April, 2015 21:39
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Yes,  check_reqs logic is still being executed on each build by platform build script and it's not executed in `platform add`

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
Sent: Thursday, April 23, 2015 9:04 PM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Also,  Vlad, can you confirm if check_reqs runs on build, or on platform add ?

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
Sent: Thursday, April 23, 2015 11:00 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

My bad - I did not mean that this will run "when" platform is added. I mean, this can run only when a project is present and platform has already been added. For this first phase, we are not implementing this command for a platform that has not already been added to the project.  

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Thursday, April 23, 2015 10:52 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

You mean run but not error?

Because, again, this code *used* to run when platforms were added -- except, that then it errored when the requirements weren’t satisfied.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Thursday, April 23, 2015 1:23 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> I think as the first step, it would make sense to run it when platform 
> is added and project is present. We could change it later to run a system wide check.
> For now, this just picks up what check_reqs already does.
> 
> We may need another effort to improve check_reqs itself.
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Thursday, April 23, 2015 1:28 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, Leo. Thanks for feedback!
> 
> I've changed verb name to "requirements" because it looks like it is a 
> happy medium for the majority.
> Updated code for cordova lib and cordova-cli submitted through the 
> following PRs: https://github.com/apache/cordova-cli/pull/212
> https://github.com/apache/cordova-lib/pull/208.
> 
> Regarding your questions:
> 1. The specification for command is exactly the same as you mentioned:
> 
> 	cordova requirements [platform...]
> 
> I've also added a help file to cordova-cli, so 'cordova help 
> requirements' will work now, and will provide all information about usage.
> 
> 2. There are no special options for requirements command. There are 
> common options for all cli commands like '--sillent' and '--verbose'
> and they're supported automatically.
> 
> 3. The command requires a project and platform added to project. This 
> was the fastest way to implement it, and it could be changed in future 
> if we decide to support case when project doesn't exists.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, 22 April, 2015 18:11
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments 
> below are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a 
> specification of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option 
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already 
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to 
> users - i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many 
> times does a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated 
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no 
> agreement about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` 
> sounds better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been 
> sent. I think this is just a way for folks to play with what Vlad has 
> now. I am sure we will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova 
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command 
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls 
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> > around platforms' check_reqs scripts. It returns a promise, either 
> > resolved if check_reqs platform script is found and ran successfully 
> > or rejected in case if check_reqs script is failed due to some 
> > internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array 
> > of requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if 
> > requirement is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if 
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed 
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project 
> > seems harder, I would suggest we make it a part of a second phase of 
> > this implementation. For now, we have a basic version that simply 
> > abstracts out existing check_reqs into a separate, platform level 
> > command. This could be a good first phase, and should also give us 
> > an idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to 
> > build on a cordova level check reqs, and possibly extend it to 
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ 
> > the extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run 
> > check_reqs in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I 
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the 
> > environment for a platform, they aren't likely to want to go down a 
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to 
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know 
> > they want to develop for PLATFORM, they could reasonably want to set 
> > up their requirements for that platform before trying to create a 
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a 
> > project, I actually think they don't, so it's probably sufficient to 
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's 
> > > a good idea to *not* run check_reqs from add (we used to but 
> > > removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is 
> > > > added, or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I 
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As 
> > > > a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project 
> > > > I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do 
> > > > something (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of 
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the 
> > > > platform and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the 
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user 
> > > > want to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, 
> > > > or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a 
> > > > top level req_check is required or not. We should also look at 
> > > > what check_reqs do today - the do not tell you ALL the missing 
> > > > pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think 
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, 
> > > > I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add 
> > > > the
> > platform
> > > > to the temporary project), and then run platform doctor, and 
> > > > then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the 
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform 
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome 
> > > > to do so, but it's an incredibly ugly thing and doesn't belong 
> > > > in a public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH) 
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform 
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the 
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to 
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for 
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is 
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the 
> > > > > >>latter should support  doctoring for available but not added 
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor` 
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we 
> > > > > >>introduced when  we  made `cordova platform add` not call 
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have 
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on 
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs 
> > > > > >> > command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run 
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the 
> > > > > >> > issues so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build, 
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we 
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing 
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you 
> > > > > >> > may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > --------------------------------------------------------------
> > > > > --
> > > > > ----- To unsubscribe, e-mail: 
> > > > > dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org B 
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org B KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCB  [  X  ܚX KK[XZ[
 ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
 ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Vladimir Kotikov (Akvelon)" <v-...@microsoft.com>.
Yes,  check_reqs logic is still being executed on each build by platform build script and it's not executed in `platform add`

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Thursday, April 23, 2015 9:04 PM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Also,  Vlad, can you confirm if check_reqs runs on build, or on platform add ?

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
Sent: Thursday, April 23, 2015 11:00 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

My bad - I did not mean that this will run "when" platform is added. I mean, this can run only when a project is present and platform has already been added. For this first phase, we are not implementing this command for a platform that has not already been added to the project.  

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Thursday, April 23, 2015 10:52 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

You mean run but not error?

Because, again, this code *used* to run when platforms were added -- except, that then it errored when the requirements weren’t satisfied.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Thursday, April 23, 2015 1:23 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> I think as the first step, it would make sense to run it when platform 
> is added and project is present. We could change it later to run a system wide check.
> For now, this just picks up what check_reqs already does.
> 
> We may need another effort to improve check_reqs itself.
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Thursday, April 23, 2015 1:28 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, Leo. Thanks for feedback!
> 
> I've changed verb name to "requirements" because it looks like it is a 
> happy medium for the majority.
> Updated code for cordova lib and cordova-cli submitted through the 
> following PRs: https://github.com/apache/cordova-cli/pull/212
> https://github.com/apache/cordova-lib/pull/208.
> 
> Regarding your questions:
> 1. The specification for command is exactly the same as you mentioned:
> 
> 	cordova requirements [platform...]
> 
> I've also added a help file to cordova-cli, so 'cordova help 
> requirements' will work now, and will provide all information about usage.
> 
> 2. There are no special options for requirements command. There are 
> common options for all cli commands like '--sillent' and '--verbose'
> and they're supported automatically.
> 
> 3. The command requires a project and platform added to project. This 
> was the fastest way to implement it, and it could be changed in future 
> if we decide to support case when project doesn't exists.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, 22 April, 2015 18:11
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments 
> below are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a 
> specification of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option 
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already 
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to 
> users - i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many 
> times does a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated 
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no 
> agreement about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` 
> sounds better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been 
> sent. I think this is just a way for folks to play with what Vlad has 
> now. I am sure we will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova 
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command 
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls 
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> > around platforms' check_reqs scripts. It returns a promise, either 
> > resolved if check_reqs platform script is found and ran successfully 
> > or rejected in case if check_reqs script is failed due to some 
> > internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array 
> > of requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if 
> > requirement is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if 
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed 
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project 
> > seems harder, I would suggest we make it a part of a second phase of 
> > this implementation. For now, we have a basic version that simply 
> > abstracts out existing check_reqs into a separate, platform level 
> > command. This could be a good first phase, and should also give us 
> > an idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to 
> > build on a cordova level check reqs, and possibly extend it to 
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ 
> > the extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run 
> > check_reqs in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I 
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the 
> > environment for a platform, they aren't likely to want to go down a 
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to 
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know 
> > they want to develop for PLATFORM, they could reasonably want to set 
> > up their requirements for that platform before trying to create a 
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a 
> > project, I actually think they don't, so it's probably sufficient to 
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's 
> > > a good idea to *not* run check_reqs from add (we used to but 
> > > removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is 
> > > > added, or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I 
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As 
> > > > a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project 
> > > > I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do 
> > > > something (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of 
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the 
> > > > platform and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the 
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user 
> > > > want to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, 
> > > > or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a 
> > > > top level req_check is required or not. We should also look at 
> > > > what check_reqs do today - the do not tell you ALL the missing 
> > > > pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think 
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, 
> > > > I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add 
> > > > the
> > platform
> > > > to the temporary project), and then run platform doctor, and 
> > > > then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the 
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform 
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome 
> > > > to do so, but it's an incredibly ugly thing and doesn't belong 
> > > > in a public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH) 
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform 
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the 
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to 
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for 
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is 
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the 
> > > > > >>latter should support  doctoring for available but not added 
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor` 
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we 
> > > > > >>introduced when  we  made `cordova platform add` not call 
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have 
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on 
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs 
> > > > > >> > command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run 
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the 
> > > > > >> > issues so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build, 
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we 
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing 
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you 
> > > > > >> > may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > --------------------------------------------------------------
> > > > > --
> > > > > ----- To unsubscribe, e-mail: 
> > > > > dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org B 
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
Also,  Vlad, can you confirm if check_reqs runs on build, or on platform add ?

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Thursday, April 23, 2015 11:00 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

My bad - I did not mean that this will run "when" platform is added. I mean, this can run only when a project is present and platform has already been added. For this first phase, we are not implementing this command for a platform that has not already been added to the project.  

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Thursday, April 23, 2015 10:52 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

You mean run but not error?

Because, again, this code *used* to run when platforms were added -- except, that then it errored when the requirements weren’t satisfied.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Thursday, April 23, 2015 1:23 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> I think as the first step, it would make sense to run it when platform 
> is added and project is present. We could change it later to run a system wide check.
> For now, this just picks up what check_reqs already does.
> 
> We may need another effort to improve check_reqs itself.
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Thursday, April 23, 2015 1:28 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, Leo. Thanks for feedback!
> 
> I've changed verb name to "requirements" because it looks like it is a 
> happy medium for the majority.
> Updated code for cordova lib and cordova-cli submitted through the 
> following PRs: https://github.com/apache/cordova-cli/pull/212
> https://github.com/apache/cordova-lib/pull/208.
> 
> Regarding your questions:
> 1. The specification for command is exactly the same as you mentioned:
> 
> 	cordova requirements [platform...]
> 
> I've also added a help file to cordova-cli, so 'cordova help 
> requirements' will work now, and will provide all information about usage.
> 
> 2. There are no special options for requirements command. There are 
> common options for all cli commands like '--sillent' and '--verbose' 
> and they're supported automatically.
> 
> 3. The command requires a project and platform added to project. This 
> was the fastest way to implement it, and it could be changed in future 
> if we decide to support case when project doesn't exists.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, 22 April, 2015 18:11
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments 
> below are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a 
> specification of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option 
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already 
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to 
> users - i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many 
> times does a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated 
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no 
> agreement about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` 
> sounds better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been 
> sent. I think this is just a way for folks to play with what Vlad has 
> now. I am sure we will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova 
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command 
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls 
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> > around platforms' check_reqs scripts. It returns a promise, either 
> > resolved if check_reqs platform script is found and ran successfully 
> > or rejected in case if check_reqs script is failed due to some 
> > internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array 
> > of requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if 
> > requirement is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if 
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed 
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project 
> > seems harder, I would suggest we make it a part of a second phase of 
> > this implementation. For now, we have a basic version that simply 
> > abstracts out existing check_reqs into a separate, platform level 
> > command. This could be a good first phase, and should also give us 
> > an idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to 
> > build on a cordova level check reqs, and possibly extend it to 
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ 
> > the extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run 
> > check_reqs in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I 
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the 
> > environment for a platform, they aren't likely to want to go down a 
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to 
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know 
> > they want to develop for PLATFORM, they could reasonably want to set 
> > up their requirements for that platform before trying to create a 
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a 
> > project, I actually think they don't, so it's probably sufficient to 
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's 
> > > a good idea to *not* run check_reqs from add (we used to but 
> > > removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is 
> > > > added, or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I 
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As 
> > > > a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project 
> > > > I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do 
> > > > something (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of 
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the 
> > > > platform and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the 
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user 
> > > > want to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, 
> > > > or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a 
> > > > top level req_check is required or not. We should also look at 
> > > > what check_reqs do today - the do not tell you ALL the missing 
> > > > pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think 
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, 
> > > > I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add 
> > > > the
> > platform
> > > > to the temporary project), and then run platform doctor, and 
> > > > then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the 
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform 
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome 
> > > > to do so, but it's an incredibly ugly thing and doesn't belong 
> > > > in a public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH) 
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform 
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the 
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to 
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for 
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is 
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the 
> > > > > >>latter should support  doctoring for available but not added 
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor` 
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we 
> > > > > >>introduced when  we  made `cordova platform add` not call 
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have 
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on 
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs 
> > > > > >> > command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run 
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the 
> > > > > >> > issues so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build, 
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we 
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing 
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you 
> > > > > >> > may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > --------------------------------------------------------------
> > > > > --
> > > > > ----- To unsubscribe, e-mail: 
> > > > > dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > --
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org B 
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
My bad - I did not mean that this will run "when" platform is added. I mean, this can run only when a project is present and platform has already been added. For this first phase, we are not implementing this command for a platform that has not already been added to the project.  

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com] 
Sent: Thursday, April 23, 2015 10:52 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

You mean run but not error?

Because, again, this code *used* to run when platforms were added -- except, that then it errored when the requirements weren’t satisfied.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Thursday, April 23, 2015 1:23 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> I think as the first step, it would make sense to run it when platform is added
> and project is present. We could change it later to run a system wide check.
> For now, this just picks up what check_reqs already does.
> 
> We may need another effort to improve check_reqs itself.
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Thursday, April 23, 2015 1:28 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, Leo. Thanks for feedback!
> 
> I've changed verb name to "requirements" because it looks like it is a happy
> medium for the majority.
> Updated code for cordova lib and cordova-cli submitted through the
> following PRs: https://github.com/apache/cordova-cli/pull/212
> https://github.com/apache/cordova-lib/pull/208.
> 
> Regarding your questions:
> 1. The specification for command is exactly the same as you mentioned:
> 
> 	cordova requirements [platform...]
> 
> I've also added a help file to cordova-cli, so 'cordova help requirements' will
> work now, and will provide all information about usage.
> 
> 2. There are no special options for requirements command. There are
> common options for all cli commands like '--sillent' and '--verbose' and
> they're supported automatically.
> 
> 3. The command requires a project and platform added to project. This was
> the fastest way to implement it, and it could be changed in future if we
> decide to support case when project doesn't exists.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, 22 April, 2015 18:11
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments below
> are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a specification
> of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to users -
> i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many times does
> a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no agreement
> about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` sounds
> better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been sent. I
> think this is just a way for folks to play with what Vlad has now. I am sure we
> will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper
> > around platforms' check_reqs scripts. It returns a promise, either
> > resolved if check_reqs platform script is found and ran successfully
> > or rejected in case if check_reqs script is failed due to some internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array of
> > requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if requirement
> > is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project
> > seems harder, I would suggest we make it a part of a second phase of
> > this implementation. For now, we have a basic version that simply
> > abstracts out existing check_reqs into a separate, platform level
> > command. This could be a good first phase, and should also give us an
> > idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to
> > build on a cordova level check reqs, and possibly extend it to
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ the
> > extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run check_reqs
> > in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the
> > environment for a platform, they aren't likely to want to go down a
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know
> > they want to develop for PLATFORM, they could reasonably want to set
> > up their requirements for that platform before trying to create a
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a
> > project, I actually think they don't, so it's probably sufficient to
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's a
> > > good idea to *not* run check_reqs from add (we used to but removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is added,
> > > > or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do something
> > > > (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the platform
> > > > and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user want
> > > > to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a top
> > > > level req_check is required or not. We should also look at what
> > > > check_reqs do today - the do not tell you ALL the missing pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add the
> > platform
> > > > to the temporary project), and then run platform doctor, and then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome to
> > > > do so, but it's an incredibly ugly thing and doesn't belong in a
> > > > public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH)
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the latter
> > > > > >>should support  doctoring for available but not added
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor`
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we
> > > > > >>introduced when  we  made `cordova platform add` not call
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the issues
> > > > > >> > so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build,
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > ----------------------------------------------------------------
> > > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ]
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
>  ] Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
You mean run but not error?

Because, again, this code *used* to run when platforms were added -- except, that then it errored when the requirements weren’t satisfied.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Thursday, April 23, 2015 1:23 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> I think as the first step, it would make sense to run it when platform is added
> and project is present. We could change it later to run a system wide check.
> For now, this just picks up what check_reqs already does.
> 
> We may need another effort to improve check_reqs itself.
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Thursday, April 23, 2015 1:28 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, Leo. Thanks for feedback!
> 
> I've changed verb name to "requirements" because it looks like it is a happy
> medium for the majority.
> Updated code for cordova lib and cordova-cli submitted through the
> following PRs: https://github.com/apache/cordova-cli/pull/212
> https://github.com/apache/cordova-lib/pull/208.
> 
> Regarding your questions:
> 1. The specification for command is exactly the same as you mentioned:
> 
> 	cordova requirements [platform...]
> 
> I've also added a help file to cordova-cli, so 'cordova help requirements' will
> work now, and will provide all information about usage.
> 
> 2. There are no special options for requirements command. There are
> common options for all cli commands like '--sillent' and '--verbose' and
> they're supported automatically.
> 
> 3. The command requires a project and platform added to project. This was
> the fastest way to implement it, and it could be changed in future if we
> decide to support case when project doesn't exists.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, 22 April, 2015 18:11
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments below
> are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a specification
> of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to users -
> i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many times does
> a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no agreement
> about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` sounds
> better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been sent. I
> think this is just a way for folks to play with what Vlad has now. I am sure we
> will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper
> > around platforms' check_reqs scripts. It returns a promise, either
> > resolved if check_reqs platform script is found and ran successfully
> > or rejected in case if check_reqs script is failed due to some internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array of
> > requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if requirement
> > is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project
> > seems harder, I would suggest we make it a part of a second phase of
> > this implementation. For now, we have a basic version that simply
> > abstracts out existing check_reqs into a separate, platform level
> > command. This could be a good first phase, and should also give us an
> > idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to
> > build on a cordova level check reqs, and possibly extend it to
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ the
> > extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run check_reqs
> > in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the
> > environment for a platform, they aren't likely to want to go down a
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know
> > they want to develop for PLATFORM, they could reasonably want to set
> > up their requirements for that platform before trying to create a
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a
> > project, I actually think they don't, so it's probably sufficient to
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's a
> > > good idea to *not* run check_reqs from add (we used to but removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is added,
> > > > or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do something
> > > > (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the platform
> > > > and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user want
> > > > to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a top
> > > > level req_check is required or not. We should also look at what
> > > > check_reqs do today - the do not tell you ALL the missing pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add the
> > platform
> > > > to the temporary project), and then run platform doctor, and then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome to
> > > > do so, but it's an incredibly ugly thing and doesn't belong in a
> > > > public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH)
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the latter
> > > > > >>should support  doctoring for available but not added
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor`
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we
> > > > > >>introduced when  we  made `cordova platform add` not call
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the issues
> > > > > >> > so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build,
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > ----------------------------------------------------------------
> > > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ]
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
>  ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
I think as the first step, it would make sense to run it when platform is added and project is present. We could change it later to run a system wide check. For now, this just picks up what check_reqs already does. 

We may need another effort to improve check_reqs itself. 

-----Original Message-----
From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com] 
Sent: Thursday, April 23, 2015 1:28 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hey, Leo. Thanks for feedback!

I've changed verb name to "requirements" because it looks like it is a happy medium for the majority.
Updated code for cordova lib and cordova-cli submitted through the following PRs: https://github.com/apache/cordova-cli/pull/212 https://github.com/apache/cordova-lib/pull/208. 

Regarding your questions:
1. The specification for command is exactly the same as you mentioned:

	cordova requirements [platform...]

I've also added a help file to cordova-cli, so 'cordova help requirements' will work now, and will provide all information about usage.

2. There are no special options for requirements command. There are common options for all cli commands like '--sillent' and '--verbose' and they're supported automatically.

3. The command requires a project and platform added to project. This was the fastest way to implement it, and it could be changed in future if we decide to support case when project doesn't exists.

---------------
Best regards, Vladimir

-----Original Message-----
From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
Sent: Wednesday, 22 April, 2015 18:11
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hi Vladimir,

It's great to see this being worked on and discussed.  My comments below are mine and mine alone.

In addition to the code changes, I would have preferred to see a specification of the command, e.g.

	cordova check-reqs platform [platform...]

I took a quick look at the CLI code changes and didn't see any option processing.  Are there any options?
Do the platform(s) specified on the command need to have been already added to the project?
Does the command require a project - i.e. be executed in a project directory?
Regarding the command name, I don't think being 'cute' is helpful to users - i.e. I recommend against 'doctor'.
I think 'check-requirements' would be OK.  It's long but how many times does a user need to type it?

Thanks,
Leo

-----Original Message-----
From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
Sent: Wednesday, April 22, 2015 7:18 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hey, guys. Have anyone looked at it?
I've made some refactoring to make changes more readable, and updated data contract between platform's check_reqs code and LIB API.

Josh, regarding command name. I thought that there is still no agreement about verb name.
Personally I agree that `cordova doctor` or `cordova requirements` sounds better, but this is just a command name ant it could be changed at any time. 

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
Sent: Monday, 20 April, 2015 22:04
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

This was only an initial implementation - no pull request has been sent. I think this is just a way for folks to play with what Vlad has now. I am sure we will change the verb name before a PR comes in. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Monday, April 20, 2015 11:59 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command 
> and check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls 
> corresponding cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> around platforms' check_reqs scripts. It returns a promise, either 
> resolved if check_reqs platform script is found and ran successfully 
> or rejected in case if check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of 
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' 
> or 'Gradle build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement 
> is properly installed/satisfied
>         - reason - error, reported by requirements check routines if 
> requirement is missing.
> 
> Please note that work is still in progress, and will be changed 
> according to review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project 
> seems harder, I would suggest we make it a part of a second phase of 
> this implementation. For now, we have a basic version that simply 
> abstracts out existing check_reqs into a separate, platform level 
> command. This could be a good first phase, and should also give us an 
> idea about how developers use this command.
> 
> As a part of Phase 2, anyone from the community should be able to 
> build on a cordova level check reqs, and possibly extend it to 
> checking reqs when no project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the 
> extra "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs 
> in add, we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> doctor PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I 
> need for a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the 
> environment for a platform, they aren't likely to want to go down a 
> "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to 
> run `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know 
> they want to develop for PLATFORM, they could reasonably want to set 
> up their requirements for that platform before trying to create a 
> project...
> 
> I don't know if anyone's check_reqs scripts actually requires a 
> project, I actually think they don't, so it's probably sufficient to 
> run them straight from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a 
> > good idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, 
> > > or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  
> > > If requirements used to be checked on 'platform add', then I 
> > > suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something 
> > > (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of 
> > > check_reqs for platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform 
> > > and report results.
> > > 1.5 - Just download the check_reqs script (or use it from the 
> > > cached platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want 
> > > to run the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top 
> > > level req_check is required or not. We should also look at what 
> > > check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think 
> > > about these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the 
> > > temporary project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform 
> > > requirements [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to 
> > > do so, but it's an incredibly ugly thing and doesn't belong in a 
> > > public facing interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform 
> > > > repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > >+check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the 
> > > > >platform check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to 
> > > > >cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for 
> > > > >each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is 
> > > > >present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter 
> > > > >>should support  doctoring for available but not added 
> > > > >>platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` 
> > > > >> that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > >>CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > >>to people that  the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we 
> > > > >>introduced when  we  made `cordova platform add` not call 
> > > > >>check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have 
> > > > >> > is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. 
> > > > >> > This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on 
> > > > >> > stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > >> > doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run 
> > > > >> > cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues 
> > > > >> > so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, 
> > > > >> > fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we 
> > > > >> > implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing 
> > > > >> > functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > >> > continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org B KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCB  [  X  ܚX KK[XZ[
 ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
 ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Vladimir Kotikov (Akvelon)" <v-...@microsoft.com>.
Hey, Leo. Thanks for feedback!

I've changed verb name to "requirements" because it looks like it is a happy medium for the majority.
Updated code for cordova lib and cordova-cli submitted through the following PRs: https://github.com/apache/cordova-cli/pull/212 https://github.com/apache/cordova-lib/pull/208. 

Regarding your questions:
1. The specification for command is exactly the same as you mentioned:

	cordova requirements [platform...]

I've also added a help file to cordova-cli, so 'cordova help requirements' will work now, and will provide all information about usage.

2. There are no special options for requirements command. There are common options for all cli commands like '--sillent' and '--verbose' and they're supported automatically.

3. The command requires a project and platform added to project. This was the fastest way to implement it, and it could be changed in future if we decide to support case when project doesn't exists.

---------------
Best regards, Vladimir

-----Original Message-----
From: Treggiari, Leo [mailto:leo.treggiari@intel.com] 
Sent: Wednesday, 22 April, 2015 18:11
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hi Vladimir,

It's great to see this being worked on and discussed.  My comments below are mine and mine alone.

In addition to the code changes, I would have preferred to see a specification of the command, e.g.

	cordova check-reqs platform [platform...]

I took a quick look at the CLI code changes and didn't see any option processing.  Are there any options?
Do the platform(s) specified on the command need to have been already added to the project?
Does the command require a project - i.e. be executed in a project directory?
Regarding the command name, I don't think being 'cute' is helpful to users - i.e. I recommend against 'doctor'.
I think 'check-requirements' would be OK.  It's long but how many times does a user need to type it?

Thanks,
Leo

-----Original Message-----
From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
Sent: Wednesday, April 22, 2015 7:18 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hey, guys. Have anyone looked at it?
I've made some refactoring to make changes more readable, and updated data contract between platform's check_reqs code and LIB API.

Josh, regarding command name. I thought that there is still no agreement about verb name.
Personally I agree that `cordova doctor` or `cordova requirements` sounds better, but this is just a command name ant it could be changed at any time. 

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
Sent: Monday, 20 April, 2015 22:04
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

This was only an initial implementation - no pull request has been sent. I think this is just a way for folks to play with what Vlad has now. I am sure we will change the verb name before a PR comes in. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Monday, April 20, 2015 11:59 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command 
> and check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls 
> corresponding cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> around platforms' check_reqs scripts. It returns a promise, either 
> resolved if check_reqs platform script is found and ran successfully 
> or rejected in case if check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of 
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' 
> or 'Gradle build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement 
> is properly installed/satisfied
>         - reason - error, reported by requirements check routines if 
> requirement is missing.
> 
> Please note that work is still in progress, and will be changed 
> according to review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project 
> seems harder, I would suggest we make it a part of a second phase of 
> this implementation. For now, we have a basic version that simply 
> abstracts out existing check_reqs into a separate, platform level 
> command. This could be a good first phase, and should also give us an 
> idea about how developers use this command.
> 
> As a part of Phase 2, anyone from the community should be able to 
> build on a cordova level check reqs, and possibly extend it to 
> checking reqs when no project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the 
> extra "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs 
> in add, we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> doctor PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I 
> need for a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the 
> environment for a platform, they aren't likely to want to go down a 
> "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to 
> run `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know 
> they want to develop for PLATFORM, they could reasonably want to set 
> up their requirements for that platform before trying to create a 
> project...
> 
> I don't know if anyone's check_reqs scripts actually requires a 
> project, I actually think they don't, so it's probably sufficient to 
> run them straight from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a 
> > good idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, 
> > > or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  
> > > If requirements used to be checked on 'platform add', then I 
> > > suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something 
> > > (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of 
> > > check_reqs for platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform 
> > > and report results.
> > > 1.5 - Just download the check_reqs script (or use it from the 
> > > cached platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want 
> > > to run the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top 
> > > level req_check is required or not. We should also look at what 
> > > check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think 
> > > about these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the 
> > > temporary project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform 
> > > requirements [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to 
> > > do so, but it's an incredibly ugly thing and doesn't belong in a 
> > > public facing interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform 
> > > > repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > >+check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the 
> > > > >platform check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to 
> > > > >cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for 
> > > > >each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is 
> > > > >present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter 
> > > > >>should support  doctoring for available but not added 
> > > > >>platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` 
> > > > >> that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > >>CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > >>to people that  the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we 
> > > > >>introduced when  we  made `cordova platform add` not call 
> > > > >>check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have 
> > > > >> > is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. 
> > > > >> > This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on 
> > > > >> > stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > >> > doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run 
> > > > >> > cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues 
> > > > >> > so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, 
> > > > >> > fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we 
> > > > >> > implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing 
> > > > >> > functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > >> > continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

Re: Proposal: Expose check_reqs at the CLI level

Posted by Jesse <pu...@gmail.com>.
I liked 'doctor', I don't think it is cute, it is in use elsewhere.
The words always seem to be the hard part, here are some alternatives :

doctor
requirements
examine
exam
diagnose
check
audit
inspect
eval



@purplecabbage
risingj.com

On Wed, Apr 22, 2015 at 9:43 AM, Josh Soref <js...@blackberry.com> wrote:

> We're going to type it often enough that I'd be upset at both check_reqs
> and check-requirements
>
> "requirements" is good enough.
>
> > -----Original Message-----
> > From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> > Sent: Wednesday, April 22, 2015 11:11 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi Vladimir,
> >
> > It's great to see this being worked on and discussed.  My comments below
> > are mine and mine alone.
> >
> > In addition to the code changes, I would have preferred to see a
> specification
> > of the command, e.g.
> >
> >       cordova check-reqs platform [platform...]
> >
> > I took a quick look at the CLI code changes and didn't see any option
> > processing.  Are there any options?
> > Do the platform(s) specified on the command need to have been already
> > added to the project?
> > Does the command require a project - i.e. be executed in a project
> directory?
> > Regarding the command name, I don't think being 'cute' is helpful to
> users -
> > i.e. I recommend against 'doctor'.
> > I think 'check-requirements' would be OK.  It's long but how many times
> does
> > a user need to type it?
> >
> > Thanks,
> > Leo
> >
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Wednesday, April 22, 2015 7:18 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hey, guys. Have anyone looked at it?
> > I've made some refactoring to make changes more readable, and updated
> > data contract between platform's check_reqs code and LIB API.
> >
> > Josh, regarding command name. I thought that there is still no agreement
> > about verb name.
> > Personally I agree that `cordova doctor` or `cordova requirements` sounds
> > better, but this is just a command name ant it could be changed at any
> time.
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 22:04
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > This was only an initial implementation - no pull request has been sent.
> I
> > think this is just a way for folks to play with what Vlad has now. I am
> sure we
> > will change the verb name before a PR comes in.
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Monday, April 20, 2015 11:59 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > -1
> >
> > Didn't everyone agree to call it `cordova doctor` or worst, `cordova
> > requirements`?
> >
> > > -----Original Message-----
> > > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > > Sent: Monday, April 20, 2015 11:46 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Hi, list.
> > >
> > > I would like to share a draft implementation for check_reqs command
> > > and check_reqs API:
> > > Changes  could be found here:
> > >     CLI: https://github.com/apache/cordova-
> > > cli/compare/master...MSOpenTech:requirements_check
> > >     LIB: https://github.com/apache/cordova-
> > > lib/compare/master...MSOpenTech:requirements_check
> > >     Cordova-android: https://github.com/apache/cordova-
> > > android/compare/master...MSOpenTech:requirements_check
> > >
> > > The implementation consists of following:
> > > 1. 'cordova check-reqs' command for cordova CLI, which calls
> > > corresponding cordova-lib API with options, specified from CLI
> > >
> > > 2. 'check_reqs' module for cordova-lib, which works as a wrapper
> > > around platforms' check_reqs scripts. It returns a promise, either
> > > resolved if check_reqs platform script is found and ran successfully
> > > or rejected in case if check_reqs script is failed due to some
> internal errors
> > or not found at all.
> > >
> > > 3. check_reqs script for android platform, updated to return array of
> > > requirements.
> > >
> > >     * Each requirements is an object with following fields:
> > >         - id - some short id, could be useful for tools, that consume
> API directly
> > >         - name - readable name for this requirement, such as 'Jav JDK'
> > > or 'Gradle build tools', etc.
> > >         - installed - Boolean paremeter that indicates if requirement
> > > is properly installed/satisfied
> > >         - reason - error, reported by requirements check routines if
> > > requirement is missing.
> > >
> > > Please note that work is still in progress, and will be changed
> > > according to review comments.
> > > TBD:
> > >     * move presentation logic from LIB to CLI;
> > >     * refine data format, returned by cordova-lib API
> > >     * add other platforms
> > >     * and more... :)
> > >
> > > ---------------
> > > Best regards, Vladimir
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Monday, 20 April, 2015 3:49
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Looks like implementing a global level check_reqs without a project
> > > seems harder, I would suggest we make it a part of a second phase of
> > > this implementation. For now, we have a basic version that simply
> > > abstracts out existing check_reqs into a separate, platform level
> > > command. This could be a good first phase, and should also give us an
> > > idea about how developers use this command.
> > >
> > > As a part of Phase 2, anyone from the community should be able to
> > > build on a cordova level check reqs, and possibly extend it to
> > > checking reqs when no project is present.
> > >
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Wednesday, April 15, 2015 8:53 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > We already support:
> > >
> > > `cordova build android`
> > >
> > > There's no need for the extra `platform` verb..
> > >
> > > But,
> > > `cordova build android --nobuild` isn't any more intuitive than w/ the
> > > extra "platform".
> > >
> > >
> > > And yes, as I noted, and others have noted, we used to run check_reqs
> > > in add, we're not going back to doing that.
> > >
> > > A `cordova doctor` or `cordova requirements` verb seems fine.
> > >
> > > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform
> > > doctor PLATFORM`,
> > >
> > > As for when someone is likely to want to ask "what requirements do I
> > > need for a platform", it's fairly arbitrary.
> > >
> > > Someone who is given a project might know that they don't have the
> > > environment for a platform, they aren't likely to want to go down a
> > > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> > >
> > > It's perfectly reasonable from my perspective for someone to want to
> > > run `cordova requirements PLATFORM` without a project at all.
> > > Imagine someone is getting started, they "install cordova", and know
> > > they want to develop for PLATFORM, they could reasonably want to set
> > > up their requirements for that platform before trying to create a
> > > project...
> > >
> > > I don't know if anyone's check_reqs scripts actually requires a
> > > project, I actually think they don't, so it's probably sufficient to
> > > run them straight from the platform origin instead of from a created
> > project.
> > >
> > > One notable thing: check_reqs isn't a .js file yet, as an API, it's
> > > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > > (Windows)
> > >
> > > > -----Original Message-----
> > > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > > > Andrew Grieve
> > > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > > To: dev
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > We've worked to make iOS add'able from Windows, so I do think it's a
> > > > good idea to *not* run check_reqs from add (we used to but removed
> > it).
> > > >
> > > > We already run it on build, so potentially we already have this
> command:
> > > > "cordova platform build android --nobuild"
> > > >
> > > >
> > > >
> > > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo
> > > > <le...@intel.com>
> > > > wrote:
> > > >
> > > > > My opinions.
> > > > >
> > > > > Q1.  Just say that platform is not added, so cannot check
> requirements.
> > > > >
> > > > > I don't think it is important to support the platform-not-added
> case.
> > > > >
> > > > > Q2.  Should the requirements be checked when a platform is added,
> > > > > or
> > > > when
> > > > > it is built ?
> > > > >
> > > > > 'platform add' should work even when the requirements are not met.
> > > > > If requirements used to be checked on 'platform add', then I
> > > > > suspect they were removed
> > > to
> > > > > support
> > > > > the scenario of using the same Cordova project on multiple host
> > > platforms.
> > > > > E.g. a team with some developers on Windows and some on Mac.  As a
> > > user
> > > > of
> > > > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> > > working
> > > > > on have the
> > > > > iOS platform added and I only get errors if I try to do something
> > > > > (build,
> > > > > emulate)
> > > > > which requires the native SDK.
> > > > >
> > > > > Leo
> > > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > I think you raise an interesting point on the behavior of
> > > > > check_reqs for platform that are not yet added.
> > > > >
> > > > > The options, as you mention are
> > > > >
> > > > > Question 1
> > > > > 1 -  Add the platform, run check_reqs script, remove the platform
> > > > > and report results.
> > > > > 1.5 - Just download the check_reqs script (or use it from the
> > > > > cached platform directory) without adding the platform, and run
> that.
> > > > > 2 -  Just say that platform is not added, so cannot check
> requirements.
> > > > >
> > > > > Question 2: It also comes to the case of - when would a user want
> > > > > to run the requirement check
> > > > > - before starting a cordova project ?
> > > > > - before adding a platform ?
> > > > > - should the requirements be checked when a platform is added, or
> > > when it
> > > > > is built ?
> > > > >
> > > > > The answer to the above questions will help us understand if a top
> > > > > level req_check is required or not. We should also look at what
> > > > > check_reqs do today - the do not tell you ALL the missing pieces
> for
> > building an SDK.
> > > > >
> > > > > It would be good to hear what the others in the community think
> > > > > about these answers.
> > > > >
> > > > > -----Original Message-----
> > > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > > > envision:
> > > > >
> > > > > `cordova platform doctor not-yet-installed`
> > > > >
> > > > > to do effectively:
> > > > > ```sh
> > > > > (
> > > > > PLATFORM=not-yet-installed
> > > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova
> > > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > > 2>&1)
> > > > > )
> > > > > ```
> > > > >
> > > > > i.e. add the platform (or create a temporary project, and add the
> > > platform
> > > > > to the temporary project), and then run platform doctor, and then
> > > remove
> > > > > the
> > > > > platform (and if it was in a temporary project, delete the
> > > > > temporary project...).
> > > > >
> > > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > > >
> > > > > If we really really want to, we could have `cordova platform
> > > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > > >
> > > > > If someone wants to call `check_reqs` directly, they're welcome to
> > > > > do so, but it's an incredibly ugly thing and doesn't belong in a
> > > > > public facing interface.
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Parashuram N (MS OPEN TECH)
> > > > > > [mailto:panarasi@microsoft.com]
> > > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > > To: dev@cordova.apache.org
> > > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > > >
> > > > > > Carlos, you are right, check_reqs should be in the platform
> > > > > > repo, CLI
> > > > > will
> > > > > > just proxy the call to the platforms.
> > > > > >
> > > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > > wrote:
> > > > > >
> > > > > > >+1 if check_reqs are kept in the platform repos, currently
> > > > > > >+check_reqs
> > > > > > >is
> > > > > a
> > > > > > >platform concerned
> > > > > > >if it's available from CLI it will be just a proxy to the
> > > > > > >platform check_reqs.
> > > > > > >
> > > > > > >if don't keep it in the platform repo, and add this logic to
> > > > > > >cli repo,
> > > > > we
> > > > > > >will need to maintained a list of reqs for each platform, for
> > > > > > >each
> > > > > version
> > > > > > >of each platform.
> > > > > > >
> > > > > > >This is the reason why it was removed from cli and just is
> > > > > > >present in
> > > > > the
> > > > > > >platform repo/code
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > > <js...@blackberry.com>
> > > > > > wrote:
> > > > > > >
> > > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > > > >>{platformname}`.
> > > > > > >>
> > > > > > >> The former should apply to all current platforms, the latter
> > > > > > >>should support  doctoring for available but not added
> > > > > > >>platforms -- if said platform
> > > > > were
> > > > > > >> specified.
> > > > > > >> And we should note in the documentation or `cordova doctor`
> > > > > > >> that it
> > > > > may
> > > > > > >>do
> > > > > > >> other checks -- e.g. linting the config.xml, warning about
> > > > > > >>CSP,
> > > > > possibly
> > > > > > >> mentioning when a plugin is out of date -- just to indicate
> > > > > > >>to people that  the behavior may evolve.
> > > > > > >>
> > > > > > >> Not that this is more or less fixing a regression that we
> > > > > > >>introduced when  we  made `cordova platform add` not call
> > > > > > >>check_reqs.
> > > > > > >>
> > > > > > >> > -----Original Message-----
> > > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > > [mailto:panarasi@microsoft.com]
> > > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > > >> > To: dev@cordova.apache.org
> > > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > > >> >
> > > > > > >> > Hi,
> > > > > > >> >
> > > > > > >> > One of the main problems a lot of developers seem to have
> > > > > > >> > is the
> > > > > > >>issue to
> > > > > > >> > setting up their machines for building various platforms.
> > > > > > >> > This came
> > > > > > >>out
> > > > > > >> from
> > > > > > >> > the Stack overflow survey, and the number of questions on
> > > > > > >> > stack
> > > > > > >>overflow,
> > > > > > >> > twitter. Etc.
> > > > > > >> >
> > > > > > >> > I thought it would be helpful to have a check_reqs command
> > > > exposed
> > > > > at
> > > > > > >>the
> > > > > > >> > CLI level. This is similar to `brew doctor` or `appium
> > > > > > >> > doctor`. The
> > > > > > >>idea
> > > > > > >> is
> > > > > > >> >
> > > > > > >> >
> > > > > > >> > 1.       Have a way for the user to see if they have all
> > > > > dependencies
> > > > > > >> (like
> > > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > > time,
> > > > but
> > > > > > >> > moving it out to a CLI level command where you can run
> > > > > > >> > cordova
> > > > > > >>check_reqs
> > > > > > >> > (or something similar) would be useful to the users.
> > > > > > >> >
> > > > > > >> > 2.       Today, the build command shows one error at a
> time. The
> > > > > > >> check_reqs
> > > > > > >> > could run all the checks, and show a summary of the issues
> > > > > > >> > so that
> > > > > the
> > > > > > >> user
> > > > > > >> > can fix them all, instead of fixing one, running build,
> > > > > > >> > fixing
> > > > > again,
> > > > > > >> etc.
> > > > > > >> >
> > > > > > >> > What does the community think of this idea ? Can we
> > > > > > >> > implement a
> > > > > > >>prototype
> > > > > > >> > and see if this is useful to our developers ?
> > > > > > >> > Note that this does not change or break existing
> > > > > > >> > functionality - it
> > > > > > >>just
> > > > > > >> exposes
> > > > > > >> > the already existing check_reqs in the CLI. Build will
> > > > > > >> > continue to
> > > > > > >>call
> > > > > > >> > check_reqs.
> > > > > > >> >
> > > > > > >> > Please vote on this proposal, or raise any concerns you may
> > have.
> > > > > > >>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >--
> > > > > > >Carlos Santana
> > > > > > ><cs...@gmail.com>
> > > > > >
> > > > > >
> > > > > > ----------------------------------------------------------------
> > > > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > > >
> > > > >
> > > > > ------------------------------------------------------------------
> > > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > > >
> > > > >
> > > > > ------------------------------------------------------------------
> > > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > > >
> > > > >
> > >  B
> > >
> > KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > > KKKKKKKKKKCB    [  X  ܚX K  K[XZ[
> > >    ] ][  X  ܚX P  ܙ ݘK \ X  K ܙ B  ܈ Y  ] [ۘ[    [X[     K[XZ[    ]
> > > Z [    ܙ ݘK \ X  K ܙ B
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
>

RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
We're going to type it often enough that I'd be upset at both check_reqs and check-requirements

"requirements" is good enough.

> -----Original Message-----
> From: Treggiari, Leo [mailto:leo.treggiari@intel.com]
> Sent: Wednesday, April 22, 2015 11:11 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi Vladimir,
> 
> It's great to see this being worked on and discussed.  My comments below
> are mine and mine alone.
> 
> In addition to the code changes, I would have preferred to see a specification
> of the command, e.g.
> 
> 	cordova check-reqs platform [platform...]
> 
> I took a quick look at the CLI code changes and didn't see any option
> processing.  Are there any options?
> Do the platform(s) specified on the command need to have been already
> added to the project?
> Does the command require a project - i.e. be executed in a project directory?
> Regarding the command name, I don't think being 'cute' is helpful to users -
> i.e. I recommend against 'doctor'.
> I think 'check-requirements' would be OK.  It's long but how many times does
> a user need to type it?
> 
> Thanks,
> Leo
> 
> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Wednesday, April 22, 2015 7:18 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hey, guys. Have anyone looked at it?
> I've made some refactoring to make changes more readable, and updated
> data contract between platform's check_reqs code and LIB API.
> 
> Josh, regarding command name. I thought that there is still no agreement
> about verb name.
> Personally I agree that `cordova doctor` or `cordova requirements` sounds
> better, but this is just a command name ant it could be changed at any time.
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 22:04
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> This was only an initial implementation - no pull request has been sent. I
> think this is just a way for folks to play with what Vlad has now. I am sure we
> will change the verb name before a PR comes in.
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Monday, April 20, 2015 11:59 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> -1
> 
> Didn't everyone agree to call it `cordova doctor` or worst, `cordova
> requirements`?
> 
> > -----Original Message-----
> > From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> > Sent: Monday, April 20, 2015 11:46 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Hi, list.
> >
> > I would like to share a draft implementation for check_reqs command
> > and check_reqs API:
> > Changes  could be found here:
> >     CLI: https://github.com/apache/cordova-
> > cli/compare/master...MSOpenTech:requirements_check
> >     LIB: https://github.com/apache/cordova-
> > lib/compare/master...MSOpenTech:requirements_check
> >     Cordova-android: https://github.com/apache/cordova-
> > android/compare/master...MSOpenTech:requirements_check
> >
> > The implementation consists of following:
> > 1. 'cordova check-reqs' command for cordova CLI, which calls
> > corresponding cordova-lib API with options, specified from CLI
> >
> > 2. 'check_reqs' module for cordova-lib, which works as a wrapper
> > around platforms' check_reqs scripts. It returns a promise, either
> > resolved if check_reqs platform script is found and ran successfully
> > or rejected in case if check_reqs script is failed due to some internal errors
> or not found at all.
> >
> > 3. check_reqs script for android platform, updated to return array of
> > requirements.
> >
> >     * Each requirements is an object with following fields:
> >         - id - some short id, could be useful for tools, that consume API directly
> >         - name - readable name for this requirement, such as 'Jav JDK'
> > or 'Gradle build tools', etc.
> >         - installed - Boolean paremeter that indicates if requirement
> > is properly installed/satisfied
> >         - reason - error, reported by requirements check routines if
> > requirement is missing.
> >
> > Please note that work is still in progress, and will be changed
> > according to review comments.
> > TBD:
> >     * move presentation logic from LIB to CLI;
> >     * refine data format, returned by cordova-lib API
> >     * add other platforms
> >     * and more... :)
> >
> > ---------------
> > Best regards, Vladimir
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, 20 April, 2015 3:49
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Looks like implementing a global level check_reqs without a project
> > seems harder, I would suggest we make it a part of a second phase of
> > this implementation. For now, we have a basic version that simply
> > abstracts out existing check_reqs into a separate, platform level
> > command. This could be a good first phase, and should also give us an
> > idea about how developers use this command.
> >
> > As a part of Phase 2, anyone from the community should be able to
> > build on a cordova level check reqs, and possibly extend it to
> > checking reqs when no project is present.
> >
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Wednesday, April 15, 2015 8:53 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > We already support:
> >
> > `cordova build android`
> >
> > There's no need for the extra `platform` verb..
> >
> > But,
> > `cordova build android --nobuild` isn't any more intuitive than w/ the
> > extra "platform".
> >
> >
> > And yes, as I noted, and others have noted, we used to run check_reqs
> > in add, we're not going back to doing that.
> >
> > A `cordova doctor` or `cordova requirements` verb seems fine.
> >
> > I'm also fine `cordova doctor PLATFORM` instead of `cordova platform
> > doctor PLATFORM`,
> >
> > As for when someone is likely to want to ask "what requirements do I
> > need for a platform", it's fairly arbitrary.
> >
> > Someone who is given a project might know that they don't have the
> > environment for a platform, they aren't likely to want to go down a
> > "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> >
> > It's perfectly reasonable from my perspective for someone to want to
> > run `cordova requirements PLATFORM` without a project at all.
> > Imagine someone is getting started, they "install cordova", and know
> > they want to develop for PLATFORM, they could reasonably want to set
> > up their requirements for that platform before trying to create a
> > project...
> >
> > I don't know if anyone's check_reqs scripts actually requires a
> > project, I actually think they don't, so it's probably sufficient to
> > run them straight from the platform origin instead of from a created
> project.
> >
> > One notable thing: check_reqs isn't a .js file yet, as an API, it's
> > "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> > (Windows)
> >
> > > -----Original Message-----
> > > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > > Andrew Grieve
> > > Sent: Wednesday, April 15, 2015 11:00 AM
> > > To: dev
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > We've worked to make iOS add'able from Windows, so I do think it's a
> > > good idea to *not* run check_reqs from add (we used to but removed
> it).
> > >
> > > We already run it on build, so potentially we already have this command:
> > > "cordova platform build android --nobuild"
> > >
> > >
> > >
> > > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo
> > > <le...@intel.com>
> > > wrote:
> > >
> > > > My opinions.
> > > >
> > > > Q1.  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > I don't think it is important to support the platform-not-added case.
> > > >
> > > > Q2.  Should the requirements be checked when a platform is added,
> > > > or
> > > when
> > > > it is built ?
> > > >
> > > > 'platform add' should work even when the requirements are not met.
> > > > If requirements used to be checked on 'platform add', then I
> > > > suspect they were removed
> > to
> > > > support
> > > > the scenario of using the same Cordova project on multiple host
> > platforms.
> > > > E.g. a team with some developers on Windows and some on Mac.  As a
> > user
> > > of
> > > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> > working
> > > > on have the
> > > > iOS platform added and I only get errors if I try to do something
> > > > (build,
> > > > emulate)
> > > > which requires the native SDK.
> > > >
> > > > Leo
> > > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > I think you raise an interesting point on the behavior of
> > > > check_reqs for platform that are not yet added.
> > > >
> > > > The options, as you mention are
> > > >
> > > > Question 1
> > > > 1 -  Add the platform, run check_reqs script, remove the platform
> > > > and report results.
> > > > 1.5 - Just download the check_reqs script (or use it from the
> > > > cached platform directory) without adding the platform, and run that.
> > > > 2 -  Just say that platform is not added, so cannot check requirements.
> > > >
> > > > Question 2: It also comes to the case of - when would a user want
> > > > to run the requirement check
> > > > - before starting a cordova project ?
> > > > - before adding a platform ?
> > > > - should the requirements be checked when a platform is added, or
> > when it
> > > > is built ?
> > > >
> > > > The answer to the above questions will help us understand if a top
> > > > level req_check is required or not. We should also look at what
> > > > check_reqs do today - the do not tell you ALL the missing pieces for
> building an SDK.
> > > >
> > > > It would be good to hear what the others in the community think
> > > > about these answers.
> > > >
> > > > -----Original Message-----
> > > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > > envision:
> > > >
> > > > `cordova platform doctor not-yet-installed`
> > > >
> > > > to do effectively:
> > > > ```sh
> > > > (
> > > > PLATFORM=not-yet-installed
> > > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova
> > > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM
> > > > 2>&1)
> > > > )
> > > > ```
> > > >
> > > > i.e. add the platform (or create a temporary project, and add the
> > platform
> > > > to the temporary project), and then run platform doctor, and then
> > remove
> > > > the
> > > > platform (and if it was in a temporary project, delete the
> > > > temporary project...).
> > > >
> > > > I don't really want to expos a 'check_reqs' verb via CLI.
> > > >
> > > > If we really really want to, we could have `cordova platform
> > > > requirements [PLATFORM...]` as a verb, that's ok.
> > > >
> > > > If someone wants to call `check_reqs` directly, they're welcome to
> > > > do so, but it's an incredibly ugly thing and doesn't belong in a
> > > > public facing interface.
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Parashuram N (MS OPEN TECH)
> > > > > [mailto:panarasi@microsoft.com]
> > > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > > To: dev@cordova.apache.org
> > > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > > >
> > > > > Carlos, you are right, check_reqs should be in the platform
> > > > > repo, CLI
> > > > will
> > > > > just proxy the call to the platforms.
> > > > >
> > > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> > wrote:
> > > > >
> > > > > >+1 if check_reqs are kept in the platform repos, currently
> > > > > >+check_reqs
> > > > > >is
> > > > a
> > > > > >platform concerned
> > > > > >if it's available from CLI it will be just a proxy to the
> > > > > >platform check_reqs.
> > > > > >
> > > > > >if don't keep it in the platform repo, and add this logic to
> > > > > >cli repo,
> > > > we
> > > > > >will need to maintained a list of reqs for each platform, for
> > > > > >each
> > > > version
> > > > > >of each platform.
> > > > > >
> > > > > >This is the reason why it was removed from cli and just is
> > > > > >present in
> > > > the
> > > > > >platform repo/code
> > > > > >
> > > > > >
> > > > > >
> > > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> > <js...@blackberry.com>
> > > > > wrote:
> > > > > >
> > > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > > >>{platformname}`.
> > > > > >>
> > > > > >> The former should apply to all current platforms, the latter
> > > > > >>should support  doctoring for available but not added
> > > > > >>platforms -- if said platform
> > > > were
> > > > > >> specified.
> > > > > >> And we should note in the documentation or `cordova doctor`
> > > > > >> that it
> > > > may
> > > > > >>do
> > > > > >> other checks -- e.g. linting the config.xml, warning about
> > > > > >>CSP,
> > > > possibly
> > > > > >> mentioning when a plugin is out of date -- just to indicate
> > > > > >>to people that  the behavior may evolve.
> > > > > >>
> > > > > >> Not that this is more or less fixing a regression that we
> > > > > >>introduced when  we  made `cordova platform add` not call
> > > > > >>check_reqs.
> > > > > >>
> > > > > >> > -----Original Message-----
> > > > > >> > From: Parashuram N (MS OPEN TECH)
> > > [mailto:panarasi@microsoft.com]
> > > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > > >> > To: dev@cordova.apache.org
> > > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > > >> >
> > > > > >> > Hi,
> > > > > >> >
> > > > > >> > One of the main problems a lot of developers seem to have
> > > > > >> > is the
> > > > > >>issue to
> > > > > >> > setting up their machines for building various platforms.
> > > > > >> > This came
> > > > > >>out
> > > > > >> from
> > > > > >> > the Stack overflow survey, and the number of questions on
> > > > > >> > stack
> > > > > >>overflow,
> > > > > >> > twitter. Etc.
> > > > > >> >
> > > > > >> > I thought it would be helpful to have a check_reqs command
> > > exposed
> > > > at
> > > > > >>the
> > > > > >> > CLI level. This is similar to `brew doctor` or `appium
> > > > > >> > doctor`. The
> > > > > >>idea
> > > > > >> is
> > > > > >> >
> > > > > >> >
> > > > > >> > 1.       Have a way for the user to see if they have all
> > > > dependencies
> > > > > >> (like
> > > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> > time,
> > > but
> > > > > >> > moving it out to a CLI level command where you can run
> > > > > >> > cordova
> > > > > >>check_reqs
> > > > > >> > (or something similar) would be useful to the users.
> > > > > >> >
> > > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > > >> check_reqs
> > > > > >> > could run all the checks, and show a summary of the issues
> > > > > >> > so that
> > > > the
> > > > > >> user
> > > > > >> > can fix them all, instead of fixing one, running build,
> > > > > >> > fixing
> > > > again,
> > > > > >> etc.
> > > > > >> >
> > > > > >> > What does the community think of this idea ? Can we
> > > > > >> > implement a
> > > > > >>prototype
> > > > > >> > and see if this is useful to our developers ?
> > > > > >> > Note that this does not change or break existing
> > > > > >> > functionality - it
> > > > > >>just
> > > > > >> exposes
> > > > > >> > the already existing check_reqs in the CLI. Build will
> > > > > >> > continue to
> > > > > >>call
> > > > > >> > check_reqs.
> > > > > >> >
> > > > > >> > Please vote on this proposal, or raise any concerns you may
> have.
> > > > > >>
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >Carlos Santana
> > > > > ><cs...@gmail.com>
> > > > >
> > > > >
> > > > > ----------------------------------------------------------------
> > > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > > >
> > > >
> > B
> >
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > KKKKKKKKKKCB  [  X  ܚX KK[XZ[
> >  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ]
> > Z[ ܙݘK \X K ܙ B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Treggiari, Leo" <le...@intel.com>.
Hi Vladimir,

It's great to see this being worked on and discussed.  My comments below are mine and mine alone.

In addition to the code changes, I would have preferred to see a specification of the command, e.g.

	cordova check-reqs platform [platform...]

I took a quick look at the CLI code changes and didn't see any option processing.  Are there any options?
Do the platform(s) specified on the command need to have been already added to the project?
Does the command require a project - i.e. be executed in a project directory?
Regarding the command name, I don't think being 'cute' is helpful to users - i.e. I recommend against 'doctor'.
I think 'check-requirements' would be OK.  It's long but how many times does a user need to type it?

Thanks,
Leo

-----Original Message-----
From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com] 
Sent: Wednesday, April 22, 2015 7:18 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Hey, guys. Have anyone looked at it?
I've made some refactoring to make changes more readable, and updated data contract between platform's check_reqs code and LIB API.

Josh, regarding command name. I thought that there is still no agreement about verb name.
Personally I agree that `cordova doctor` or `cordova requirements` sounds better, but this is just a command name ant it could be changed at any time. 

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Monday, 20 April, 2015 22:04
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

This was only an initial implementation - no pull request has been sent. I think this is just a way for folks to play with what Vlad has now. I am sure we will change the verb name before a PR comes in. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Monday, April 20, 2015 11:59 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command 
> and check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls 
> corresponding cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> around platforms' check_reqs scripts. It returns a promise, either 
> resolved if check_reqs platform script is found and ran successfully 
> or rejected in case if check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of 
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' 
> or 'Gradle build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement 
> is properly installed/satisfied
>         - reason - error, reported by requirements check routines if 
> requirement is missing.
> 
> Please note that work is still in progress, and will be changed 
> according to review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project 
> seems harder, I would suggest we make it a part of a second phase of 
> this implementation. For now, we have a basic version that simply 
> abstracts out existing check_reqs into a separate, platform level 
> command. This could be a good first phase, and should also give us an 
> idea about how developers use this command.
> 
> As a part of Phase 2, anyone from the community should be able to 
> build on a cordova level check reqs, and possibly extend it to 
> checking reqs when no project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the 
> extra "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs 
> in add, we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> doctor PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I 
> need for a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the 
> environment for a platform, they aren't likely to want to go down a 
> "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to 
> run `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know 
> they want to develop for PLATFORM, they could reasonably want to set 
> up their requirements for that platform before trying to create a 
> project...
> 
> I don't know if anyone's check_reqs scripts actually requires a 
> project, I actually think they don't, so it's probably sufficient to 
> run them straight from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a 
> > good idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, 
> > > or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  
> > > If requirements used to be checked on 'platform add', then I 
> > > suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something 
> > > (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of 
> > > check_reqs for platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform 
> > > and report results.
> > > 1.5 - Just download the check_reqs script (or use it from the 
> > > cached platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want 
> > > to run the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top 
> > > level req_check is required or not. We should also look at what 
> > > check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think 
> > > about these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM 
> > > 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the 
> > > temporary project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform 
> > > requirements [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to 
> > > do so, but it's an incredibly ugly thing and doesn't belong in a 
> > > public facing interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform 
> > > > repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > >+check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the 
> > > > >platform check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to 
> > > > >cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for 
> > > > >each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is 
> > > > >present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter 
> > > > >>should support  doctoring for available but not added 
> > > > >>platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` 
> > > > >> that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > >>CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > >>to people that  the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we 
> > > > >>introduced when  we  made `cordova platform add` not call 
> > > > >>check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have 
> > > > >> > is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. 
> > > > >> > This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on 
> > > > >> > stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > >> > doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run 
> > > > >> > cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues 
> > > > >> > so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, 
> > > > >> > fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we 
> > > > >> > implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing 
> > > > >> > functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > >> > continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Vladimir Kotikov (Akvelon)" <v-...@microsoft.com>.
Hey, guys. Have anyone looked at it?
I've made some refactoring to make changes more readable, and updated data contract between platform's check_reqs code and LIB API.

Josh, regarding command name. I thought that there is still no agreement about verb name.
Personally I agree that `cordova doctor` or `cordova requirements` sounds better, but this is just a command name ant it could be changed at any time. 

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Monday, 20 April, 2015 22:04
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

This was only an initial implementation - no pull request has been sent. I think this is just a way for folks to play with what Vlad has now. I am sure we will change the verb name before a PR comes in. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Monday, April 20, 2015 11:59 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command 
> and check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls 
> corresponding cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper 
> around platforms' check_reqs scripts. It returns a promise, either 
> resolved if check_reqs platform script is found and ran successfully 
> or rejected in case if check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of 
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' 
> or 'Gradle build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement 
> is properly installed/satisfied
>         - reason - error, reported by requirements check routines if 
> requirement is missing.
> 
> Please note that work is still in progress, and will be changed 
> according to review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project 
> seems harder, I would suggest we make it a part of a second phase of 
> this implementation. For now, we have a basic version that simply 
> abstracts out existing check_reqs into a separate, platform level 
> command. This could be a good first phase, and should also give us an 
> idea about how developers use this command.
> 
> As a part of Phase 2, anyone from the community should be able to 
> build on a cordova level check reqs, and possibly extend it to 
> checking reqs when no project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the 
> extra "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs 
> in add, we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform 
> doctor PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I 
> need for a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the 
> environment for a platform, they aren't likely to want to go down a 
> "build" rabbit hole, so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to 
> run `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know 
> they want to develop for PLATFORM, they could reasonably want to set 
> up their requirements for that platform before trying to create a 
> project...
> 
> I don't know if anyone's check_reqs scripts actually requires a 
> project, I actually think they don't, so it's probably sufficient to 
> run them straight from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's 
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of 
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a 
> > good idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo 
> > <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, 
> > > or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  
> > > If requirements used to be checked on 'platform add', then I 
> > > suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something 
> > > (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of 
> > > check_reqs for platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform 
> > > and report results.
> > > 1.5 - Just download the check_reqs script (or use it from the 
> > > cached platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want 
> > > to run the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top 
> > > level req_check is required or not. We should also look at what 
> > > check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think 
> > > about these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null && cordova 
> > > platform doctor $PLATFORM; (cordova platform remove $PLATFORM 
> > > 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the 
> > > temporary project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform 
> > > requirements [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to 
> > > do so, but it's an incredibly ugly thing and doesn't belong in a 
> > > public facing interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) 
> > > > [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform 
> > > > repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently 
> > > > >+check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the 
> > > > >platform check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to 
> > > > >cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for 
> > > > >each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is 
> > > > >present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor 
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter 
> > > > >>should support  doctoring for available but not added 
> > > > >>platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` 
> > > > >> that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about 
> > > > >>CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate 
> > > > >>to people that  the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we 
> > > > >>introduced when  we  made `cordova platform add` not call 
> > > > >>check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have 
> > > > >> > is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. 
> > > > >> > This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on 
> > > > >> > stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium 
> > > > >> > doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run 
> > > > >> > cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues 
> > > > >> > so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, 
> > > > >> > fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we 
> > > > >> > implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing 
> > > > >> > functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will 
> > > > >> > continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ----------------------------------------------------------------
> > > > ----- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  ] 
> Z[ ܙݘK \X K ܙ B

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
This was only an initial implementation - no pull request has been sent. I think this is just a way for folks to play with what Vlad has now. I am sure we will change the verb name before a PR comes in. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com] 
Sent: Monday, April 20, 2015 11:59 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command and
> check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls corresponding
> cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper around
> platforms' check_reqs scripts. It returns a promise, either resolved if
> check_reqs platform script is found and ran successfully or rejected in case if
> check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' or 'Gradle
> build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement is properly
> installed/satisfied
>         - reason - error, reported by requirements check routines if requirement
> is missing.
> 
> Please note that work is still in progress, and will be changed according to
> review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project seems
> harder, I would suggest we make it a part of a second phase of this
> implementation. For now, we have a basic version that simply abstracts out
> existing check_reqs into a separate, platform level command. This could be a
> good first phase, and should also give us an idea about how developers use
> this command.
> 
> As a part of Phase 2, anyone from the community should be able to build on
> a cordova level check reqs, and possibly extend it to checking reqs when no
> project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the extra
> "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs in
> add,
> we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor
> PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I need
> for
> a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the
> environment
> for a platform, they aren't likely to want to go down a "build" rabbit hole,
> so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to run
> `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know they
> want
> to develop for PLATFORM, they could reasonably want to set up their
> requirements for that platform before trying to create a project...
> 
> I don't know if anyone's check_reqs scripts actually requires a project, I
> actually think they don't, so it's probably sufficient to run them straight
> from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a good
> > idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  If
> > > requirements
> > > used to be checked on 'platform add', then I suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of check_reqs for
> > > platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform and
> > > report results.
> > > 1.5 - Just download the check_reqs script (or use it from the cached
> > > platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want to run
> > > the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top level
> > > req_check is required or not. We should also look at what check_reqs do
> > > today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think about
> > > these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > > cordova platform doctor $PLATFORM;
> > > (cordova platform remove $PLATFORM 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the temporary
> > > project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform requirements
> > > [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to do so,
> > > but it's an incredibly ugly thing and doesn't belong in a public facing
> > > interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the platform
> > > > >check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter should
> > > > >>support
> > > > >> doctoring for available but not added platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate to people
> > > > >>that
> > > > >> the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we introduced
> > > > >>when
> > > > >> we
> > > > >> made `cordova platform add` not call check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
>  ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
-1

Didn't everyone agree to call it `cordova doctor` or worst, `cordova requirements`?

> -----Original Message-----
> From: Vladimir Kotikov (Akvelon) [mailto:v-vlkoti@microsoft.com]
> Sent: Monday, April 20, 2015 11:46 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Hi, list.
> 
> I would like to share a draft implementation for check_reqs command and
> check_reqs API:
> Changes  could be found here:
>     CLI: https://github.com/apache/cordova-
> cli/compare/master...MSOpenTech:requirements_check
>     LIB: https://github.com/apache/cordova-
> lib/compare/master...MSOpenTech:requirements_check
>     Cordova-android: https://github.com/apache/cordova-
> android/compare/master...MSOpenTech:requirements_check
> 
> The implementation consists of following:
> 1. 'cordova check-reqs' command for cordova CLI, which calls corresponding
> cordova-lib API with options, specified from CLI
> 
> 2. 'check_reqs' module for cordova-lib, which works as a wrapper around
> platforms' check_reqs scripts. It returns a promise, either resolved if
> check_reqs platform script is found and ran successfully or rejected in case if
> check_reqs script is failed due to some internal errors or not found at all.
> 
> 3. check_reqs script for android platform, updated to return array of
> requirements.
> 
>     * Each requirements is an object with following fields:
>         - id - some short id, could be useful for tools, that consume API directly
>         - name - readable name for this requirement, such as 'Jav JDK' or 'Gradle
> build tools', etc.
>         - installed - Boolean paremeter that indicates if requirement is properly
> installed/satisfied
>         - reason - error, reported by requirements check routines if requirement
> is missing.
> 
> Please note that work is still in progress, and will be changed according to
> review comments.
> TBD:
>     * move presentation logic from LIB to CLI;
>     * refine data format, returned by cordova-lib API
>     * add other platforms
>     * and more... :)
> 
> ---------------
> Best regards, Vladimir
> 
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, 20 April, 2015 3:49
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> Looks like implementing a global level check_reqs without a project seems
> harder, I would suggest we make it a part of a second phase of this
> implementation. For now, we have a basic version that simply abstracts out
> existing check_reqs into a separate, platform level command. This could be a
> good first phase, and should also give us an idea about how developers use
> this command.
> 
> As a part of Phase 2, anyone from the community should be able to build on
> a cordova level check reqs, and possibly extend it to checking reqs when no
> project is present.
> 
> 
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Wednesday, April 15, 2015 8:53 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
> 
> We already support:
> 
> `cordova build android`
> 
> There's no need for the extra `platform` verb..
> 
> But,
> `cordova build android --nobuild` isn't any more intuitive than w/ the extra
> "platform".
> 
> 
> And yes, as I noted, and others have noted, we used to run check_reqs in
> add,
> we're not going back to doing that.
> 
> A `cordova doctor` or `cordova requirements` verb seems fine.
> 
> I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor
> PLATFORM`,
> 
> As for when someone is likely to want to ask "what requirements do I need
> for
> a platform", it's fairly arbitrary.
> 
> Someone who is given a project might know that they don't have the
> environment
> for a platform, they aren't likely to want to go down a "build" rabbit hole,
> so, I'm -1 on hiding it anywhere near build.
> 
> It's perfectly reasonable from my perspective for someone to want to run
> `cordova requirements PLATFORM` without a project at all.
> Imagine someone is getting started, they "install cordova", and know they
> want
> to develop for PLATFORM, they could reasonably want to set up their
> requirements for that platform before trying to create a project...
> 
> I don't know if anyone's check_reqs scripts actually requires a project, I
> actually think they don't, so it's probably sufficient to run them straight
> from the platform origin instead of from a created project.
> 
> One notable thing: check_reqs isn't a .js file yet, as an API, it's
> "check_reqs" (*nix) and "check_reqs" + something from %PATHEXT%
> (Windows)
> 
> > -----Original Message-----
> > From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> > Andrew Grieve
> > Sent: Wednesday, April 15, 2015 11:00 AM
> > To: dev
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > We've worked to make iOS add'able from Windows, so I do think it's a good
> > idea to *not* run check_reqs from add (we used to but removed it).
> >
> > We already run it on build, so potentially we already have this command:
> > "cordova platform build android --nobuild"
> >
> >
> >
> > On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
> > wrote:
> >
> > > My opinions.
> > >
> > > Q1.  Just say that platform is not added, so cannot check requirements.
> > >
> > > I don't think it is important to support the platform-not-added case.
> > >
> > > Q2.  Should the requirements be checked when a platform is added, or
> > when
> > > it is built ?
> > >
> > > 'platform add' should work even when the requirements are not met.  If
> > > requirements
> > > used to be checked on 'platform add', then I suspect they were removed
> to
> > > support
> > > the scenario of using the same Cordova project on multiple host
> platforms.
> > > E.g. a team with some developers on Windows and some on Mac.  As a
> user
> > of
> > > Cordova CLI on Windows, I want it to be OK to have the project I'm
> working
> > > on have the
> > > iOS platform added and I only get errors if I try to do something (build,
> > > emulate)
> > > which requires the native SDK.
> > >
> > > Leo
> > >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 6:04 PM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > I think you raise an interesting point on the behavior of check_reqs for
> > > platform that are not yet added.
> > >
> > > The options, as you mention are
> > >
> > > Question 1
> > > 1 -  Add the platform, run check_reqs script, remove the platform and
> > > report results.
> > > 1.5 - Just download the check_reqs script (or use it from the cached
> > > platform directory) without adding the platform, and run that.
> > > 2 -  Just say that platform is not added, so cannot check requirements.
> > >
> > > Question 2: It also comes to the case of - when would a user want to run
> > > the requirement check
> > > - before starting a cordova project ?
> > > - before adding a platform ?
> > > - should the requirements be checked when a platform is added, or
> when it
> > > is built ?
> > >
> > > The answer to the above questions will help us understand if a top level
> > > req_check is required or not. We should also look at what check_reqs do
> > > today - the do not tell you ALL the missing pieces for building an SDK.
> > >
> > > It would be good to hear what the others in the community think about
> > > these answers.
> > >
> > > -----Original Message-----
> > > From: Josh Soref [mailto:jsoref@blackberry.com]
> > > Sent: Tuesday, April 14, 2015 9:55 AM
> > > To: dev@cordova.apache.org
> > > Subject: RE: Proposal: Expose check_reqs at the CLI level
> > >
> > > Fwiw, for the case of a platform that isn't in a project yet, I'd
> > > envision:
> > >
> > > `cordova platform doctor not-yet-installed`
> > >
> > > to do effectively:
> > > ```sh
> > > (
> > > PLATFORM=not-yet-installed
> > > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > > cordova platform doctor $PLATFORM;
> > > (cordova platform remove $PLATFORM 2>&1)
> > > )
> > > ```
> > >
> > > i.e. add the platform (or create a temporary project, and add the
> platform
> > > to the temporary project), and then run platform doctor, and then
> remove
> > > the
> > > platform (and if it was in a temporary project, delete the temporary
> > > project...).
> > >
> > > I don't really want to expos a 'check_reqs' verb via CLI.
> > >
> > > If we really really want to, we could have `cordova platform requirements
> > > [PLATFORM...]` as a verb, that's ok.
> > >
> > > If someone wants to call `check_reqs` directly, they're welcome to do so,
> > > but it's an incredibly ugly thing and doesn't belong in a public facing
> > > interface.
> > >
> > >
> > > > -----Original Message-----
> > > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > > To: dev@cordova.apache.org
> > > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > > >
> > > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > > will
> > > > just proxy the call to the platforms.
> > > >
> > > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com>
> wrote:
> > > >
> > > > >+1 if check_reqs are kept in the platform repos, currently check_reqs
> > > > >is
> > > a
> > > > >platform concerned
> > > > >if it's available from CLI it will be just a proxy to the platform
> > > > >check_reqs.
> > > > >
> > > > >if don't keep it in the platform repo, and add this logic to cli repo,
> > > we
> > > > >will need to maintained a list of reqs for each platform, for each
> > > version
> > > > >of each platform.
> > > > >
> > > > >This is the reason why it was removed from cli and just is present in
> > > the
> > > > >platform repo/code
> > > > >
> > > > >
> > > > >
> > > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref
> <js...@blackberry.com>
> > > > wrote:
> > > > >
> > > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > > >>{platformname}`.
> > > > >>
> > > > >> The former should apply to all current platforms, the latter should
> > > > >>support
> > > > >> doctoring for available but not added platforms -- if said platform
> > > were
> > > > >> specified.
> > > > >> And we should note in the documentation or `cordova doctor` that it
> > > may
> > > > >>do
> > > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > > possibly
> > > > >> mentioning when a plugin is out of date -- just to indicate to people
> > > > >>that
> > > > >> the behavior may evolve.
> > > > >>
> > > > >> Not that this is more or less fixing a regression that we introduced
> > > > >>when
> > > > >> we
> > > > >> made `cordova platform add` not call check_reqs.
> > > > >>
> > > > >> > -----Original Message-----
> > > > >> > From: Parashuram N (MS OPEN TECH)
> > [mailto:panarasi@microsoft.com]
> > > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > > >> > To: dev@cordova.apache.org
> > > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > > >> >
> > > > >> > Hi,
> > > > >> >
> > > > >> > One of the main problems a lot of developers seem to have is the
> > > > >>issue to
> > > > >> > setting up their machines for building various platforms. This came
> > > > >>out
> > > > >> from
> > > > >> > the Stack overflow survey, and the number of questions on stack
> > > > >>overflow,
> > > > >> > twitter. Etc.
> > > > >> >
> > > > >> > I thought it would be helpful to have a check_reqs command
> > exposed
> > > at
> > > > >>the
> > > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > > > >>idea
> > > > >> is
> > > > >> >
> > > > >> >
> > > > >> > 1.       Have a way for the user to see if they have all
> > > dependencies
> > > > >> (like
> > > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build
> time,
> > but
> > > > >> > moving it out to a CLI level command where you can run cordova
> > > > >>check_reqs
> > > > >> > (or something similar) would be useful to the users.
> > > > >> >
> > > > >> > 2.       Today, the build command shows one error at a time. The
> > > > >> check_reqs
> > > > >> > could run all the checks, and show a summary of the issues so that
> > > the
> > > > >> user
> > > > >> > can fix them all, instead of fixing one, running build, fixing
> > > again,
> > > > >> etc.
> > > > >> >
> > > > >> > What does the community think of this idea ? Can we implement a
> > > > >>prototype
> > > > >> > and see if this is useful to our developers ?
> > > > >> > Note that this does not change or break existing functionality - it
> > > > >>just
> > > > >> exposes
> > > > >> > the already existing check_reqs in the CLI. Build will continue to
> > > > >>call
> > > > >> > check_reqs.
> > > > >> >
> > > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >--
> > > > >Carlos Santana
> > > > ><cs...@gmail.com>
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> B
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> KKKKKKKKKKCB  [  X  ܚX KK[XZ[
>  ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
>  ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Vladimir Kotikov (Akvelon)" <v-...@microsoft.com>.
Hi, list.

I would like to share a draft implementation for check_reqs command and check_reqs API: 
Changes  could be found here:
    CLI: https://github.com/apache/cordova-cli/compare/master...MSOpenTech:requirements_check 
    LIB: https://github.com/apache/cordova-lib/compare/master...MSOpenTech:requirements_check 
    Cordova-android: https://github.com/apache/cordova-android/compare/master...MSOpenTech:requirements_check 

The implementation consists of following:
1. 'cordova check-reqs' command for cordova CLI, which calls corresponding cordova-lib API with options, specified from CLI

2. 'check_reqs' module for cordova-lib, which works as a wrapper around platforms' check_reqs scripts. It returns a promise, either resolved if check_reqs platform script is found and ran successfully or rejected in case if check_reqs script is failed due to some internal errors or not found at all.

3. check_reqs script for android platform, updated to return array of requirements.

    * Each requirements is an object with following fields: 
        - id - some short id, could be useful for tools, that consume API directly
        - name - readable name for this requirement, such as 'Jav JDK' or 'Gradle build tools', etc.
        - installed - Boolean paremeter that indicates if requirement is properly installed/satisfied
        - reason - error, reported by requirements check routines if requirement is missing.

Please note that work is still in progress, and will be changed according to review comments.
TBD:
    * move presentation logic from LIB to CLI;
    * refine data format, returned by cordova-lib API
    * add other platforms
    * and more... :)

---------------
Best regards, Vladimir

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Monday, 20 April, 2015 3:49
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Looks like implementing a global level check_reqs without a project seems harder, I would suggest we make it a part of a second phase of this implementation. For now, we have a basic version that simply abstracts out existing check_reqs into a separate, platform level command. This could be a good first phase, and should also give us an idea about how developers use this command.

As a part of Phase 2, anyone from the community should be able to build on a cordova level check reqs, and possibly extend it to checking reqs when no project is present. 


-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com]
Sent: Wednesday, April 15, 2015 8:53 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

We already support:

`cordova build android`

There's no need for the extra `platform` verb..

But,
`cordova build android --nobuild` isn't any more intuitive than w/ the extra "platform".


And yes, as I noted, and others have noted, we used to run check_reqs in add, 
we're not going back to doing that.

A `cordova doctor` or `cordova requirements` verb seems fine.

I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor 
PLATFORM`,

As for when someone is likely to want to ask "what requirements do I need for 
a platform", it's fairly arbitrary.

Someone who is given a project might know that they don't have the environment 
for a platform, they aren't likely to want to go down a "build" rabbit hole, 
so, I'm -1 on hiding it anywhere near build.

It's perfectly reasonable from my perspective for someone to want to run 
`cordova requirements PLATFORM` without a project at all.
Imagine someone is getting started, they "install cordova", and know they want 
to develop for PLATFORM, they could reasonably want to set up their 
requirements for that platform before trying to create a project...

I don't know if anyone's check_reqs scripts actually requires a project, I 
actually think they don't, so it's probably sufficient to run them straight 
from the platform origin instead of from a created project.

One notable thing: check_reqs isn't a .js file yet, as an API, it's 
"check_reqs" (*nix) and "check_reqs" + something from %PATHEXT% (Windows)

> -----Original Message-----
> From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> Andrew Grieve
> Sent: Wednesday, April 15, 2015 11:00 AM
> To: dev
> Subject: Re: Proposal: Expose check_reqs at the CLI level
>
> We've worked to make iOS add'able from Windows, so I do think it's a good
> idea to *not* run check_reqs from add (we used to but removed it).
>
> We already run it on build, so potentially we already have this command:
> "cordova platform build android --nobuild"
>
>
>
> On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
> wrote:
>
> > My opinions.
> >
> > Q1.  Just say that platform is not added, so cannot check requirements.
> >
> > I don't think it is important to support the platform-not-added case.
> >
> > Q2.  Should the requirements be checked when a platform is added, or
> when
> > it is built ?
> >
> > 'platform add' should work even when the requirements are not met.  If
> > requirements
> > used to be checked on 'platform add', then I suspect they were removed to
> > support
> > the scenario of using the same Cordova project on multiple host platforms.
> > E.g. a team with some developers on Windows and some on Mac.  As a user
> of
> > Cordova CLI on Windows, I want it to be OK to have the project I'm working
> > on have the
> > iOS platform added and I only get errors if I try to do something (build,
> > emulate)
> > which requires the native SDK.
> >
> > Leo
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Tuesday, April 14, 2015 6:04 PM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > I think you raise an interesting point on the behavior of check_reqs for
> > platform that are not yet added.
> >
> > The options, as you mention are
> >
> > Question 1
> > 1 -  Add the platform, run check_reqs script, remove the platform and
> > report results.
> > 1.5 - Just download the check_reqs script (or use it from the cached
> > platform directory) without adding the platform, and run that.
> > 2 -  Just say that platform is not added, so cannot check requirements.
> >
> > Question 2: It also comes to the case of - when would a user want to run
> > the requirement check
> > - before starting a cordova project ?
> > - before adding a platform ?
> > - should the requirements be checked when a platform is added, or when it
> > is built ?
> >
> > The answer to the above questions will help us understand if a top level
> > req_check is required or not. We should also look at what check_reqs do
> > today - the do not tell you ALL the missing pieces for building an SDK.
> >
> > It would be good to hear what the others in the community think about
> > these answers.
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Tuesday, April 14, 2015 9:55 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Fwiw, for the case of a platform that isn't in a project yet, I'd 
> > envision:
> >
> > `cordova platform doctor not-yet-installed`
> >
> > to do effectively:
> > ```sh
> > (
> > PLATFORM=not-yet-installed
> > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > cordova platform doctor $PLATFORM;
> > (cordova platform remove $PLATFORM 2>&1)
> > )
> > ```
> >
> > i.e. add the platform (or create a temporary project, and add the platform
> > to the temporary project), and then run platform doctor, and then remove
> > the
> > platform (and if it was in a temporary project, delete the temporary
> > project...).
> >
> > I don't really want to expos a 'check_reqs' verb via CLI.
> >
> > If we really really want to, we could have `cordova platform requirements
> > [PLATFORM...]` as a verb, that's ok.
> >
> > If someone wants to call `check_reqs` directly, they're welcome to do so,
> > but it's an incredibly ugly thing and doesn't belong in a public facing
> > interface.
> >
> >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > To: dev@cordova.apache.org
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > will
> > > just proxy the call to the platforms.
> > >
> > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> > >
> > > >+1 if check_reqs are kept in the platform repos, currently check_reqs 
> > > >is
> > a
> > > >platform concerned
> > > >if it's available from CLI it will be just a proxy to the platform
> > > >check_reqs.
> > > >
> > > >if don't keep it in the platform repo, and add this logic to cli repo,
> > we
> > > >will need to maintained a list of reqs for each platform, for each
> > version
> > > >of each platform.
> > > >
> > > >This is the reason why it was removed from cli and just is present in
> > the
> > > >platform repo/code
> > > >
> > > >
> > > >
> > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> > > wrote:
> > > >
> > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > >>{platformname}`.
> > > >>
> > > >> The former should apply to all current platforms, the latter should
> > > >>support
> > > >> doctoring for available but not added platforms -- if said platform
> > were
> > > >> specified.
> > > >> And we should note in the documentation or `cordova doctor` that it
> > may
> > > >>do
> > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > possibly
> > > >> mentioning when a plugin is out of date -- just to indicate to people
> > > >>that
> > > >> the behavior may evolve.
> > > >>
> > > >> Not that this is more or less fixing a regression that we introduced
> > > >>when
> > > >> we
> > > >> made `cordova platform add` not call check_reqs.
> > > >>
> > > >> > -----Original Message-----
> > > >> > From: Parashuram N (MS OPEN TECH)
> [mailto:panarasi@microsoft.com]
> > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > >> > To: dev@cordova.apache.org
> > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > >> >
> > > >> > Hi,
> > > >> >
> > > >> > One of the main problems a lot of developers seem to have is the
> > > >>issue to
> > > >> > setting up their machines for building various platforms. This came
> > > >>out
> > > >> from
> > > >> > the Stack overflow survey, and the number of questions on stack
> > > >>overflow,
> > > >> > twitter. Etc.
> > > >> >
> > > >> > I thought it would be helpful to have a check_reqs command
> exposed
> > at
> > > >>the
> > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > > >>idea
> > > >> is
> > > >> >
> > > >> >
> > > >> > 1.       Have a way for the user to see if they have all
> > dependencies
> > > >> (like
> > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time,
> but
> > > >> > moving it out to a CLI level command where you can run cordova
> > > >>check_reqs
> > > >> > (or something similar) would be useful to the users.
> > > >> >
> > > >> > 2.       Today, the build command shows one error at a time. The
> > > >> check_reqs
> > > >> > could run all the checks, and show a summary of the issues so that
> > the
> > > >> user
> > > >> > can fix them all, instead of fixing one, running build, fixing
> > again,
> > > >> etc.
> > > >> >
> > > >> > What does the community think of this idea ? Can we implement a
> > > >>prototype
> > > >> > and see if this is useful to our developers ?
> > > >> > Note that this does not change or break existing functionality - it
> > > >>just
> > > >> exposes
> > > >> > the already existing check_reqs in the CLI. Build will continue to
> > > >>call
> > > >> > check_reqs.
> > > >> >
> > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > >>
> > > >
> > > >
> > > >
> > > >--
> > > >Carlos Santana
> > > ><cs...@gmail.com>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
B KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCB  [  X  ܚX KK[XZ[
 ] ][  X  ܚX P ܙݘK \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
 ] Z[ ܙݘK \X K ܙ B

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
Looks like implementing a global level check_reqs without a project seems harder, I would suggest we make it a part of a second phase of this implementation. For now, we have a basic version that simply abstracts out existing check_reqs into a separate, platform level command. This could be a good first phase, and should also give us an idea about how developers use this command.

As a part of Phase 2, anyone from the community should be able to build on a cordova level check reqs, and possibly extend it to checking reqs when no project is present. 


-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com] 
Sent: Wednesday, April 15, 2015 8:53 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

We already support:

`cordova build android`

There's no need for the extra `platform` verb..

But,
`cordova build android --nobuild` isn't any more intuitive than w/ the extra 
"platform".


And yes, as I noted, and others have noted, we used to run check_reqs in add, 
we're not going back to doing that.

A `cordova doctor` or `cordova requirements` verb seems fine.

I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor 
PLATFORM`,

As for when someone is likely to want to ask "what requirements do I need for 
a platform", it's fairly arbitrary.

Someone who is given a project might know that they don't have the environment 
for a platform, they aren't likely to want to go down a "build" rabbit hole, 
so, I'm -1 on hiding it anywhere near build.

It's perfectly reasonable from my perspective for someone to want to run 
`cordova requirements PLATFORM` without a project at all.
Imagine someone is getting started, they "install cordova", and know they want 
to develop for PLATFORM, they could reasonably want to set up their 
requirements for that platform before trying to create a project...

I don't know if anyone's check_reqs scripts actually requires a project, I 
actually think they don't, so it's probably sufficient to run them straight 
from the platform origin instead of from a created project.

One notable thing: check_reqs isn't a .js file yet, as an API, it's 
"check_reqs" (*nix) and "check_reqs" + something from %PATHEXT% (Windows)

> -----Original Message-----
> From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> Andrew Grieve
> Sent: Wednesday, April 15, 2015 11:00 AM
> To: dev
> Subject: Re: Proposal: Expose check_reqs at the CLI level
>
> We've worked to make iOS add'able from Windows, so I do think it's a good
> idea to *not* run check_reqs from add (we used to but removed it).
>
> We already run it on build, so potentially we already have this command:
> "cordova platform build android --nobuild"
>
>
>
> On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
> wrote:
>
> > My opinions.
> >
> > Q1.  Just say that platform is not added, so cannot check requirements.
> >
> > I don't think it is important to support the platform-not-added case.
> >
> > Q2.  Should the requirements be checked when a platform is added, or
> when
> > it is built ?
> >
> > 'platform add' should work even when the requirements are not met.  If
> > requirements
> > used to be checked on 'platform add', then I suspect they were removed to
> > support
> > the scenario of using the same Cordova project on multiple host platforms.
> > E.g. a team with some developers on Windows and some on Mac.  As a user
> of
> > Cordova CLI on Windows, I want it to be OK to have the project I'm working
> > on have the
> > iOS platform added and I only get errors if I try to do something (build,
> > emulate)
> > which requires the native SDK.
> >
> > Leo
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Tuesday, April 14, 2015 6:04 PM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > I think you raise an interesting point on the behavior of check_reqs for
> > platform that are not yet added.
> >
> > The options, as you mention are
> >
> > Question 1
> > 1 -  Add the platform, run check_reqs script, remove the platform and
> > report results.
> > 1.5 - Just download the check_reqs script (or use it from the cached
> > platform directory) without adding the platform, and run that.
> > 2 -  Just say that platform is not added, so cannot check requirements.
> >
> > Question 2: It also comes to the case of - when would a user want to run
> > the requirement check
> > - before starting a cordova project ?
> > - before adding a platform ?
> > - should the requirements be checked when a platform is added, or when it
> > is built ?
> >
> > The answer to the above questions will help us understand if a top level
> > req_check is required or not. We should also look at what check_reqs do
> > today - the do not tell you ALL the missing pieces for building an SDK.
> >
> > It would be good to hear what the others in the community think about
> > these answers.
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Tuesday, April 14, 2015 9:55 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Fwiw, for the case of a platform that isn't in a project yet, I'd 
> > envision:
> >
> > `cordova platform doctor not-yet-installed`
> >
> > to do effectively:
> > ```sh
> > (
> > PLATFORM=not-yet-installed
> > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > cordova platform doctor $PLATFORM;
> > (cordova platform remove $PLATFORM 2>&1)
> > )
> > ```
> >
> > i.e. add the platform (or create a temporary project, and add the platform
> > to the temporary project), and then run platform doctor, and then remove
> > the
> > platform (and if it was in a temporary project, delete the temporary
> > project...).
> >
> > I don't really want to expos a 'check_reqs' verb via CLI.
> >
> > If we really really want to, we could have `cordova platform requirements
> > [PLATFORM...]` as a verb, that's ok.
> >
> > If someone wants to call `check_reqs` directly, they're welcome to do so,
> > but it's an incredibly ugly thing and doesn't belong in a public facing
> > interface.
> >
> >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > To: dev@cordova.apache.org
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > will
> > > just proxy the call to the platforms.
> > >
> > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> > >
> > > >+1 if check_reqs are kept in the platform repos, currently check_reqs 
> > > >is
> > a
> > > >platform concerned
> > > >if it's available from CLI it will be just a proxy to the platform
> > > >check_reqs.
> > > >
> > > >if don't keep it in the platform repo, and add this logic to cli repo,
> > we
> > > >will need to maintained a list of reqs for each platform, for each
> > version
> > > >of each platform.
> > > >
> > > >This is the reason why it was removed from cli and just is present in
> > the
> > > >platform repo/code
> > > >
> > > >
> > > >
> > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> > > wrote:
> > > >
> > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > >>{platformname}`.
> > > >>
> > > >> The former should apply to all current platforms, the latter should
> > > >>support
> > > >> doctoring for available but not added platforms -- if said platform
> > were
> > > >> specified.
> > > >> And we should note in the documentation or `cordova doctor` that it
> > may
> > > >>do
> > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > possibly
> > > >> mentioning when a plugin is out of date -- just to indicate to people
> > > >>that
> > > >> the behavior may evolve.
> > > >>
> > > >> Not that this is more or less fixing a regression that we introduced
> > > >>when
> > > >> we
> > > >> made `cordova platform add` not call check_reqs.
> > > >>
> > > >> > -----Original Message-----
> > > >> > From: Parashuram N (MS OPEN TECH)
> [mailto:panarasi@microsoft.com]
> > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > >> > To: dev@cordova.apache.org
> > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > >> >
> > > >> > Hi,
> > > >> >
> > > >> > One of the main problems a lot of developers seem to have is the
> > > >>issue to
> > > >> > setting up their machines for building various platforms. This came
> > > >>out
> > > >> from
> > > >> > the Stack overflow survey, and the number of questions on stack
> > > >>overflow,
> > > >> > twitter. Etc.
> > > >> >
> > > >> > I thought it would be helpful to have a check_reqs command
> exposed
> > at
> > > >>the
> > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > > >>idea
> > > >> is
> > > >> >
> > > >> >
> > > >> > 1.       Have a way for the user to see if they have all
> > dependencies
> > > >> (like
> > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time,
> but
> > > >> > moving it out to a CLI level command where you can run cordova
> > > >>check_reqs
> > > >> > (or something similar) would be useful to the users.
> > > >> >
> > > >> > 2.       Today, the build command shows one error at a time. The
> > > >> check_reqs
> > > >> > could run all the checks, and show a summary of the issues so that
> > the
> > > >> user
> > > >> > can fix them all, instead of fixing one, running build, fixing
> > again,
> > > >> etc.
> > > >> >
> > > >> > What does the community think of this idea ? Can we implement a
> > > >>prototype
> > > >> > and see if this is useful to our developers ?
> > > >> > Note that this does not change or break existing functionality - it
> > > >>just
> > > >> exposes
> > > >> > the already existing check_reqs in the CLI. Build will continue to
> > > >>call
> > > >> > check_reqs.
> > > >> >
> > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > >>
> > > >
> > > >
> > > >
> > > >--
> > > >Carlos Santana
> > > ><cs...@gmail.com>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >

RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
We already support:

`cordova build android`

There's no need for the extra `platform` verb..

But,
`cordova build android --nobuild` isn't any more intuitive than w/ the extra 
"platform".


And yes, as I noted, and others have noted, we used to run check_reqs in add, 
we're not going back to doing that.

A `cordova doctor` or `cordova requirements` verb seems fine.

I'm also fine `cordova doctor PLATFORM` instead of `cordova platform doctor 
PLATFORM`,

As for when someone is likely to want to ask "what requirements do I need for 
a platform", it's fairly arbitrary.

Someone who is given a project might know that they don't have the environment 
for a platform, they aren't likely to want to go down a "build" rabbit hole, 
so, I'm -1 on hiding it anywhere near build.

It's perfectly reasonable from my perspective for someone to want to run 
`cordova requirements PLATFORM` without a project at all.
Imagine someone is getting started, they "install cordova", and know they want 
to develop for PLATFORM, they could reasonably want to set up their 
requirements for that platform before trying to create a project...

I don't know if anyone's check_reqs scripts actually requires a project, I 
actually think they don't, so it's probably sufficient to run them straight 
from the platform origin instead of from a created project.

One notable thing: check_reqs isn't a .js file yet, as an API, it's 
"check_reqs" (*nix) and "check_reqs" + something from %PATHEXT% (Windows)

> -----Original Message-----
> From: agrieve@google.com [mailto:agrieve@google.com] On Behalf Of
> Andrew Grieve
> Sent: Wednesday, April 15, 2015 11:00 AM
> To: dev
> Subject: Re: Proposal: Expose check_reqs at the CLI level
>
> We've worked to make iOS add'able from Windows, so I do think it's a good
> idea to *not* run check_reqs from add (we used to but removed it).
>
> We already run it on build, so potentially we already have this command:
> "cordova platform build android --nobuild"
>
>
>
> On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
> wrote:
>
> > My opinions.
> >
> > Q1.  Just say that platform is not added, so cannot check requirements.
> >
> > I don't think it is important to support the platform-not-added case.
> >
> > Q2.  Should the requirements be checked when a platform is added, or
> when
> > it is built ?
> >
> > 'platform add' should work even when the requirements are not met.  If
> > requirements
> > used to be checked on 'platform add', then I suspect they were removed to
> > support
> > the scenario of using the same Cordova project on multiple host platforms.
> > E.g. a team with some developers on Windows and some on Mac.  As a user
> of
> > Cordova CLI on Windows, I want it to be OK to have the project I'm working
> > on have the
> > iOS platform added and I only get errors if I try to do something (build,
> > emulate)
> > which requires the native SDK.
> >
> > Leo
> >
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Tuesday, April 14, 2015 6:04 PM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > I think you raise an interesting point on the behavior of check_reqs for
> > platform that are not yet added.
> >
> > The options, as you mention are
> >
> > Question 1
> > 1 -  Add the platform, run check_reqs script, remove the platform and
> > report results.
> > 1.5 - Just download the check_reqs script (or use it from the cached
> > platform directory) without adding the platform, and run that.
> > 2 -  Just say that platform is not added, so cannot check requirements.
> >
> > Question 2: It also comes to the case of - when would a user want to run
> > the requirement check
> > - before starting a cordova project ?
> > - before adding a platform ?
> > - should the requirements be checked when a platform is added, or when it
> > is built ?
> >
> > The answer to the above questions will help us understand if a top level
> > req_check is required or not. We should also look at what check_reqs do
> > today - the do not tell you ALL the missing pieces for building an SDK.
> >
> > It would be good to hear what the others in the community think about
> > these answers.
> >
> > -----Original Message-----
> > From: Josh Soref [mailto:jsoref@blackberry.com]
> > Sent: Tuesday, April 14, 2015 9:55 AM
> > To: dev@cordova.apache.org
> > Subject: RE: Proposal: Expose check_reqs at the CLI level
> >
> > Fwiw, for the case of a platform that isn't in a project yet, I'd 
> > envision:
> >
> > `cordova platform doctor not-yet-installed`
> >
> > to do effectively:
> > ```sh
> > (
> > PLATFORM=not-yet-installed
> > (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> > cordova platform doctor $PLATFORM;
> > (cordova platform remove $PLATFORM 2>&1)
> > )
> > ```
> >
> > i.e. add the platform (or create a temporary project, and add the platform
> > to the temporary project), and then run platform doctor, and then remove
> > the
> > platform (and if it was in a temporary project, delete the temporary
> > project...).
> >
> > I don't really want to expos a 'check_reqs' verb via CLI.
> >
> > If we really really want to, we could have `cordova platform requirements
> > [PLATFORM...]` as a verb, that's ok.
> >
> > If someone wants to call `check_reqs` directly, they're welcome to do so,
> > but it's an incredibly ugly thing and doesn't belong in a public facing
> > interface.
> >
> >
> > > -----Original Message-----
> > > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > > Sent: Tuesday, April 14, 2015 10:19 AM
> > > To: dev@cordova.apache.org
> > > Subject: Re: Proposal: Expose check_reqs at the CLI level
> > >
> > > Carlos, you are right, check_reqs should be in the platform repo, CLI
> > will
> > > just proxy the call to the platforms.
> > >
> > > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> > >
> > > >+1 if check_reqs are kept in the platform repos, currently check_reqs 
> > > >is
> > a
> > > >platform concerned
> > > >if it's available from CLI it will be just a proxy to the platform
> > > >check_reqs.
> > > >
> > > >if don't keep it in the platform repo, and add this logic to cli repo,
> > we
> > > >will need to maintained a list of reqs for each platform, for each
> > version
> > > >of each platform.
> > > >
> > > >This is the reason why it was removed from cli and just is present in
> > the
> > > >platform repo/code
> > > >
> > > >
> > > >
> > > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> > > wrote:
> > > >
> > > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > > >>{platformname}`.
> > > >>
> > > >> The former should apply to all current platforms, the latter should
> > > >>support
> > > >> doctoring for available but not added platforms -- if said platform
> > were
> > > >> specified.
> > > >> And we should note in the documentation or `cordova doctor` that it
> > may
> > > >>do
> > > >> other checks -- e.g. linting the config.xml, warning about CSP,
> > possibly
> > > >> mentioning when a plugin is out of date -- just to indicate to people
> > > >>that
> > > >> the behavior may evolve.
> > > >>
> > > >> Not that this is more or less fixing a regression that we introduced
> > > >>when
> > > >> we
> > > >> made `cordova platform add` not call check_reqs.
> > > >>
> > > >> > -----Original Message-----
> > > >> > From: Parashuram N (MS OPEN TECH)
> [mailto:panarasi@microsoft.com]
> > > >> > Sent: Monday, April 13, 2015 2:53 PM
> > > >> > To: dev@cordova.apache.org
> > > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > > >> >
> > > >> > Hi,
> > > >> >
> > > >> > One of the main problems a lot of developers seem to have is the
> > > >>issue to
> > > >> > setting up their machines for building various platforms. This came
> > > >>out
> > > >> from
> > > >> > the Stack overflow survey, and the number of questions on stack
> > > >>overflow,
> > > >> > twitter. Etc.
> > > >> >
> > > >> > I thought it would be helpful to have a check_reqs command
> exposed
> > at
> > > >>the
> > > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > > >>idea
> > > >> is
> > > >> >
> > > >> >
> > > >> > 1.       Have a way for the user to see if they have all
> > dependencies
> > > >> (like
> > > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time,
> but
> > > >> > moving it out to a CLI level command where you can run cordova
> > > >>check_reqs
> > > >> > (or something similar) would be useful to the users.
> > > >> >
> > > >> > 2.       Today, the build command shows one error at a time. The
> > > >> check_reqs
> > > >> > could run all the checks, and show a summary of the issues so that
> > the
> > > >> user
> > > >> > can fix them all, instead of fixing one, running build, fixing
> > again,
> > > >> etc.
> > > >> >
> > > >> > What does the community think of this idea ? Can we implement a
> > > >>prototype
> > > >> > and see if this is useful to our developers ?
> > > >> > Note that this does not change or break existing functionality - it
> > > >>just
> > > >> exposes
> > > >> > the already existing check_reqs in the CLI. Build will continue to
> > > >>call
> > > >> > check_reqs.
> > > >> >
> > > >> > Please vote on this proposal, or raise any concerns you may have.
> > > >>
> > > >
> > > >
> > > >
> > > >--
> > > >Carlos Santana
> > > ><cs...@gmail.com>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >

Re: Proposal: Expose check_reqs at the CLI level

Posted by Andrew Grieve <ag...@chromium.org>.
We've worked to make iOS add'able from Windows, so I do think it's a good
idea to *not* run check_reqs from add (we used to but removed it).

We already run it on build, so potentially we already have this command:
"cordova platform build android --nobuild"



On Tue, Apr 14, 2015 at 9:51 PM, Treggiari, Leo <le...@intel.com>
wrote:

> My opinions.
>
> Q1.  Just say that platform is not added, so cannot check requirements.
>
> I don't think it is important to support the platform-not-added case.
>
> Q2.  Should the requirements be checked when a platform is added, or when
> it is built ?
>
> 'platform add' should work even when the requirements are not met.  If
> requirements
> used to be checked on 'platform add', then I suspect they were removed to
> support
> the scenario of using the same Cordova project on multiple host platforms.
> E.g. a team with some developers on Windows and some on Mac.  As a user of
> Cordova CLI on Windows, I want it to be OK to have the project I'm working
> on have the
> iOS platform added and I only get errors if I try to do something (build,
> emulate)
> which requires the native SDK.
>
> Leo
>
> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Tuesday, April 14, 2015 6:04 PM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
>
> I think you raise an interesting point on the behavior of check_reqs for
> platform that are not yet added.
>
> The options, as you mention are
>
> Question 1
> 1 -  Add the platform, run check_reqs script, remove the platform and
> report results.
> 1.5 - Just download the check_reqs script (or use it from the cached
> platform directory) without adding the platform, and run that.
> 2 -  Just say that platform is not added, so cannot check requirements.
>
> Question 2: It also comes to the case of - when would a user want to run
> the requirement check
> - before starting a cordova project ?
> - before adding a platform ?
> - should the requirements be checked when a platform is added, or when it
> is built ?
>
> The answer to the above questions will help us understand if a top level
> req_check is required or not. We should also look at what check_reqs do
> today - the do not tell you ALL the missing pieces for building an SDK.
>
> It would be good to hear what the others in the community think about
> these answers.
>
> -----Original Message-----
> From: Josh Soref [mailto:jsoref@blackberry.com]
> Sent: Tuesday, April 14, 2015 9:55 AM
> To: dev@cordova.apache.org
> Subject: RE: Proposal: Expose check_reqs at the CLI level
>
> Fwiw, for the case of a platform that isn't in a project yet, I'd envision:
>
> `cordova platform doctor not-yet-installed`
>
> to do effectively:
> ```sh
> (
> PLATFORM=not-yet-installed
> (cordova platform add $PLATFORM 2>&1) > /dev/null &&
> cordova platform doctor $PLATFORM;
> (cordova platform remove $PLATFORM 2>&1)
> )
> ```
>
> i.e. add the platform (or create a temporary project, and add the platform
> to the temporary project), and then run platform doctor, and then remove
> the
> platform (and if it was in a temporary project, delete the temporary
> project...).
>
> I don't really want to expos a 'check_reqs' verb via CLI.
>
> If we really really want to, we could have `cordova platform requirements
> [PLATFORM...]` as a verb, that's ok.
>
> If someone wants to call `check_reqs` directly, they're welcome to do so,
> but it's an incredibly ugly thing and doesn't belong in a public facing
> interface.
>
>
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Tuesday, April 14, 2015 10:19 AM
> > To: dev@cordova.apache.org
> > Subject: Re: Proposal: Expose check_reqs at the CLI level
> >
> > Carlos, you are right, check_reqs should be in the platform repo, CLI
> will
> > just proxy the call to the platforms.
> >
> > On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> >
> > >+1 if check_reqs are kept in the platform repos, currently check_reqs is
> a
> > >platform concerned
> > >if it's available from CLI it will be just a proxy to the platform
> > >check_reqs.
> > >
> > >if don't keep it in the platform repo, and add this logic to cli repo,
> we
> > >will need to maintained a list of reqs for each platform, for each
> version
> > >of each platform.
> > >
> > >This is the reason why it was removed from cli and just is present in
> the
> > >platform repo/code
> > >
> > >
> > >
> > >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> > wrote:
> > >
> > >> I'm +1 for `cordova doctor` and `cordova platform doctor
> > >>{platformname}`.
> > >>
> > >> The former should apply to all current platforms, the latter should
> > >>support
> > >> doctoring for available but not added platforms -- if said platform
> were
> > >> specified.
> > >> And we should note in the documentation or `cordova doctor` that it
> may
> > >>do
> > >> other checks -- e.g. linting the config.xml, warning about CSP,
> possibly
> > >> mentioning when a plugin is out of date -- just to indicate to people
> > >>that
> > >> the behavior may evolve.
> > >>
> > >> Not that this is more or less fixing a regression that we introduced
> > >>when
> > >> we
> > >> made `cordova platform add` not call check_reqs.
> > >>
> > >> > -----Original Message-----
> > >> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > >> > Sent: Monday, April 13, 2015 2:53 PM
> > >> > To: dev@cordova.apache.org
> > >> > Subject: Proposal: Expose check_reqs at the CLI level
> > >> >
> > >> > Hi,
> > >> >
> > >> > One of the main problems a lot of developers seem to have is the
> > >>issue to
> > >> > setting up their machines for building various platforms. This came
> > >>out
> > >> from
> > >> > the Stack overflow survey, and the number of questions on stack
> > >>overflow,
> > >> > twitter. Etc.
> > >> >
> > >> > I thought it would be helpful to have a check_reqs command exposed
> at
> > >>the
> > >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> > >>idea
> > >> is
> > >> >
> > >> >
> > >> > 1.       Have a way for the user to see if they have all
> dependencies
> > >> (like
> > >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> > >> > moving it out to a CLI level command where you can run cordova
> > >>check_reqs
> > >> > (or something similar) would be useful to the users.
> > >> >
> > >> > 2.       Today, the build command shows one error at a time. The
> > >> check_reqs
> > >> > could run all the checks, and show a summary of the issues so that
> the
> > >> user
> > >> > can fix them all, instead of fixing one, running build, fixing
> again,
> > >> etc.
> > >> >
> > >> > What does the community think of this idea ? Can we implement a
> > >>prototype
> > >> > and see if this is useful to our developers ?
> > >> > Note that this does not change or break existing functionality - it
> > >>just
> > >> exposes
> > >> > the already existing check_reqs in the CLI. Build will continue to
> > >>call
> > >> > check_reqs.
> > >> >
> > >> > Please vote on this proposal, or raise any concerns you may have.
> > >>
> > >
> > >
> > >
> > >--
> > >Carlos Santana
> > ><cs...@gmail.com>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>

RE: Proposal: Expose check_reqs at the CLI level

Posted by "Treggiari, Leo" <le...@intel.com>.
My opinions.

Q1.  Just say that platform is not added, so cannot check requirements. 

I don't think it is important to support the platform-not-added case.

Q2.  Should the requirements be checked when a platform is added, or when it is built ?

'platform add' should work even when the requirements are not met.  If requirements 
used to be checked on 'platform add', then I suspect they were removed to support
the scenario of using the same Cordova project on multiple host platforms.
E.g. a team with some developers on Windows and some on Mac.  As a user of
Cordova CLI on Windows, I want it to be OK to have the project I'm working on have the 
iOS platform added and I only get errors if I try to do something (build, emulate) 
which requires the native SDK.

Leo

-----Original Message-----
From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com] 
Sent: Tuesday, April 14, 2015 6:04 PM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

I think you raise an interesting point on the behavior of check_reqs for platform that are not yet added. 

The options, as you mention are 

Question 1
1 -  Add the platform, run check_reqs script, remove the platform and report results.
1.5 - Just download the check_reqs script (or use it from the cached platform directory) without adding the platform, and run that. 
2 -  Just say that platform is not added, so cannot check requirements. 

Question 2: It also comes to the case of - when would a user want to run the requirement check
- before starting a cordova project ?
- before adding a platform ? 
- should the requirements be checked when a platform is added, or when it is built ? 

The answer to the above questions will help us understand if a top level req_check is required or not. We should also look at what check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.

It would be good to hear what the others in the community think about these answers. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com] 
Sent: Tuesday, April 14, 2015 9:55 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Fwiw, for the case of a platform that isn't in a project yet, I'd envision:

`cordova platform doctor not-yet-installed`

to do effectively:
```sh
(
PLATFORM=not-yet-installed
(cordova platform add $PLATFORM 2>&1) > /dev/null &&
cordova platform doctor $PLATFORM;
(cordova platform remove $PLATFORM 2>&1)
)
```

i.e. add the platform (or create a temporary project, and add the platform
to the temporary project), and then run platform doctor, and then remove the
platform (and if it was in a temporary project, delete the temporary
project...).

I don't really want to expos a 'check_reqs' verb via CLI.

If we really really want to, we could have `cordova platform requirements
[PLATFORM...]` as a verb, that's ok.

If someone wants to call `check_reqs` directly, they're welcome to do so,
but it's an incredibly ugly thing and doesn't belong in a public facing
interface.


> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Tuesday, April 14, 2015 10:19 AM
> To: dev@cordova.apache.org
> Subject: Re: Proposal: Expose check_reqs at the CLI level
> 
> Carlos, you are right, check_reqs should be in the platform repo, CLI will
> just proxy the call to the platforms.
> 
> On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> 
> >+1 if check_reqs are kept in the platform repos, currently check_reqs is
a
> >platform concerned
> >if it's available from CLI it will be just a proxy to the platform
> >check_reqs.
> >
> >if don't keep it in the platform repo, and add this logic to cli repo, we
> >will need to maintained a list of reqs for each platform, for each
version
> >of each platform.
> >
> >This is the reason why it was removed from cli and just is present in the
> >platform repo/code
> >
> >
> >
> >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> wrote:
> >
> >> I'm +1 for `cordova doctor` and `cordova platform doctor
> >>{platformname}`.
> >>
> >> The former should apply to all current platforms, the latter should
> >>support
> >> doctoring for available but not added platforms -- if said platform
were
> >> specified.
> >> And we should note in the documentation or `cordova doctor` that it may
> >>do
> >> other checks -- e.g. linting the config.xml, warning about CSP,
possibly
> >> mentioning when a plugin is out of date -- just to indicate to people
> >>that
> >> the behavior may evolve.
> >>
> >> Not that this is more or less fixing a regression that we introduced
> >>when
> >> we
> >> made `cordova platform add` not call check_reqs.
> >>
> >> > -----Original Message-----
> >> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> >> > Sent: Monday, April 13, 2015 2:53 PM
> >> > To: dev@cordova.apache.org
> >> > Subject: Proposal: Expose check_reqs at the CLI level
> >> >
> >> > Hi,
> >> >
> >> > One of the main problems a lot of developers seem to have is the
> >>issue to
> >> > setting up their machines for building various platforms. This came
> >>out
> >> from
> >> > the Stack overflow survey, and the number of questions on stack
> >>overflow,
> >> > twitter. Etc.
> >> >
> >> > I thought it would be helpful to have a check_reqs command exposed at
> >>the
> >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> >>idea
> >> is
> >> >
> >> >
> >> > 1.       Have a way for the user to see if they have all dependencies
> >> (like
> >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> >> > moving it out to a CLI level command where you can run cordova
> >>check_reqs
> >> > (or something similar) would be useful to the users.
> >> >
> >> > 2.       Today, the build command shows one error at a time. The
> >> check_reqs
> >> > could run all the checks, and show a summary of the issues so that
the
> >> user
> >> > can fix them all, instead of fixing one, running build, fixing again,
> >> etc.
> >> >
> >> > What does the community think of this idea ? Can we implement a
> >>prototype
> >> > and see if this is useful to our developers ?
> >> > Note that this does not change or break existing functionality - it
> >>just
> >> exposes
> >> > the already existing check_reqs in the CLI. Build will continue to
> >>call
> >> > check_reqs.
> >> >
> >> > Please vote on this proposal, or raise any concerns you may have.
> >>
> >
> >
> >
> >--
> >Carlos Santana
> ><cs...@gmail.com>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


RE: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
I think you raise an interesting point on the behavior of check_reqs for platform that are not yet added. 

The options, as you mention are 

Question 1
1 -  Add the platform, run check_reqs script, remove the platform and report results.
1.5 - Just download the check_reqs script (or use it from the cached platform directory) without adding the platform, and run that. 
2 -  Just say that platform is not added, so cannot check requirements. 

Question 2: It also comes to the case of - when would a user want to run the requirement check
- before starting a cordova project ?
- before adding a platform ? 
- should the requirements be checked when a platform is added, or when it is built ? 

The answer to the above questions will help us understand if a top level req_check is required or not. We should also look at what check_reqs do today - the do not tell you ALL the missing pieces for building an SDK.

It would be good to hear what the others in the community think about these answers. 

-----Original Message-----
From: Josh Soref [mailto:jsoref@blackberry.com] 
Sent: Tuesday, April 14, 2015 9:55 AM
To: dev@cordova.apache.org
Subject: RE: Proposal: Expose check_reqs at the CLI level

Fwiw, for the case of a platform that isn't in a project yet, I'd envision:

`cordova platform doctor not-yet-installed`

to do effectively:
```sh
(
PLATFORM=not-yet-installed
(cordova platform add $PLATFORM 2>&1) > /dev/null &&
cordova platform doctor $PLATFORM;
(cordova platform remove $PLATFORM 2>&1)
)
```

i.e. add the platform (or create a temporary project, and add the platform
to the temporary project), and then run platform doctor, and then remove the
platform (and if it was in a temporary project, delete the temporary
project...).

I don't really want to expos a 'check_reqs' verb via CLI.

If we really really want to, we could have `cordova platform requirements
[PLATFORM...]` as a verb, that's ok.

If someone wants to call `check_reqs` directly, they're welcome to do so,
but it's an incredibly ugly thing and doesn't belong in a public facing
interface.


> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Tuesday, April 14, 2015 10:19 AM
> To: dev@cordova.apache.org
> Subject: Re: Proposal: Expose check_reqs at the CLI level
> 
> Carlos, you are right, check_reqs should be in the platform repo, CLI will
> just proxy the call to the platforms.
> 
> On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> 
> >+1 if check_reqs are kept in the platform repos, currently check_reqs is
a
> >platform concerned
> >if it's available from CLI it will be just a proxy to the platform
> >check_reqs.
> >
> >if don't keep it in the platform repo, and add this logic to cli repo, we
> >will need to maintained a list of reqs for each platform, for each
version
> >of each platform.
> >
> >This is the reason why it was removed from cli and just is present in the
> >platform repo/code
> >
> >
> >
> >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> wrote:
> >
> >> I'm +1 for `cordova doctor` and `cordova platform doctor
> >>{platformname}`.
> >>
> >> The former should apply to all current platforms, the latter should
> >>support
> >> doctoring for available but not added platforms -- if said platform
were
> >> specified.
> >> And we should note in the documentation or `cordova doctor` that it may
> >>do
> >> other checks -- e.g. linting the config.xml, warning about CSP,
possibly
> >> mentioning when a plugin is out of date -- just to indicate to people
> >>that
> >> the behavior may evolve.
> >>
> >> Not that this is more or less fixing a regression that we introduced
> >>when
> >> we
> >> made `cordova platform add` not call check_reqs.
> >>
> >> > -----Original Message-----
> >> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> >> > Sent: Monday, April 13, 2015 2:53 PM
> >> > To: dev@cordova.apache.org
> >> > Subject: Proposal: Expose check_reqs at the CLI level
> >> >
> >> > Hi,
> >> >
> >> > One of the main problems a lot of developers seem to have is the
> >>issue to
> >> > setting up their machines for building various platforms. This came
> >>out
> >> from
> >> > the Stack overflow survey, and the number of questions on stack
> >>overflow,
> >> > twitter. Etc.
> >> >
> >> > I thought it would be helpful to have a check_reqs command exposed at
> >>the
> >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> >>idea
> >> is
> >> >
> >> >
> >> > 1.       Have a way for the user to see if they have all dependencies
> >> (like
> >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> >> > moving it out to a CLI level command where you can run cordova
> >>check_reqs
> >> > (or something similar) would be useful to the users.
> >> >
> >> > 2.       Today, the build command shows one error at a time. The
> >> check_reqs
> >> > could run all the checks, and show a summary of the issues so that
the
> >> user
> >> > can fix them all, instead of fixing one, running build, fixing again,
> >> etc.
> >> >
> >> > What does the community think of this idea ? Can we implement a
> >>prototype
> >> > and see if this is useful to our developers ?
> >> > Note that this does not change or break existing functionality - it
> >>just
> >> exposes
> >> > the already existing check_reqs in the CLI. Build will continue to
> >>call
> >> > check_reqs.
> >> >
> >> > Please vote on this proposal, or raise any concerns you may have.
> >>
> >
> >
> >
> >--
> >Carlos Santana
> ><cs...@gmail.com>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
Fwiw, for the case of a platform that isn't in a project yet, I'd envision:

`cordova platform doctor not-yet-installed`

to do effectively:
```sh
(
PLATFORM=not-yet-installed
(cordova platform add $PLATFORM 2>&1) > /dev/null &&
cordova platform doctor $PLATFORM;
(cordova platform remove $PLATFORM 2>&1)
)
```

i.e. add the platform (or create a temporary project, and add the platform
to the temporary project), and then run platform doctor, and then remove the
platform (and if it was in a temporary project, delete the temporary
project...).

I don't really want to expos a 'check_reqs' verb via CLI.

If we really really want to, we could have `cordova platform requirements
[PLATFORM...]` as a verb, that's ok.

If someone wants to call `check_reqs` directly, they're welcome to do so,
but it's an incredibly ugly thing and doesn't belong in a public facing
interface.


> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Tuesday, April 14, 2015 10:19 AM
> To: dev@cordova.apache.org
> Subject: Re: Proposal: Expose check_reqs at the CLI level
> 
> Carlos, you are right, check_reqs should be in the platform repo, CLI will
> just proxy the call to the platforms.
> 
> On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:
> 
> >+1 if check_reqs are kept in the platform repos, currently check_reqs is
a
> >platform concerned
> >if it's available from CLI it will be just a proxy to the platform
> >check_reqs.
> >
> >if don't keep it in the platform repo, and add this logic to cli repo, we
> >will need to maintained a list of reqs for each platform, for each
version
> >of each platform.
> >
> >This is the reason why it was removed from cli and just is present in the
> >platform repo/code
> >
> >
> >
> >On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com>
> wrote:
> >
> >> I'm +1 for `cordova doctor` and `cordova platform doctor
> >>{platformname}`.
> >>
> >> The former should apply to all current platforms, the latter should
> >>support
> >> doctoring for available but not added platforms -- if said platform
were
> >> specified.
> >> And we should note in the documentation or `cordova doctor` that it may
> >>do
> >> other checks -- e.g. linting the config.xml, warning about CSP,
possibly
> >> mentioning when a plugin is out of date -- just to indicate to people
> >>that
> >> the behavior may evolve.
> >>
> >> Not that this is more or less fixing a regression that we introduced
> >>when
> >> we
> >> made `cordova platform add` not call check_reqs.
> >>
> >> > -----Original Message-----
> >> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> >> > Sent: Monday, April 13, 2015 2:53 PM
> >> > To: dev@cordova.apache.org
> >> > Subject: Proposal: Expose check_reqs at the CLI level
> >> >
> >> > Hi,
> >> >
> >> > One of the main problems a lot of developers seem to have is the
> >>issue to
> >> > setting up their machines for building various platforms. This came
> >>out
> >> from
> >> > the Stack overflow survey, and the number of questions on stack
> >>overflow,
> >> > twitter. Etc.
> >> >
> >> > I thought it would be helpful to have a check_reqs command exposed at
> >>the
> >> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
> >>idea
> >> is
> >> >
> >> >
> >> > 1.       Have a way for the user to see if they have all dependencies
> >> (like
> >> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> >> > moving it out to a CLI level command where you can run cordova
> >>check_reqs
> >> > (or something similar) would be useful to the users.
> >> >
> >> > 2.       Today, the build command shows one error at a time. The
> >> check_reqs
> >> > could run all the checks, and show a summary of the issues so that
the
> >> user
> >> > can fix them all, instead of fixing one, running build, fixing again,
> >> etc.
> >> >
> >> > What does the community think of this idea ? Can we implement a
> >>prototype
> >> > and see if this is useful to our developers ?
> >> > Note that this does not change or break existing functionality - it
> >>just
> >> exposes
> >> > the already existing check_reqs in the CLI. Build will continue to
> >>call
> >> > check_reqs.
> >> >
> >> > Please vote on this proposal, or raise any concerns you may have.
> >>
> >
> >
> >
> >--
> >Carlos Santana
> ><cs...@gmail.com>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org


Re: Proposal: Expose check_reqs at the CLI level

Posted by "Parashuram N (MS OPEN TECH)" <pa...@microsoft.com>.
Carlos, you are right, check_reqs should be in the platform repo, CLI will
just proxy the call to the platforms.

On 4/13/15, 10:29 PM, "Carlos Santana" <cs...@gmail.com> wrote:

>+1 if check_reqs are kept in the platform repos, currently check_reqs is a
>platform concerned
>if it's available from CLI it will be just a proxy to the platform
>check_reqs.
>
>if don't keep it in the platform repo, and add this logic to cli repo, we
>will need to maintained a list of reqs for each platform, for each version
>of each platform.
>
>This is the reason why it was removed from cli and just is present in the
>platform repo/code
>
>
>
>On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com> wrote:
>
>> I'm +1 for `cordova doctor` and `cordova platform doctor
>>{platformname}`.
>>
>> The former should apply to all current platforms, the latter should
>>support
>> doctoring for available but not added platforms -- if said platform were
>> specified.
>> And we should note in the documentation or `cordova doctor` that it may
>>do
>> other checks -- e.g. linting the config.xml, warning about CSP, possibly
>> mentioning when a plugin is out of date -- just to indicate to people
>>that
>> the behavior may evolve.
>>
>> Not that this is more or less fixing a regression that we introduced
>>when
>> we
>> made `cordova platform add` not call check_reqs.
>>
>> > -----Original Message-----
>> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
>> > Sent: Monday, April 13, 2015 2:53 PM
>> > To: dev@cordova.apache.org
>> > Subject: Proposal: Expose check_reqs at the CLI level
>> >
>> > Hi,
>> >
>> > One of the main problems a lot of developers seem to have is the
>>issue to
>> > setting up their machines for building various platforms. This came
>>out
>> from
>> > the Stack overflow survey, and the number of questions on stack
>>overflow,
>> > twitter. Etc.
>> >
>> > I thought it would be helpful to have a check_reqs command exposed at
>>the
>> > CLI level. This is similar to `brew doctor` or `appium doctor`. The
>>idea
>> is
>> >
>> >
>> > 1.       Have a way for the user to see if they have all dependencies
>> (like
>> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
>> > moving it out to a CLI level command where you can run cordova
>>check_reqs
>> > (or something similar) would be useful to the users.
>> >
>> > 2.       Today, the build command shows one error at a time. The
>> check_reqs
>> > could run all the checks, and show a summary of the issues so that the
>> user
>> > can fix them all, instead of fixing one, running build, fixing again,
>> etc.
>> >
>> > What does the community think of this idea ? Can we implement a
>>prototype
>> > and see if this is useful to our developers ?
>> > Note that this does not change or break existing functionality - it
>>just
>> exposes
>> > the already existing check_reqs in the CLI. Build will continue to
>>call
>> > check_reqs.
>> >
>> > Please vote on this proposal, or raise any concerns you may have.
>>
>
>
>
>-- 
>Carlos Santana
><cs...@gmail.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


Re: Proposal: Expose check_reqs at the CLI level

Posted by Carlos Santana <cs...@gmail.com>.
+1 if check_reqs are kept in the platform repos, currently check_reqs is a
platform concerned
if it's available from CLI it will be just a proxy to the platform
check_reqs.

if don't keep it in the platform repo, and add this logic to cli repo, we
will need to maintained a list of reqs for each platform, for each version
of each platform.

This is the reason why it was removed from cli and just is present in the
platform repo/code



On Mon, Apr 13, 2015 at 5:13 PM, Josh Soref <js...@blackberry.com> wrote:

> I'm +1 for `cordova doctor` and `cordova platform doctor {platformname}`.
>
> The former should apply to all current platforms, the latter should support
> doctoring for available but not added platforms -- if said platform were
> specified.
> And we should note in the documentation or `cordova doctor` that it may do
> other checks -- e.g. linting the config.xml, warning about CSP, possibly
> mentioning when a plugin is out of date -- just to indicate to people that
> the behavior may evolve.
>
> Not that this is more or less fixing a regression that we introduced when
> we
> made `cordova platform add` not call check_reqs.
>
> > -----Original Message-----
> > From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> > Sent: Monday, April 13, 2015 2:53 PM
> > To: dev@cordova.apache.org
> > Subject: Proposal: Expose check_reqs at the CLI level
> >
> > Hi,
> >
> > One of the main problems a lot of developers seem to have is the issue to
> > setting up their machines for building various platforms. This came out
> from
> > the Stack overflow survey, and the number of questions on stack overflow,
> > twitter. Etc.
> >
> > I thought it would be helpful to have a check_reqs command exposed at the
> > CLI level. This is similar to `brew doctor` or `appium doctor`. The idea
> is
> >
> >
> > 1.       Have a way for the user to see if they have all dependencies
> (like
> > JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> > moving it out to a CLI level command where you can run cordova check_reqs
> > (or something similar) would be useful to the users.
> >
> > 2.       Today, the build command shows one error at a time. The
> check_reqs
> > could run all the checks, and show a summary of the issues so that the
> user
> > can fix them all, instead of fixing one, running build, fixing again,
> etc.
> >
> > What does the community think of this idea ? Can we implement a prototype
> > and see if this is useful to our developers ?
> > Note that this does not change or break existing functionality - it just
> exposes
> > the already existing check_reqs in the CLI. Build will continue to call
> > check_reqs.
> >
> > Please vote on this proposal, or raise any concerns you may have.
>



-- 
Carlos Santana
<cs...@gmail.com>

RE: Proposal: Expose check_reqs at the CLI level

Posted by Josh Soref <js...@blackberry.com>.
I'm +1 for `cordova doctor` and `cordova platform doctor {platformname}`.

The former should apply to all current platforms, the latter should support
doctoring for available but not added platforms -- if said platform were
specified.
And we should note in the documentation or `cordova doctor` that it may do
other checks -- e.g. linting the config.xml, warning about CSP, possibly
mentioning when a plugin is out of date -- just to indicate to people that
the behavior may evolve.

Not that this is more or less fixing a regression that we introduced when we
made `cordova platform add` not call check_reqs.

> -----Original Message-----
> From: Parashuram N (MS OPEN TECH) [mailto:panarasi@microsoft.com]
> Sent: Monday, April 13, 2015 2:53 PM
> To: dev@cordova.apache.org
> Subject: Proposal: Expose check_reqs at the CLI level
> 
> Hi,
> 
> One of the main problems a lot of developers seem to have is the issue to
> setting up their machines for building various platforms. This came out
from
> the Stack overflow survey, and the number of questions on stack overflow,
> twitter. Etc.
> 
> I thought it would be helpful to have a check_reqs command exposed at the
> CLI level. This is similar to `brew doctor` or `appium doctor`. The idea
is
> 
> 
> 1.       Have a way for the user to see if they have all dependencies
(like
> JAVA_HOME or ANDROID_HOME) set up? This happens at build time, but
> moving it out to a CLI level command where you can run cordova check_reqs
> (or something similar) would be useful to the users.
> 
> 2.       Today, the build command shows one error at a time. The
check_reqs
> could run all the checks, and show a summary of the issues so that the
user
> can fix them all, instead of fixing one, running build, fixing again, etc.
> 
> What does the community think of this idea ? Can we implement a prototype
> and see if this is useful to our developers ?
> Note that this does not change or break existing functionality - it just
exposes
> the already existing check_reqs in the CLI. Build will continue to call
> check_reqs.
> 
> Please vote on this proposal, or raise any concerns you may have.