{"action":"created","comment":{"url":"https://api.github.com/repos/duojs/duo/pulls/comments/35448402","id":35448402,"diff_hunk":"@@ -526,6 +527,30 @@ describe('Duo API', function () {\n       yield duo.run();\n     });\n \n+    it('should update dependencies when the manifest changes', function *() {\n+      var duo = build('manifest-modify');\n+\n+      var a = path('manifest-modify', 'component-a.json');\n+      var b = path('manifest-modify', 'component-b.json');\n+      var manifest = path('manifest-modify', 'component.json');\n+\n+      // write manifest a\n+      yield fs.writeFile(manifest, yield fs.readFile(a, 'utf8'));\n+      var adeps = yield duo.install();\n+\n+      yield wait(1000); // need to wait so mtime changes","path":"test/api.js","position":23,"original_position":23,"commit_id":"b14301f435b97dc7d1d0bea7431bd5a79f4c5e0b","original_commit_id":"b14301f435b97dc7d1d0bea7431bd5a79f4c5e0b","user":{"login":"stephenmathieson","id":571265,"avatar_url":"https://avatars.githubusercontent.com/u/571265?v=3","gravatar_id":"","url":"https://api.github.com/users/stephenmathieson","html_url":"https://github.com/stephenmathieson","followers_url":"https://api.github.com/users/stephenmathieson/followers","following_url":"https://api.github.com/users/stephenmathieson/following{/other_user}","gists_url":"https://api.github.com/users/stephenmathieson/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenmathieson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenmathieson/subscriptions","organizations_url":"https://api.github.com/users/stephenmathieson/orgs","repos_url":"https://api.github.com/users/stephenmathieson/repos","events_url":"https://api.github.com/users/stephenmathieson/events{/privacy}","received_events_url":"https://api.github.com/users/stephenmathieson/received_events","type":"User","site_admin":false},"body":"ah fair enough.","created_at":"2015-07-24T17:58:16Z","updated_at":"2015-07-24T17:58:16Z","html_url":"https://github.com/duojs/duo/pull/487#discussion_r35448402","pull_request_url":"https://api.github.com/repos/duojs/duo/pulls/487","_links":{"self":{"href":"https://api.github.com/repos/duojs/duo/pulls/comments/35448402"},"html":{"href":"https://github.com/duojs/duo/pull/487#discussion_r35448402"},"pull_request":{"href":"https://api.github.com/repos/duojs/duo/pulls/487"}}},"pull_request":{"url":"https://api.github.com/repos/duojs/duo/pulls/487","id":40752000,"html_url":"https://github.com/duojs/duo/pull/487","diff_url":"https://github.com/duojs/duo/pull/487.diff","patch_url":"https://github.com/duojs/duo/pull/487.patch","issue_url":"https://api.github.com/repos/duojs/duo/issues/487","number":487,"state":"open","locked":false,"title":"Properly respond to a modified manifest file","user":{"login":"dominicbarnes","id":160197,"avatar_url":"https://avatars.githubusercontent.com/u/160197?v=3","gravatar_id":"","url":"https://api.github.com/users/dominicbarnes","html_url":"https://github.com/dominicbarnes","followers_url":"https://api.github.com/users/dominicbarnes/followers","following_url":"https://api.github.com/users/dominicbarnes/following{/other_user}","gists_url":"https://api.github.com/users/dominicbarnes/gists{/gist_id}","starred_url":"https://api.github.com/users/dominicbarnes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dominicbarnes/subscriptions","organizations_url":"https://api.github.com/users/dominicbarnes/orgs","repos_url":"https://api.github.com/users/dominicbarnes/repos","events_url":"https://api.github.com/users/dominicbarnes/events{/privacy}","received_events_url":"https://api.github.com/users/dominicbarnes/received_events","type":"User","site_admin":false},"body":"Currently, if you change a version in your manifest file, it will only update the dependency when you:\r\n * clean the duo cache\r\n * remove `components`\r\n * touch/modify your files (and then, only the modified files get the updated version)\r\n\r\nThis causes headaches when using a manifest for managing versions in your project, because only the first 2 options end up being viable in practice. Not only that, but in a CI environment, you can't reliably cache the `components` directory, because it will not remain up-to-date for the same reasons.\r\n\r\nThis changes the internal behavior and makes a modified manifest invalidate the cache for individual files. (causing it to re-resolve the dependencies) A lot of the caching work I've been doing makes this a reliable action to take. (and will hit the API far fewer times than having to re-resolve _everything_ after destroying the cache)","created_at":"2015-07-24T08:14:15Z","updated_at":"2015-07-24T17:58:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c878c582af55386855129e3237b17c3af37b4044","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/duojs/duo/pulls/487/commits","review_comments_url":"https://api.github.com/repos/duojs/duo/pulls/487/comments","review_comment_url":"https://api.github.com/repos/duojs/duo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/duojs/duo/issues/487/comments","statuses_url":"https://api.github.com/repos/duojs/duo/statuses/b14301f435b97dc7d1d0bea7431bd5a79f4c5e0b","head":{"label":"duojs:check-manifest-mtime","ref":"check-manifest-mtime","sha":"b14301f435b97dc7d1d0bea7431bd5a79f4c5e0b","user":{"login":"duojs","id":7105268,"avatar_url":"https://avatars.githubusercontent.com/u/7105268?v=3","gravatar_id":"","url":"https://api.github.com/users/duojs","html_url":"https://github.com/duojs","followers_url":"https://api.github.com/users/duojs/followers","following_url":"https://api.github.com/users/duojs/following{/other_user}","gists_url":"https://api.github.com/users/duojs/gists{/gist_id}","starred_url":"https://api.github.com/users/duojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duojs/subscriptions","organizations_url":"https://api.github.com/users/duojs/orgs","repos_url":"https://api.github.com/users/duojs/repos","events_url":"https://api.github.com/users/duojs/events{/privacy}","received_events_url":"https://api.github.com/users/duojs/received_events","type":"Organization","site_admin":false},"repo":{"id":18609451,"name":"duo","full_name":"duojs/duo","owner":{"login":"duojs","id":7105268,"avatar_url":"https://avatars.githubusercontent.com/u/7105268?v=3","gravatar_id":"","url":"https://api.github.com/users/duojs","html_url":"https://github.com/duojs","followers_url":"https://api.github.com/users/duojs/followers","following_url":"https://api.github.com/users/duojs/following{/other_user}","gists_url":"https://api.github.com/users/duojs/gists{/gist_id}","starred_url":"https://api.github.com/users/duojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duojs/subscriptions","organizations_url":"https://api.github.com/users/duojs/orgs","repos_url":"https://api.github.com/users/duojs/repos","events_url":"https://api.github.com/users/duojs/events{/privacy}","received_events_url":"https://api.github.com/users/duojs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/duojs/duo","description":"A next-generation package manager for the front-end","fork":false,"url":"https://api.github.com/repos/duojs/duo","forks_url":"https://api.github.com/repos/duojs/duo/forks","keys_url":"https://api.github.com/repos/duojs/duo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/duojs/duo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/duojs/duo/teams","hooks_url":"https://api.github.com/repos/duojs/duo/hooks","issue_events_url":"https://api.github.com/repos/duojs/duo/issues/events{/number}","events_url":"https://api.github.com/repos/duojs/duo/events","assignees_url":"https://api.github.com/repos/duojs/duo/assignees{/user}","branches_url":"https://api.github.com/repos/duojs/duo/branches{/branch}","tags_url":"https://api.github.com/repos/duojs/duo/tags","blobs_url":"https://api.github.com/repos/duojs/duo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/duojs/duo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/duojs/duo/git/refs{/sha}","trees_url":"https://api.github.com/repos/duojs/duo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/duojs/duo/statuses/{sha}","languages_url":"https://api.github.com/repos/duojs/duo/languages","stargazers_url":"https://api.github.com/repos/duojs/duo/stargazers","contributors_url":"https://api.github.com/repos/duojs/duo/contributors","subscribers_url":"https://api.github.com/repos/duojs/duo/subscribers","subscription_url":"https://api.github.com/repos/duojs/duo/subscription","commits_url":"https://api.github.com/repos/duojs/duo/commits{/sha}","git_commits_url":"https://api.github.com/repos/duojs/duo/git/commits{/sha}","comments_url":"https://api.github.com/repos/duojs/duo/comments{/number}","issue_comment_url":"https://api.github.com/repos/duojs/duo/issues/comments{/number}","contents_url":"https://api.github.com/repos/duojs/duo/contents/{+path}","compare_url":"https://api.github.com/repos/duojs/duo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/duojs/duo/merges","archive_url":"https://api.github.com/repos/duojs/duo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/duojs/duo/downloads","issues_url":"https://api.github.com/repos/duojs/duo/issues{/number}","pulls_url":"https://api.github.com/repos/duojs/duo/pulls{/number}","milestones_url":"https://api.github.com/repos/duojs/duo/milestones{/number}","notifications_url":"https://api.github.com/repos/duojs/duo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/duojs/duo/labels{/name}","releases_url":"https://api.github.com/repos/duojs/duo/releases{/id}","created_at":"2014-04-09T19:05:08Z","updated_at":"2015-07-24T09:15:14Z","pushed_at":"2015-07-24T08:17:56Z","git_url":"git://github.com/duojs/duo.git","ssh_url":"git@github.com:duojs/duo.git","clone_url":"https://github.com/duojs/duo.git","svn_url":"https://github.com/duojs/duo","homepage":"http://duojs.org/","size":5506,"stargazers_count":3201,"watchers_count":3201,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":101,"forks":101,"open_issues":101,"watchers":3201,"default_branch":"master"}},"base":{"label":"duojs:master","ref":"master","sha":"d69cc239b390339a6155335e9f269264dbbf96b7","user":{"login":"duojs","id":7105268,"avatar_url":"https://avatars.githubusercontent.com/u/7105268?v=3","gravatar_id":"","url":"https://api.github.com/users/duojs","html_url":"https://github.com/duojs","followers_url":"https://api.github.com/users/duojs/followers","following_url":"https://api.github.com/users/duojs/following{/other_user}","gists_url":"https://api.github.com/users/duojs/gists{/gist_id}","starred_url":"https://api.github.com/users/duojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duojs/subscriptions","organizations_url":"https://api.github.com/users/duojs/orgs","repos_url":"https://api.github.com/users/duojs/repos","events_url":"https://api.github.com/users/duojs/events{/privacy}","received_events_url":"https://api.github.com/users/duojs/received_events","type":"Organization","site_admin":false},"repo":{"id":18609451,"name":"duo","full_name":"duojs/duo","owner":{"login":"duojs","id":7105268,"avatar_url":"https://avatars.githubusercontent.com/u/7105268?v=3","gravatar_id":"","url":"https://api.github.com/users/duojs","html_url":"https://github.com/duojs","followers_url":"https://api.github.com/users/duojs/followers","following_url":"https://api.github.com/users/duojs/following{/other_user}","gists_url":"https://api.github.com/users/duojs/gists{/gist_id}","starred_url":"https://api.github.com/users/duojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duojs/subscriptions","organizations_url":"https://api.github.com/users/duojs/orgs","repos_url":"https://api.github.com/users/duojs/repos","events_url":"https://api.github.com/users/duojs/events{/privacy}","received_events_url":"https://api.github.com/users/duojs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/duojs/duo","description":"A next-generation package manager for the front-end","fork":false,"url":"https://api.github.com/repos/duojs/duo","forks_url":"https://api.github.com/repos/duojs/duo/forks","keys_url":"https://api.github.com/repos/duojs/duo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/duojs/duo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/duojs/duo/teams","hooks_url":"https://api.github.com/repos/duojs/duo/hooks","issue_events_url":"https://api.github.com/repos/duojs/duo/issues/events{/number}","events_url":"https://api.github.com/repos/duojs/duo/events","assignees_url":"https://api.github.com/repos/duojs/duo/assignees{/user}","branches_url":"https://api.github.com/repos/duojs/duo/branches{/branch}","tags_url":"https://api.github.com/repos/duojs/duo/tags","blobs_url":"https://api.github.com/repos/duojs/duo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/duojs/duo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/duojs/duo/git/refs{/sha}","trees_url":"https://api.github.com/repos/duojs/duo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/duojs/duo/statuses/{sha}","languages_url":"https://api.github.com/repos/duojs/duo/languages","stargazers_url":"https://api.github.com/repos/duojs/duo/stargazers","contributors_url":"https://api.github.com/repos/duojs/duo/contributors","subscribers_url":"https://api.github.com/repos/duojs/duo/subscribers","subscription_url":"https://api.github.com/repos/duojs/duo/subscription","commits_url":"https://api.github.com/repos/duojs/duo/commits{/sha}","git_commits_url":"https://api.github.com/repos/duojs/duo/git/commits{/sha}","comments_url":"https://api.github.com/repos/duojs/duo/comments{/number}","issue_comment_url":"https://api.github.com/repos/duojs/duo/issues/comments{/number}","contents_url":"https://api.github.com/repos/duojs/duo/contents/{+path}","compare_url":"https://api.github.com/repos/duojs/duo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/duojs/duo/merges","archive_url":"https://api.github.com/repos/duojs/duo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/duojs/duo/downloads","issues_url":"https://api.github.com/repos/duojs/duo/issues{/number}","pulls_url":"https://api.github.com/repos/duojs/duo/pulls{/number}","milestones_url":"https://api.github.com/repos/duojs/duo/milestones{/number}","notifications_url":"https://api.github.com/repos/duojs/duo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/duojs/duo/labels{/name}","releases_url":"https://api.github.com/repos/duojs/duo/releases{/id}","created_at":"2014-04-09T19:05:08Z","updated_at":"2015-07-24T09:15:14Z","pushed_at":"2015-07-24T08:17:56Z","git_url":"git://github.com/duojs/duo.git","ssh_url":"git@github.com:duojs/duo.git","clone_url":"https://github.com/duojs/duo.git","svn_url":"https://github.com/duojs/duo","homepage":"http://duojs.org/","size":5506,"stargazers_count":3201,"watchers_count":3201,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":101,"forks":101,"open_issues":101,"watchers":3201,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/duojs/duo/pulls/487"},"html":{"href":"https://github.com/duojs/duo/pull/487"},"issue":{"href":"https://api.github.com/repos/duojs/duo/issues/487"},"comments":{"href":"https://api.github.com/repos/duojs/duo/issues/487/comments"},"review_comments":{"href":"https://api.github.com/repos/duojs/duo/pulls/487/comments"},"review_comment":{"href":"https://api.github.com/repos/duojs/duo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/duojs/duo/pulls/487/commits"},"statuses":{"href":"https://api.github.com/repos/duojs/duo/statuses/b14301f435b97dc7d1d0bea7431bd5a79f4c5e0b"}}}}