Also, Vlad, can you confirm if check_reqs runs on build, or on platform add ?
-----Original Message----- From: Parashuram N (MS OPEN TECH) [mailto:panar...@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:jso...@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:panar...@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-vlk...@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.treggi...@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-vlk...@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:panar...@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:jso...@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-vlk...@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:panar...@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:jso...@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: agri...@google.com [mailto:agri...@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 > > > <leo.treggi...@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:panar...@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:jso...@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:panar...@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" <csantan...@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 > > <jso...@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:panar...@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 > > > > > ><csantan...@gmail.com> > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > -- > > > > > ----- To unsubscribe, e-mail: > > > > > dev-unsubscr...@cordova.apache.org > > > > > For additional commands, e-mail: dev-h...@cordova.apache.org > > > > > > > > > > > > ---------------------------------------------------------------- > > > > -- > > > > --- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > > > > For additional commands, e-mail: dev-h...@cordova.apache.org > > > > > > > > > > > > ---------------------------------------------------------------- > > > > -- > > > > --- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > > > > For additional commands, e-mail: dev-h...@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-unsubscr...@cordova.apache.org > For additional commands, e-mail: dev-h...@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-unsubscr...@cordova.apache.org For additional commands, e-mail: dev-h...@cordova.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org For additional commands, e-mail: dev-h...@cordova.apache.org