{"action":"closed","number":7,"pull_request":{"url":"https://api.github.com/repos/carrot/roots-util/pulls/7","id":55612538,"html_url":"https://github.com/carrot/roots-util/pull/7","diff_url":"https://github.com/carrot/roots-util/pull/7.diff","patch_url":"https://github.com/carrot/roots-util/pull/7.patch","issue_url":"https://api.github.com/repos/carrot/roots-util/issues/7","number":7,"state":"closed","locked":false,"title":"Test Helper Changes","user":{"login":"declandewet","id":1918632,"avatar_url":"https://avatars.githubusercontent.com/u/1918632?v=3","gravatar_id":"","url":"https://api.github.com/users/declandewet","html_url":"https://github.com/declandewet","followers_url":"https://api.github.com/users/declandewet/followers","following_url":"https://api.github.com/users/declandewet/following{/other_user}","gists_url":"https://api.github.com/users/declandewet/gists{/gist_id}","starred_url":"https://api.github.com/users/declandewet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/declandewet/subscriptions","organizations_url":"https://api.github.com/users/declandewet/orgs","repos_url":"https://api.github.com/users/declandewet/repos","events_url":"https://api.github.com/users/declandewet/events{/privacy}","received_events_url":"https://api.github.com/users/declandewet/received_events","type":"User","site_admin":false},"body":"# Summary of Changes\r\n\r\n- Updated dependencies\r\n- Previously skipped tests now run on Travis\r\n- Disabled `Roots.analytics` for test helpers\r\n- You can now pass `{ async: true }` as the last parameter to every test helper method. This makes the method run asynchronously and return a promise. This however, does not apply to `project.compile` and `project.install_dependencies`, which both are now fully asynchronous by default, as opposed to a mix of sync and async logic\r\n- Even though there is a breaking change, dependant code will not suffer from the change.\r\n\r\n# Breaking Change\r\n\r\n- [x] disable analytics for `project.compile` method\r\n  - **why?** because it doesn't make sense for test helpers and causes inconsistent failures for `roots-contentful` on Travis\r\n  - > /cc @jenius @kylemac I need a review on this. I wasn't sure if I should add an option to Roots that allows disabling analytics at the instance-level so it doesn't override global config (e.g. `new Roots(analytics: false)` but I figured this would be okay since it is for testing only. It only becomes an issue if two instances of Roots are running at the same time on the same machine and one of them is running tests, which I figured is super edge-case, also - any recommendations on how to test this piece of logic?\r\n\r\n> **note:** even though this is a breaking change, it theoretically should not intefere with any dependent code. It simply removes an unwanted side effect of `RootsUtil.Helpers`. In other words, dependendant libraries need not worry about updating anything other than the version for `roots-util` as if there were no breaking changes.\r\n\r\n# Non-Breaking Changes\r\n\r\n- [x] swap out deprecated `fs.exists` methods for one that uses `fs.stat` instead\r\n- [x] add `{ async: true }` option to helper methods to optionally make them asynchronous (they will return promises if this option is set)\r\n  - **why?** because we now use [AVA](/sindresorhus/ava) (which is concurrent) in some projects and having an async option for these helpers will help to improve test performance\r\n- [x] stability: make `is_empty` tests run on CI, teardown, etc","created_at":"2016-01-11T11:43:20Z","updated_at":"2016-01-12T05:38:58Z","closed_at":"2016-01-12T05:38:57Z","merged_at":"2016-01-12T05:38:57Z","merge_commit_sha":"361b396766be50a2b4d4160bea572a6d84a4ed9e","assignee":{"login":"jenius","id":556932,"avatar_url":"https://avatars.githubusercontent.com/u/556932?v=3","gravatar_id":"","url":"https://api.github.com/users/jenius","html_url":"https://github.com/jenius","followers_url":"https://api.github.com/users/jenius/followers","following_url":"https://api.github.com/users/jenius/following{/other_user}","gists_url":"https://api.github.com/users/jenius/gists{/gist_id}","starred_url":"https://api.github.com/users/jenius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenius/subscriptions","organizations_url":"https://api.github.com/users/jenius/orgs","repos_url":"https://api.github.com/users/jenius/repos","events_url":"https://api.github.com/users/jenius/events{/privacy}","received_events_url":"https://api.github.com/users/jenius/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/carrot/roots-util/pulls/7/commits","review_comments_url":"https://api.github.com/repos/carrot/roots-util/pulls/7/comments","review_comment_url":"https://api.github.com/repos/carrot/roots-util/pulls/comments{/number}","comments_url":"https://api.github.com/repos/carrot/roots-util/issues/7/comments","statuses_url":"https://api.github.com/repos/carrot/roots-util/statuses/784b235d6d271f5c4d56fd03847ecd3c5e6afb43","head":{"label":"carrot:analytics","ref":"analytics","sha":"784b235d6d271f5c4d56fd03847ecd3c5e6afb43","user":{"login":"carrot","id":60137,"avatar_url":"https://avatars.githubusercontent.com/u/60137?v=3","gravatar_id":"","url":"https://api.github.com/users/carrot","html_url":"https://github.com/carrot","followers_url":"https://api.github.com/users/carrot/followers","following_url":"https://api.github.com/users/carrot/following{/other_user}","gists_url":"https://api.github.com/users/carrot/gists{/gist_id}","starred_url":"https://api.github.com/users/carrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carrot/subscriptions","organizations_url":"https://api.github.com/users/carrot/orgs","repos_url":"https://api.github.com/users/carrot/repos","events_url":"https://api.github.com/users/carrot/events{/privacy}","received_events_url":"https://api.github.com/users/carrot/received_events","type":"Organization","site_admin":false},"repo":{"id":18108087,"name":"roots-util","full_name":"carrot/roots-util","owner":{"login":"carrot","id":60137,"avatar_url":"https://avatars.githubusercontent.com/u/60137?v=3","gravatar_id":"","url":"https://api.github.com/users/carrot","html_url":"https://github.com/carrot","followers_url":"https://api.github.com/users/carrot/followers","following_url":"https://api.github.com/users/carrot/following{/other_user}","gists_url":"https://api.github.com/users/carrot/gists{/gist_id}","starred_url":"https://api.github.com/users/carrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carrot/subscriptions","organizations_url":"https://api.github.com/users/carrot/orgs","repos_url":"https://api.github.com/users/carrot/repos","events_url":"https://api.github.com/users/carrot/events{/privacy}","received_events_url":"https://api.github.com/users/carrot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/carrot/roots-util","description":"a tool for simplifying roots extensions","fork":false,"url":"https://api.github.com/repos/carrot/roots-util","forks_url":"https://api.github.com/repos/carrot/roots-util/forks","keys_url":"https://api.github.com/repos/carrot/roots-util/keys{/key_id}","collaborators_url":"https://api.github.com/repos/carrot/roots-util/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/carrot/roots-util/teams","hooks_url":"https://api.github.com/repos/carrot/roots-util/hooks","issue_events_url":"https://api.github.com/repos/carrot/roots-util/issues/events{/number}","events_url":"https://api.github.com/repos/carrot/roots-util/events","assignees_url":"https://api.github.com/repos/carrot/roots-util/assignees{/user}","branches_url":"https://api.github.com/repos/carrot/roots-util/branches{/branch}","tags_url":"https://api.github.com/repos/carrot/roots-util/tags","blobs_url":"https://api.github.com/repos/carrot/roots-util/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/carrot/roots-util/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/carrot/roots-util/git/refs{/sha}","trees_url":"https://api.github.com/repos/carrot/roots-util/git/trees{/sha}","statuses_url":"https://api.github.com/repos/carrot/roots-util/statuses/{sha}","languages_url":"https://api.github.com/repos/carrot/roots-util/languages","stargazers_url":"https://api.github.com/repos/carrot/roots-util/stargazers","contributors_url":"https://api.github.com/repos/carrot/roots-util/contributors","subscribers_url":"https://api.github.com/repos/carrot/roots-util/subscribers","subscription_url":"https://api.github.com/repos/carrot/roots-util/subscription","commits_url":"https://api.github.com/repos/carrot/roots-util/commits{/sha}","git_commits_url":"https://api.github.com/repos/carrot/roots-util/git/commits{/sha}","comments_url":"https://api.github.com/repos/carrot/roots-util/comments{/number}","issue_comment_url":"https://api.github.com/repos/carrot/roots-util/issues/comments{/number}","contents_url":"https://api.github.com/repos/carrot/roots-util/contents/{+path}","compare_url":"https://api.github.com/repos/carrot/roots-util/compare/{base}...{head}","merges_url":"https://api.github.com/repos/carrot/roots-util/merges","archive_url":"https://api.github.com/repos/carrot/roots-util/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/carrot/roots-util/downloads","issues_url":"https://api.github.com/repos/carrot/roots-util/issues{/number}","pulls_url":"https://api.github.com/repos/carrot/roots-util/pulls{/number}","milestones_url":"https://api.github.com/repos/carrot/roots-util/milestones{/number}","notifications_url":"https://api.github.com/repos/carrot/roots-util/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/carrot/roots-util/labels{/name}","releases_url":"https://api.github.com/repos/carrot/roots-util/releases{/id}","created_at":"2014-03-25T16:41:42Z","updated_at":"2015-11-06T17:31:25Z","pushed_at":"2016-01-12T05:38:57Z","git_url":"git://github.com/carrot/roots-util.git","ssh_url":"git@github.com:carrot/roots-util.git","clone_url":"https://github.com/carrot/roots-util.git","svn_url":"https://github.com/carrot/roots-util","homepage":null,"size":33,"stargazers_count":6,"watchers_count":6,"language":"CoffeeScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":6,"default_branch":"master"}},"base":{"label":"carrot:master","ref":"master","sha":"6fbf08f0700e0467b11ed5355543a58c8ba8b949","user":{"login":"carrot","id":60137,"avatar_url":"https://avatars.githubusercontent.com/u/60137?v=3","gravatar_id":"","url":"https://api.github.com/users/carrot","html_url":"https://github.com/carrot","followers_url":"https://api.github.com/users/carrot/followers","following_url":"https://api.github.com/users/carrot/following{/other_user}","gists_url":"https://api.github.com/users/carrot/gists{/gist_id}","starred_url":"https://api.github.com/users/carrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carrot/subscriptions","organizations_url":"https://api.github.com/users/carrot/orgs","repos_url":"https://api.github.com/users/carrot/repos","events_url":"https://api.github.com/users/carrot/events{/privacy}","received_events_url":"https://api.github.com/users/carrot/received_events","type":"Organization","site_admin":false},"repo":{"id":18108087,"name":"roots-util","full_name":"carrot/roots-util","owner":{"login":"carrot","id":60137,"avatar_url":"https://avatars.githubusercontent.com/u/60137?v=3","gravatar_id":"","url":"https://api.github.com/users/carrot","html_url":"https://github.com/carrot","followers_url":"https://api.github.com/users/carrot/followers","following_url":"https://api.github.com/users/carrot/following{/other_user}","gists_url":"https://api.github.com/users/carrot/gists{/gist_id}","starred_url":"https://api.github.com/users/carrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carrot/subscriptions","organizations_url":"https://api.github.com/users/carrot/orgs","repos_url":"https://api.github.com/users/carrot/repos","events_url":"https://api.github.com/users/carrot/events{/privacy}","received_events_url":"https://api.github.com/users/carrot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/carrot/roots-util","description":"a tool for simplifying roots extensions","fork":false,"url":"https://api.github.com/repos/carrot/roots-util","forks_url":"https://api.github.com/repos/carrot/roots-util/forks","keys_url":"https://api.github.com/repos/carrot/roots-util/keys{/key_id}","collaborators_url":"https://api.github.com/repos/carrot/roots-util/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/carrot/roots-util/teams","hooks_url":"https://api.github.com/repos/carrot/roots-util/hooks","issue_events_url":"https://api.github.com/repos/carrot/roots-util/issues/events{/number}","events_url":"https://api.github.com/repos/carrot/roots-util/events","assignees_url":"https://api.github.com/repos/carrot/roots-util/assignees{/user}","branches_url":"https://api.github.com/repos/carrot/roots-util/branches{/branch}","tags_url":"https://api.github.com/repos/carrot/roots-util/tags","blobs_url":"https://api.github.com/repos/carrot/roots-util/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/carrot/roots-util/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/carrot/roots-util/git/refs{/sha}","trees_url":"https://api.github.com/repos/carrot/roots-util/git/trees{/sha}","statuses_url":"https://api.github.com/repos/carrot/roots-util/statuses/{sha}","languages_url":"https://api.github.com/repos/carrot/roots-util/languages","stargazers_url":"https://api.github.com/repos/carrot/roots-util/stargazers","contributors_url":"https://api.github.com/repos/carrot/roots-util/contributors","subscribers_url":"https://api.github.com/repos/carrot/roots-util/subscribers","subscription_url":"https://api.github.com/repos/carrot/roots-util/subscription","commits_url":"https://api.github.com/repos/carrot/roots-util/commits{/sha}","git_commits_url":"https://api.github.com/repos/carrot/roots-util/git/commits{/sha}","comments_url":"https://api.github.com/repos/carrot/roots-util/comments{/number}","issue_comment_url":"https://api.github.com/repos/carrot/roots-util/issues/comments{/number}","contents_url":"https://api.github.com/repos/carrot/roots-util/contents/{+path}","compare_url":"https://api.github.com/repos/carrot/roots-util/compare/{base}...{head}","merges_url":"https://api.github.com/repos/carrot/roots-util/merges","archive_url":"https://api.github.com/repos/carrot/roots-util/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/carrot/roots-util/downloads","issues_url":"https://api.github.com/repos/carrot/roots-util/issues{/number}","pulls_url":"https://api.github.com/repos/carrot/roots-util/pulls{/number}","milestones_url":"https://api.github.com/repos/carrot/roots-util/milestones{/number}","notifications_url":"https://api.github.com/repos/carrot/roots-util/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/carrot/roots-util/labels{/name}","releases_url":"https://api.github.com/repos/carrot/roots-util/releases{/id}","created_at":"2014-03-25T16:41:42Z","updated_at":"2015-11-06T17:31:25Z","pushed_at":"2016-01-12T05:38:57Z","git_url":"git://github.com/carrot/roots-util.git","ssh_url":"git@github.com:carrot/roots-util.git","clone_url":"https://github.com/carrot/roots-util.git","svn_url":"https://github.com/carrot/roots-util","homepage":null,"size":33,"stargazers_count":6,"watchers_count":6,"language":"CoffeeScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/carrot/roots-util/pulls/7"},"html":{"href":"https://github.com/carrot/roots-util/pull/7"},"issue":{"href":"https://api.github.com/repos/carrot/roots-util/issues/7"},"comments":{"href":"https://api.github.com/repos/carrot/roots-util/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/carrot/roots-util/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/carrot/roots-util/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/carrot/roots-util/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/carrot/roots-util/statuses/784b235d6d271f5c4d56fd03847ecd3c5e6afb43"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"jenius","id":556932,"avatar_url":"https://avatars.githubusercontent.com/u/556932?v=3","gravatar_id":"","url":"https://api.github.com/users/jenius","html_url":"https://github.com/jenius","followers_url":"https://api.github.com/users/jenius/followers","following_url":"https://api.github.com/users/jenius/following{/other_user}","gists_url":"https://api.github.com/users/jenius/gists{/gist_id}","starred_url":"https://api.github.com/users/jenius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenius/subscriptions","organizations_url":"https://api.github.com/users/jenius/orgs","repos_url":"https://api.github.com/users/jenius/repos","events_url":"https://api.github.com/users/jenius/events{/privacy}","received_events_url":"https://api.github.com/users/jenius/received_events","type":"User","site_admin":false},"comments":2,"review_comments":3,"commits":6,"additions":392,"deletions":149,"changed_files":4}}