{"action":"created","comment":{"url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/comments/92469947","pull_request_review_id":12986570,"id":92469947,"diff_hunk":"@@ -102,6 +102,24 @@ function getConfigPath(appPath) {\n     return path.join(appPath, 'config.xml');\n }\n \n+function installAppiumServer() {\n+    /*\n+     * We install appium in this counter-intuitive way at runtime in order to\n+     * not trigger massive dependency downloads via `npm install` for autotest\n+     * execution. Installing appium only happens in the local-running case, and\n+     * thus is not needed in our CI system. By using this method, we save the CI\n+     * a lot of time.\n+     * ALTERNATIVE: what if paramedic dependencies were installed via `npm install\n+     * --production`, and appium was stuffed into `devDependencies`. That should\n+     * also prevent this problem? ","path":"lib/appium/AppiumRunner.js","position":13,"original_position":13,"commit_id":"98ca8e8c1d91dfe1a14e81f52cce088908811a07","original_commit_id":"98ca8e8c1d91dfe1a14e81f52cce088908811a07","user":{"login":"purplecabbage","id":46134,"avatar_url":"https://avatars.githubusercontent.com/u/46134?v=3","gravatar_id":"","url":"https://api.github.com/users/purplecabbage","html_url":"https://github.com/purplecabbage","followers_url":"https://api.github.com/users/purplecabbage/followers","following_url":"https://api.github.com/users/purplecabbage/following{/other_user}","gists_url":"https://api.github.com/users/purplecabbage/gists{/gist_id}","starred_url":"https://api.github.com/users/purplecabbage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/purplecabbage/subscriptions","organizations_url":"https://api.github.com/users/purplecabbage/orgs","repos_url":"https://api.github.com/users/purplecabbage/repos","events_url":"https://api.github.com/users/purplecabbage/events{/privacy}","received_events_url":"https://api.github.com/users/purplecabbage/received_events","type":"User","site_admin":false},"body":"I agree with @alsorokin here. Can we avoid sacrificing the individual plugin developer for the sake of the CI server?\r\nThis seems like it's maybe a case where we could/should use a *-connect approach and have another module that provides the connection to appium.  Or maybe we use feature detection to poke for the appium module and use it if it's present. ... not sure","created_at":"2016-12-14T19:30:16Z","updated_at":"2016-12-14T19:30:16Z","html_url":"https://github.com/apache/cordova-paramedic/pull/18#discussion_r92469947","pull_request_url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18","_links":{"self":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/comments/92469947"},"html":{"href":"https://github.com/apache/cordova-paramedic/pull/18#discussion_r92469947"},"pull_request":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18"}}},"pull_request":{"url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18","id":97662034,"html_url":"https://github.com/apache/cordova-paramedic/pull/18","diff_url":"https://github.com/apache/cordova-paramedic/pull/18.diff","patch_url":"https://github.com/apache/cordova-paramedic/pull/18.patch","issue_url":"https://api.github.com/repos/apache/cordova-paramedic/issues/18","number":18,"state":"open","locked":false,"title":"Appium updates for Paramedic","user":{"login":"filmaj","id":52645,"avatar_url":"https://avatars.githubusercontent.com/u/52645?v=3","gravatar_id":"","url":"https://api.github.com/users/filmaj","html_url":"https://github.com/filmaj","followers_url":"https://api.github.com/users/filmaj/followers","following_url":"https://api.github.com/users/filmaj/following{/other_user}","gists_url":"https://api.github.com/users/filmaj/gists{/gist_id}","starred_url":"https://api.github.com/users/filmaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/filmaj/subscriptions","organizations_url":"https://api.github.com/users/filmaj/orgs","repos_url":"https://api.github.com/users/filmaj/repos","events_url":"https://api.github.com/users/filmaj/events{/privacy}","received_events_url":"https://api.github.com/users/filmaj/received_events","type":"User","site_admin":false},"body":"Please review @purplecabbage and @alsorokin!\r\n\r\nA lot of these changes are ports from my now-defunct medic pull request: https://github.com/apache/cordova-medic/pull/106\r\n\r\n### Platforms affected\r\n\r\nAndroid and iOS in particular, as those are the only platforms being UI-tested in an automated fashion at this time.\r\n\r\n### What does this PR do?\r\n\r\nFrom most-impactful to least:\r\n\r\n1. Set appium as a devDependency, and remove shelling out to `npm` to install it. This lets us control appium's version using `package.json`, which is the standard node.js way to do that. This is important as the latest published version of appium does not work!\r\n2. When running with the `--skipMainTests` flag, prevent the app-under-test from being built twice. The AUT is different for the autotests vs. the appium UI tests, and thus needs separate compilations. This changes saves on an extra compilation in this scenario.\r\n3. When the `--verbose` flag is provided, and we are running appium locally, also log out appium stdout to paramedic stdout.\r\n4. Remove `jasmine-node` module. I don't think it is used?\r\n4. Remove unnecessary `browserName` capability from those being passed to appium.\r\n5. Added a TODO around removing the `medic.json` file that is supposed to be part of the app. I think this is a remnant from how medic worked. I am not sure it is still applicable. Also, remove the file with the `-f` flag, so in case it does not exist, do not error about it.\r\n6. Removed duplicate setting of `global.VERBOSE`.\r\n\r\n### What testing has been done on this change?\r\n\r\nRan locally on an Android 5.1 emulator.\r\n\r\n### Checklist\r\n- [ ] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database\r\n- [ ] Commit message follows the format: \"CB-3232: (android) Fix bug with resolving file paths\", where CB-xxxx is the JIRA ID & \"android\" is the platform affected.\r\n- [ ] Added automated test coverage as appropriate for this change.\r\n","created_at":"2016-12-13T00:10:30Z","updated_at":"2016-12-14T19:30:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4495ef1da9e896a7530e27785185599e9d35de03","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18/commits","review_comments_url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18/comments","review_comment_url":"https://api.github.com/repos/apache/cordova-paramedic/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/cordova-paramedic/issues/18/comments","statuses_url":"https://api.github.com/repos/apache/cordova-paramedic/statuses/98ca8e8c1d91dfe1a14e81f52cce088908811a07","head":{"label":"filmaj:appium-updates","ref":"appium-updates","sha":"98ca8e8c1d91dfe1a14e81f52cce088908811a07","user":{"login":"filmaj","id":52645,"avatar_url":"https://avatars.githubusercontent.com/u/52645?v=3","gravatar_id":"","url":"https://api.github.com/users/filmaj","html_url":"https://github.com/filmaj","followers_url":"https://api.github.com/users/filmaj/followers","following_url":"https://api.github.com/users/filmaj/following{/other_user}","gists_url":"https://api.github.com/users/filmaj/gists{/gist_id}","starred_url":"https://api.github.com/users/filmaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/filmaj/subscriptions","organizations_url":"https://api.github.com/users/filmaj/orgs","repos_url":"https://api.github.com/users/filmaj/repos","events_url":"https://api.github.com/users/filmaj/events{/privacy}","received_events_url":"https://api.github.com/users/filmaj/received_events","type":"User","site_admin":false},"repo":{"id":76306043,"name":"cordova-paramedic","full_name":"filmaj/cordova-paramedic","owner":{"login":"filmaj","id":52645,"avatar_url":"https://avatars.githubusercontent.com/u/52645?v=3","gravatar_id":"","url":"https://api.github.com/users/filmaj","html_url":"https://github.com/filmaj","followers_url":"https://api.github.com/users/filmaj/followers","following_url":"https://api.github.com/users/filmaj/following{/other_user}","gists_url":"https://api.github.com/users/filmaj/gists{/gist_id}","starred_url":"https://api.github.com/users/filmaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/filmaj/subscriptions","organizations_url":"https://api.github.com/users/filmaj/orgs","repos_url":"https://api.github.com/users/filmaj/repos","events_url":"https://api.github.com/users/filmaj/events{/privacy}","received_events_url":"https://api.github.com/users/filmaj/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/filmaj/cordova-paramedic","description":"Mirror of Apache Cordova Paramedic","fork":true,"url":"https://api.github.com/repos/filmaj/cordova-paramedic","forks_url":"https://api.github.com/repos/filmaj/cordova-paramedic/forks","keys_url":"https://api.github.com/repos/filmaj/cordova-paramedic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/filmaj/cordova-paramedic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/filmaj/cordova-paramedic/teams","hooks_url":"https://api.github.com/repos/filmaj/cordova-paramedic/hooks","issue_events_url":"https://api.github.com/repos/filmaj/cordova-paramedic/issues/events{/number}","events_url":"https://api.github.com/repos/filmaj/cordova-paramedic/events","assignees_url":"https://api.github.com/repos/filmaj/cordova-paramedic/assignees{/user}","branches_url":"https://api.github.com/repos/filmaj/cordova-paramedic/branches{/branch}","tags_url":"https://api.github.com/repos/filmaj/cordova-paramedic/tags","blobs_url":"https://api.github.com/repos/filmaj/cordova-paramedic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/filmaj/cordova-paramedic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/filmaj/cordova-paramedic/git/refs{/sha}","trees_url":"https://api.github.com/repos/filmaj/cordova-paramedic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/filmaj/cordova-paramedic/statuses/{sha}","languages_url":"https://api.github.com/repos/filmaj/cordova-paramedic/languages","stargazers_url":"https://api.github.com/repos/filmaj/cordova-paramedic/stargazers","contributors_url":"https://api.github.com/repos/filmaj/cordova-paramedic/contributors","subscribers_url":"https://api.github.com/repos/filmaj/cordova-paramedic/subscribers","subscription_url":"https://api.github.com/repos/filmaj/cordova-paramedic/subscription","commits_url":"https://api.github.com/repos/filmaj/cordova-paramedic/commits{/sha}","git_commits_url":"https://api.github.com/repos/filmaj/cordova-paramedic/git/commits{/sha}","comments_url":"https://api.github.com/repos/filmaj/cordova-paramedic/comments{/number}","issue_comment_url":"https://api.github.com/repos/filmaj/cordova-paramedic/issues/comments{/number}","contents_url":"https://api.github.com/repos/filmaj/cordova-paramedic/contents/{+path}","compare_url":"https://api.github.com/repos/filmaj/cordova-paramedic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/filmaj/cordova-paramedic/merges","archive_url":"https://api.github.com/repos/filmaj/cordova-paramedic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/filmaj/cordova-paramedic/downloads","issues_url":"https://api.github.com/repos/filmaj/cordova-paramedic/issues{/number}","pulls_url":"https://api.github.com/repos/filmaj/cordova-paramedic/pulls{/number}","milestones_url":"https://api.github.com/repos/filmaj/cordova-paramedic/milestones{/number}","notifications_url":"https://api.github.com/repos/filmaj/cordova-paramedic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/filmaj/cordova-paramedic/labels{/name}","releases_url":"https://api.github.com/repos/filmaj/cordova-paramedic/releases{/id}","deployments_url":"https://api.github.com/repos/filmaj/cordova-paramedic/deployments","created_at":"2016-12-12T23:57:51Z","updated_at":"2016-12-12T23:57:52Z","pushed_at":"2016-12-13T23:09:28Z","git_url":"git://github.com/filmaj/cordova-paramedic.git","ssh_url":"git@github.com:filmaj/cordova-paramedic.git","clone_url":"https://github.com/filmaj/cordova-paramedic.git","svn_url":"https://github.com/filmaj/cordova-paramedic","homepage":null,"size":268,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"apache:master","ref":"master","sha":"9079176814d7ac257f7b7940dedfd5d43396eb34","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":53118295,"name":"cordova-paramedic","full_name":"apache/cordova-paramedic","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/cordova-paramedic","description":"Mirror of Apache Cordova Paramedic","fork":false,"url":"https://api.github.com/repos/apache/cordova-paramedic","forks_url":"https://api.github.com/repos/apache/cordova-paramedic/forks","keys_url":"https://api.github.com/repos/apache/cordova-paramedic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/cordova-paramedic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/cordova-paramedic/teams","hooks_url":"https://api.github.com/repos/apache/cordova-paramedic/hooks","issue_events_url":"https://api.github.com/repos/apache/cordova-paramedic/issues/events{/number}","events_url":"https://api.github.com/repos/apache/cordova-paramedic/events","assignees_url":"https://api.github.com/repos/apache/cordova-paramedic/assignees{/user}","branches_url":"https://api.github.com/repos/apache/cordova-paramedic/branches{/branch}","tags_url":"https://api.github.com/repos/apache/cordova-paramedic/tags","blobs_url":"https://api.github.com/repos/apache/cordova-paramedic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/cordova-paramedic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/cordova-paramedic/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/cordova-paramedic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/cordova-paramedic/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/cordova-paramedic/languages","stargazers_url":"https://api.github.com/repos/apache/cordova-paramedic/stargazers","contributors_url":"https://api.github.com/repos/apache/cordova-paramedic/contributors","subscribers_url":"https://api.github.com/repos/apache/cordova-paramedic/subscribers","subscription_url":"https://api.github.com/repos/apache/cordova-paramedic/subscription","commits_url":"https://api.github.com/repos/apache/cordova-paramedic/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/cordova-paramedic/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/cordova-paramedic/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/cordova-paramedic/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/cordova-paramedic/contents/{+path}","compare_url":"https://api.github.com/repos/apache/cordova-paramedic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/cordova-paramedic/merges","archive_url":"https://api.github.com/repos/apache/cordova-paramedic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/cordova-paramedic/downloads","issues_url":"https://api.github.com/repos/apache/cordova-paramedic/issues{/number}","pulls_url":"https://api.github.com/repos/apache/cordova-paramedic/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/cordova-paramedic/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/cordova-paramedic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/cordova-paramedic/labels{/name}","releases_url":"https://api.github.com/repos/apache/cordova-paramedic/releases{/id}","deployments_url":"https://api.github.com/repos/apache/cordova-paramedic/deployments","created_at":"2016-03-04T08:00:05Z","updated_at":"2016-10-27T07:45:55Z","pushed_at":"2016-12-13T23:09:28Z","git_url":"git://github.com/apache/cordova-paramedic.git","ssh_url":"git@github.com:apache/cordova-paramedic.git","clone_url":"https://github.com/apache/cordova-paramedic.git","svn_url":"https://github.com/apache/cordova-paramedic","homepage":null,"size":257,"stargazers_count":6,"watchers_count":6,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":"git://git.apache.org/cordova-paramedic.git","open_issues_count":2,"forks":13,"open_issues":2,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18"},"html":{"href":"https://github.com/apache/cordova-paramedic/pull/18"},"issue":{"href":"https://api.github.com/repos/apache/cordova-paramedic/issues/18"},"comments":{"href":"https://api.github.com/repos/apache/cordova-paramedic/issues/18/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/cordova-paramedic/pulls/18/commits"},"statuses":{"href":"https://api.github.com/repos/apache/cordova-paramedic/statuses/98ca8e8c1d91dfe1a14e81f52cce088908811a07"}}}}
{"actor":{"display_login":"purplecabbage"}}