{"action":"created","comment":{"url":"https://api.github.com/repos/yarnpkg/yarn/pulls/comments/169988054","pull_request_review_id":98600187,"id":169988054,"diff_hunk":"@@ -0,0 +1,6 @@\n+{\n+  \"rules\": {\n+    \"flowtype/require-valid-file-annotation\": \"off\",\n+    \"flowtype/require-return-type\": \"off\"\n+  }\n+}","path":"pkg-tests/.eslintrc.json","position":6,"original_position":6,"commit_id":"49eba9440f5c576a574ddc178526f75bafa124af","original_commit_id":"7161784f631c8289dab651b5286fedf05333c665","user":{"login":"cpojer","id":13352,"avatar_url":"https://avatars0.githubusercontent.com/u/13352?v=4","gravatar_id":"","url":"https://api.github.com/users/cpojer","html_url":"https://github.com/cpojer","followers_url":"https://api.github.com/users/cpojer/followers","following_url":"https://api.github.com/users/cpojer/following{/other_user}","gists_url":"https://api.github.com/users/cpojer/gists{/gist_id}","starred_url":"https://api.github.com/users/cpojer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cpojer/subscriptions","organizations_url":"https://api.github.com/users/cpojer/orgs","repos_url":"https://api.github.com/users/cpojer/repos","events_url":"https://api.github.com/users/cpojer/events{/privacy}","received_events_url":"https://api.github.com/users/cpojer/received_events","type":"User","site_admin":false},"body":"You are probably right but I think we should generally try to use flow types across the board. It seems that you could add flow types to everything rather quickly – do you mind spending some time on this? It will make it significantly easier for other people to work on this code, for example in Nuclide, where we have type definitions available and auto-completion.","created_at":"2018-02-22T15:11:56Z","updated_at":"2018-02-22T15:11:56Z","html_url":"https://github.com/yarnpkg/yarn/pull/5392#discussion_r169988054","pull_request_url":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/comments/169988054"},"html":{"href":"https://github.com/yarnpkg/yarn/pull/5392#discussion_r169988054"},"pull_request":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392"}},"in_reply_to_id":169959252},"pull_request":{"url":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392","id":170738375,"html_url":"https://github.com/yarnpkg/yarn/pull/5392","diff_url":"https://github.com/yarnpkg/yarn/pull/5392.diff","patch_url":"https://github.com/yarnpkg/yarn/pull/5392.patch","issue_url":"https://api.github.com/repos/yarnpkg/yarn/issues/5392","number":5392,"state":"open","locked":false,"title":"Pkg-tests testsuite","user":{"login":"arcanis","id":1037931,"avatar_url":"https://avatars2.githubusercontent.com/u/1037931?v=4","gravatar_id":"","url":"https://api.github.com/users/arcanis","html_url":"https://github.com/arcanis","followers_url":"https://api.github.com/users/arcanis/followers","following_url":"https://api.github.com/users/arcanis/following{/other_user}","gists_url":"https://api.github.com/users/arcanis/gists{/gist_id}","starred_url":"https://api.github.com/users/arcanis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcanis/subscriptions","organizations_url":"https://api.github.com/users/arcanis/orgs","repos_url":"https://api.github.com/users/arcanis/repos","events_url":"https://api.github.com/users/arcanis/events{/privacy}","received_events_url":"https://api.github.com/users/arcanis/received_events","type":"User","site_admin":false},"body":"**Summary**\r\n\r\nThis PR adds a new experimental testsuite. It has a few important differences compared to our current one:\r\n\r\n- It's much smaller, ofc 😛\r\n- It's only meant to test the core features common to every package manager\r\n- **It doesn't rely on our internals** (which is the main point imo)\r\n  - Ex: it doesn't require us to instanciate a new `Install` class (it spawns a process instead)\r\n  - Ex: it checks that the install worked by requiring the files (instead of checking the filesystem)\r\n  - Thanks to the point above, it means that anybody can run it on their package manager\r\n  - It will allow us to confidently rework our internals later on while still being able to trust our tests\r\n- The fixtures have a different layout. Our current fixture directory has **a lot** of fixtures, most of those are unique to specific tests. It makes it harder for us to write new tests:\r\n  - We first need to find out which fixture folder kinda match the environment we want to test\r\n  - Or we can create a new fixture, which will make the situation slightly worse next time\r\n  - Fixture folders are frozen because we have no effective way to know what's important in them, especially when multiple tests might use them for different reasons.\r\n  - In contrast, the fixtures in this PR are minimal, used across multiple tests, and have a clear semantic meaning (for example, `no-deps` ... has no deps. I let you guess for `one-fixed-dep`).\r\n- The tests are factorized and can \"inherit\" ones from the others, which allow us to run tests under different environments without having to duplicate code (for example we could easily run a set of tests with hoisting, and another without hoisting).\r\n\r\nIn this end, I think this experiment should benefit both the community at large and us in the long term. Having a generic testsuite will make it much easier for everyone involved to go fast without breaking things.\r\n\r\n**Test plan**\r\n\r\nRun `yarn && yarn jest yarn.test.js` in the `pkg-tests` directory.\r\n\r\n","created_at":"2018-02-22T12:36:20Z","updated_at":"2018-02-22T15:11:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ffd1caf6fbdf82d91c297d12dfa752643e867711","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392/commits","review_comments_url":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392/comments","review_comment_url":"https://api.github.com/repos/yarnpkg/yarn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/yarnpkg/yarn/issues/5392/comments","statuses_url":"https://api.github.com/repos/yarnpkg/yarn/statuses/49eba9440f5c576a574ddc178526f75bafa124af","head":{"label":"arcanis:pkg-tests","ref":"pkg-tests","sha":"49eba9440f5c576a574ddc178526f75bafa124af","user":{"login":"arcanis","id":1037931,"avatar_url":"https://avatars2.githubusercontent.com/u/1037931?v=4","gravatar_id":"","url":"https://api.github.com/users/arcanis","html_url":"https://github.com/arcanis","followers_url":"https://api.github.com/users/arcanis/followers","following_url":"https://api.github.com/users/arcanis/following{/other_user}","gists_url":"https://api.github.com/users/arcanis/gists{/gist_id}","starred_url":"https://api.github.com/users/arcanis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcanis/subscriptions","organizations_url":"https://api.github.com/users/arcanis/orgs","repos_url":"https://api.github.com/users/arcanis/repos","events_url":"https://api.github.com/users/arcanis/events{/privacy}","received_events_url":"https://api.github.com/users/arcanis/received_events","type":"User","site_admin":false},"repo":{"id":82685695,"name":"yarn","full_name":"arcanis/yarn","owner":{"login":"arcanis","id":1037931,"avatar_url":"https://avatars2.githubusercontent.com/u/1037931?v=4","gravatar_id":"","url":"https://api.github.com/users/arcanis","html_url":"https://github.com/arcanis","followers_url":"https://api.github.com/users/arcanis/followers","following_url":"https://api.github.com/users/arcanis/following{/other_user}","gists_url":"https://api.github.com/users/arcanis/gists{/gist_id}","starred_url":"https://api.github.com/users/arcanis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arcanis/subscriptions","organizations_url":"https://api.github.com/users/arcanis/orgs","repos_url":"https://api.github.com/users/arcanis/repos","events_url":"https://api.github.com/users/arcanis/events{/privacy}","received_events_url":"https://api.github.com/users/arcanis/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/arcanis/yarn","description":"📦🐈 Fast, reliable, and secure dependency management.","fork":true,"url":"https://api.github.com/repos/arcanis/yarn","forks_url":"https://api.github.com/repos/arcanis/yarn/forks","keys_url":"https://api.github.com/repos/arcanis/yarn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arcanis/yarn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arcanis/yarn/teams","hooks_url":"https://api.github.com/repos/arcanis/yarn/hooks","issue_events_url":"https://api.github.com/repos/arcanis/yarn/issues/events{/number}","events_url":"https://api.github.com/repos/arcanis/yarn/events","assignees_url":"https://api.github.com/repos/arcanis/yarn/assignees{/user}","branches_url":"https://api.github.com/repos/arcanis/yarn/branches{/branch}","tags_url":"https://api.github.com/repos/arcanis/yarn/tags","blobs_url":"https://api.github.com/repos/arcanis/yarn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arcanis/yarn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arcanis/yarn/git/refs{/sha}","trees_url":"https://api.github.com/repos/arcanis/yarn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arcanis/yarn/statuses/{sha}","languages_url":"https://api.github.com/repos/arcanis/yarn/languages","stargazers_url":"https://api.github.com/repos/arcanis/yarn/stargazers","contributors_url":"https://api.github.com/repos/arcanis/yarn/contributors","subscribers_url":"https://api.github.com/repos/arcanis/yarn/subscribers","subscription_url":"https://api.github.com/repos/arcanis/yarn/subscription","commits_url":"https://api.github.com/repos/arcanis/yarn/commits{/sha}","git_commits_url":"https://api.github.com/repos/arcanis/yarn/git/commits{/sha}","comments_url":"https://api.github.com/repos/arcanis/yarn/comments{/number}","issue_comment_url":"https://api.github.com/repos/arcanis/yarn/issues/comments{/number}","contents_url":"https://api.github.com/repos/arcanis/yarn/contents/{+path}","compare_url":"https://api.github.com/repos/arcanis/yarn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arcanis/yarn/merges","archive_url":"https://api.github.com/repos/arcanis/yarn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arcanis/yarn/downloads","issues_url":"https://api.github.com/repos/arcanis/yarn/issues{/number}","pulls_url":"https://api.github.com/repos/arcanis/yarn/pulls{/number}","milestones_url":"https://api.github.com/repos/arcanis/yarn/milestones{/number}","notifications_url":"https://api.github.com/repos/arcanis/yarn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arcanis/yarn/labels{/name}","releases_url":"https://api.github.com/repos/arcanis/yarn/releases{/id}","deployments_url":"https://api.github.com/repos/arcanis/yarn/deployments","created_at":"2017-02-21T13:56:57Z","updated_at":"2017-02-21T13:57:01Z","pushed_at":"2018-02-22T13:55:41Z","git_url":"git://github.com/arcanis/yarn.git","ssh_url":"git@github.com:arcanis/yarn.git","clone_url":"https://github.com/arcanis/yarn.git","svn_url":"https://github.com/arcanis/yarn","homepage":"https://yarnpkg.com","size":114900,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"yarnpkg:master","ref":"master","sha":"0fb0fc00ac09bea1bc23eccf055104f234592b0b","user":{"login":"yarnpkg","id":22247014,"avatar_url":"https://avatars3.githubusercontent.com/u/22247014?v=4","gravatar_id":"","url":"https://api.github.com/users/yarnpkg","html_url":"https://github.com/yarnpkg","followers_url":"https://api.github.com/users/yarnpkg/followers","following_url":"https://api.github.com/users/yarnpkg/following{/other_user}","gists_url":"https://api.github.com/users/yarnpkg/gists{/gist_id}","starred_url":"https://api.github.com/users/yarnpkg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yarnpkg/subscriptions","organizations_url":"https://api.github.com/users/yarnpkg/orgs","repos_url":"https://api.github.com/users/yarnpkg/repos","events_url":"https://api.github.com/users/yarnpkg/events{/privacy}","received_events_url":"https://api.github.com/users/yarnpkg/received_events","type":"Organization","site_admin":false},"repo":{"id":49970642,"name":"yarn","full_name":"yarnpkg/yarn","owner":{"login":"yarnpkg","id":22247014,"avatar_url":"https://avatars3.githubusercontent.com/u/22247014?v=4","gravatar_id":"","url":"https://api.github.com/users/yarnpkg","html_url":"https://github.com/yarnpkg","followers_url":"https://api.github.com/users/yarnpkg/followers","following_url":"https://api.github.com/users/yarnpkg/following{/other_user}","gists_url":"https://api.github.com/users/yarnpkg/gists{/gist_id}","starred_url":"https://api.github.com/users/yarnpkg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yarnpkg/subscriptions","organizations_url":"https://api.github.com/users/yarnpkg/orgs","repos_url":"https://api.github.com/users/yarnpkg/repos","events_url":"https://api.github.com/users/yarnpkg/events{/privacy}","received_events_url":"https://api.github.com/users/yarnpkg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/yarnpkg/yarn","description":"📦🐈 Fast, reliable, and secure dependency management.","fork":false,"url":"https://api.github.com/repos/yarnpkg/yarn","forks_url":"https://api.github.com/repos/yarnpkg/yarn/forks","keys_url":"https://api.github.com/repos/yarnpkg/yarn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yarnpkg/yarn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yarnpkg/yarn/teams","hooks_url":"https://api.github.com/repos/yarnpkg/yarn/hooks","issue_events_url":"https://api.github.com/repos/yarnpkg/yarn/issues/events{/number}","events_url":"https://api.github.com/repos/yarnpkg/yarn/events","assignees_url":"https://api.github.com/repos/yarnpkg/yarn/assignees{/user}","branches_url":"https://api.github.com/repos/yarnpkg/yarn/branches{/branch}","tags_url":"https://api.github.com/repos/yarnpkg/yarn/tags","blobs_url":"https://api.github.com/repos/yarnpkg/yarn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yarnpkg/yarn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yarnpkg/yarn/git/refs{/sha}","trees_url":"https://api.github.com/repos/yarnpkg/yarn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yarnpkg/yarn/statuses/{sha}","languages_url":"https://api.github.com/repos/yarnpkg/yarn/languages","stargazers_url":"https://api.github.com/repos/yarnpkg/yarn/stargazers","contributors_url":"https://api.github.com/repos/yarnpkg/yarn/contributors","subscribers_url":"https://api.github.com/repos/yarnpkg/yarn/subscribers","subscription_url":"https://api.github.com/repos/yarnpkg/yarn/subscription","commits_url":"https://api.github.com/repos/yarnpkg/yarn/commits{/sha}","git_commits_url":"https://api.github.com/repos/yarnpkg/yarn/git/commits{/sha}","comments_url":"https://api.github.com/repos/yarnpkg/yarn/comments{/number}","issue_comment_url":"https://api.github.com/repos/yarnpkg/yarn/issues/comments{/number}","contents_url":"https://api.github.com/repos/yarnpkg/yarn/contents/{+path}","compare_url":"https://api.github.com/repos/yarnpkg/yarn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yarnpkg/yarn/merges","archive_url":"https://api.github.com/repos/yarnpkg/yarn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yarnpkg/yarn/downloads","issues_url":"https://api.github.com/repos/yarnpkg/yarn/issues{/number}","pulls_url":"https://api.github.com/repos/yarnpkg/yarn/pulls{/number}","milestones_url":"https://api.github.com/repos/yarnpkg/yarn/milestones{/number}","notifications_url":"https://api.github.com/repos/yarnpkg/yarn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yarnpkg/yarn/labels{/name}","releases_url":"https://api.github.com/repos/yarnpkg/yarn/releases{/id}","deployments_url":"https://api.github.com/repos/yarnpkg/yarn/deployments","created_at":"2016-01-19T17:39:16Z","updated_at":"2018-02-22T14:57:22Z","pushed_at":"2018-02-22T13:55:43Z","git_url":"git://github.com/yarnpkg/yarn.git","ssh_url":"git@github.com:yarnpkg/yarn.git","clone_url":"https://github.com/yarnpkg/yarn.git","svn_url":"https://github.com/yarnpkg/yarn","homepage":"https://yarnpkg.com","size":114562,"stargazers_count":30288,"watchers_count":30288,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1662,"mirror_url":null,"archived":false,"open_issues_count":1044,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":1662,"open_issues":1044,"watchers":30288,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392"},"html":{"href":"https://github.com/yarnpkg/yarn/pull/5392"},"issue":{"href":"https://api.github.com/repos/yarnpkg/yarn/issues/5392"},"comments":{"href":"https://api.github.com/repos/yarnpkg/yarn/issues/5392/comments"},"review_comments":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392/comments"},"review_comment":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/yarnpkg/yarn/pulls/5392/commits"},"statuses":{"href":"https://api.github.com/repos/yarnpkg/yarn/statuses/49eba9440f5c576a574ddc178526f75bafa124af"}},"author_association":"OWNER"}}
{"actor":{"display_login":"cpojer"}}