{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/comments/206378632","pull_request_review_id":141781692,"id":206378632,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjM3ODYzMg==","diff_hunk":"@@ -214,7 +213,7 @@ impl Plan {\n                 match unit {\n                     None => trace!(\n                         \"Modified file {:?} doesn't correspond to any package!\",","path":"src/build/plan.rs","position":null,"original_position":34,"commit_id":"f6a439be045d54ffd63bca42c063f05c2ffaaf2f","original_commit_id":"333c670443e7e77b929e6490f6d49cb918608fdc","user":{"login":"nrc","id":762626,"node_id":"MDQ6VXNlcjc2MjYyNg==","avatar_url":"https://avatars0.githubusercontent.com/u/762626?v=4","gravatar_id":"","url":"https://api.github.com/users/nrc","html_url":"https://github.com/nrc","followers_url":"https://api.github.com/users/nrc/followers","following_url":"https://api.github.com/users/nrc/following{/other_user}","gists_url":"https://api.github.com/users/nrc/gists{/gist_id}","starred_url":"https://api.github.com/users/nrc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nrc/subscriptions","organizations_url":"https://api.github.com/users/nrc/orgs","repos_url":"https://api.github.com/users/nrc/repos","events_url":"https://api.github.com/users/nrc/events{/privacy}","received_events_url":"https://api.github.com/users/nrc/received_events","type":"User","site_admin":false},"body":"`s/{:?}/{}`","created_at":"2018-07-31T02:27:12Z","updated_at":"2018-07-31T02:39:10Z","html_url":"https://github.com/rust-lang-nursery/rls/pull/969#discussion_r206378632","pull_request_url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/comments/206378632"},"html":{"href":"https://github.com/rust-lang-nursery/rls/pull/969#discussion_r206378632"},"pull_request":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969","id":204660330,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0NjYwMzMw","html_url":"https://github.com/rust-lang-nursery/rls/pull/969","diff_url":"https://github.com/rust-lang-nursery/rls/pull/969.diff","patch_url":"https://github.com/rust-lang-nursery/rls/pull/969.patch","issue_url":"https://api.github.com/repos/rust-lang-nursery/rls/issues/969","number":969,"state":"open","locked":false,"title":"Rebuild necessary packages when reusing build plan","user":{"login":"Xanewok","id":3093213,"node_id":"MDQ6VXNlcjMwOTMyMTM=","avatar_url":"https://avatars2.githubusercontent.com/u/3093213?v=4","gravatar_id":"","url":"https://api.github.com/users/Xanewok","html_url":"https://github.com/Xanewok","followers_url":"https://api.github.com/users/Xanewok/followers","following_url":"https://api.github.com/users/Xanewok/following{/other_user}","gists_url":"https://api.github.com/users/Xanewok/gists{/gist_id}","starred_url":"https://api.github.com/users/Xanewok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Xanewok/subscriptions","organizations_url":"https://api.github.com/users/Xanewok/orgs","repos_url":"https://api.github.com/users/Xanewok/repos","events_url":"https://api.github.com/users/Xanewok/events{/privacy}","received_events_url":"https://api.github.com/users/Xanewok/received_events","type":"User","site_admin":false},"body":"Somewhat fixes #876.\r\n~Relies on the Cargo fork branch pulling in https://github.com/rust-lang/cargo/pull/5830.~\r\n\r\nFirstly, it fixes the package autodetection logic. Previously it calculated bare `-p` and compared it against previous cached version. Now we try to build default set of packages for Cargo, create a set out of these packages and if we find ourselves modifying a package not included in the cached build plan, we ask Cargo to rebuild the *sum* of previous packages and the new one. In short, the build plan is additive and if we don't have what we need, we try to rebuild it including the package we just modified.\r\n\r\nSecondly, we distinguish more unit types in the dep graph. This changes unit distinction from `(PackageId, TargetKind)` to `(PackageId, Target, CompileMode)`.\r\nPrevious key type was not enough a) when compiling different targets of the same kind (e.g. differently named bin targets) b) when compiling exact same crate target in a regular mode and in the unit test/harness mode. The latter distinction is important, because previously we could have assigned a unit test harness invocation to a regular lib on which other units depended - when we invalidated library, the unit test harness was reran, but the lib was not rebuilt, resulting in missing/invalid data across multiple crate targets.\r\n\r\nThis also somewhat improves test harness in few places - I think it'd be great to focus on it now and provide a nice set of bulletproof regression tests against cases such as this. This would definitely help bring the 1.0 quality!","created_at":"2018-07-29T20:39:33Z","updated_at":"2018-07-31T02:39:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"29f8b4f0b8581d1b569d716a39180904fe26cf36","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969/commits","review_comments_url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969/comments","review_comment_url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rust-lang-nursery/rls/issues/969/comments","statuses_url":"https://api.github.com/repos/rust-lang-nursery/rls/statuses/f6a439be045d54ffd63bca42c063f05c2ffaaf2f","head":{"label":"Xanewok:issue-876","ref":"issue-876","sha":"f6a439be045d54ffd63bca42c063f05c2ffaaf2f","user":{"login":"Xanewok","id":3093213,"node_id":"MDQ6VXNlcjMwOTMyMTM=","avatar_url":"https://avatars2.githubusercontent.com/u/3093213?v=4","gravatar_id":"","url":"https://api.github.com/users/Xanewok","html_url":"https://github.com/Xanewok","followers_url":"https://api.github.com/users/Xanewok/followers","following_url":"https://api.github.com/users/Xanewok/following{/other_user}","gists_url":"https://api.github.com/users/Xanewok/gists{/gist_id}","starred_url":"https://api.github.com/users/Xanewok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Xanewok/subscriptions","organizations_url":"https://api.github.com/users/Xanewok/orgs","repos_url":"https://api.github.com/users/Xanewok/repos","events_url":"https://api.github.com/users/Xanewok/events{/privacy}","received_events_url":"https://api.github.com/users/Xanewok/received_events","type":"User","site_admin":false},"repo":{"id":85908667,"node_id":"MDEwOlJlcG9zaXRvcnk4NTkwODY2Nw==","name":"rls","full_name":"Xanewok/rls","owner":{"login":"Xanewok","id":3093213,"node_id":"MDQ6VXNlcjMwOTMyMTM=","avatar_url":"https://avatars2.githubusercontent.com/u/3093213?v=4","gravatar_id":"","url":"https://api.github.com/users/Xanewok","html_url":"https://github.com/Xanewok","followers_url":"https://api.github.com/users/Xanewok/followers","following_url":"https://api.github.com/users/Xanewok/following{/other_user}","gists_url":"https://api.github.com/users/Xanewok/gists{/gist_id}","starred_url":"https://api.github.com/users/Xanewok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Xanewok/subscriptions","organizations_url":"https://api.github.com/users/Xanewok/orgs","repos_url":"https://api.github.com/users/Xanewok/repos","events_url":"https://api.github.com/users/Xanewok/events{/privacy}","received_events_url":"https://api.github.com/users/Xanewok/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Xanewok/rls","description":"Repository for the Rust Language Server (aka RLS)","fork":true,"url":"https://api.github.com/repos/Xanewok/rls","forks_url":"https://api.github.com/repos/Xanewok/rls/forks","keys_url":"https://api.github.com/repos/Xanewok/rls/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Xanewok/rls/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Xanewok/rls/teams","hooks_url":"https://api.github.com/repos/Xanewok/rls/hooks","issue_events_url":"https://api.github.com/repos/Xanewok/rls/issues/events{/number}","events_url":"https://api.github.com/repos/Xanewok/rls/events","assignees_url":"https://api.github.com/repos/Xanewok/rls/assignees{/user}","branches_url":"https://api.github.com/repos/Xanewok/rls/branches{/branch}","tags_url":"https://api.github.com/repos/Xanewok/rls/tags","blobs_url":"https://api.github.com/repos/Xanewok/rls/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Xanewok/rls/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Xanewok/rls/git/refs{/sha}","trees_url":"https://api.github.com/repos/Xanewok/rls/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Xanewok/rls/statuses/{sha}","languages_url":"https://api.github.com/repos/Xanewok/rls/languages","stargazers_url":"https://api.github.com/repos/Xanewok/rls/stargazers","contributors_url":"https://api.github.com/repos/Xanewok/rls/contributors","subscribers_url":"https://api.github.com/repos/Xanewok/rls/subscribers","subscription_url":"https://api.github.com/repos/Xanewok/rls/subscription","commits_url":"https://api.github.com/repos/Xanewok/rls/commits{/sha}","git_commits_url":"https://api.github.com/repos/Xanewok/rls/git/commits{/sha}","comments_url":"https://api.github.com/repos/Xanewok/rls/comments{/number}","issue_comment_url":"https://api.github.com/repos/Xanewok/rls/issues/comments{/number}","contents_url":"https://api.github.com/repos/Xanewok/rls/contents/{+path}","compare_url":"https://api.github.com/repos/Xanewok/rls/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Xanewok/rls/merges","archive_url":"https://api.github.com/repos/Xanewok/rls/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Xanewok/rls/downloads","issues_url":"https://api.github.com/repos/Xanewok/rls/issues{/number}","pulls_url":"https://api.github.com/repos/Xanewok/rls/pulls{/number}","milestones_url":"https://api.github.com/repos/Xanewok/rls/milestones{/number}","notifications_url":"https://api.github.com/repos/Xanewok/rls/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Xanewok/rls/labels{/name}","releases_url":"https://api.github.com/repos/Xanewok/rls/releases{/id}","deployments_url":"https://api.github.com/repos/Xanewok/rls/deployments","created_at":"2017-03-23T04:57:17Z","updated_at":"2018-07-29T22:34:30Z","pushed_at":"2018-07-29T22:43:59Z","git_url":"git://github.com/Xanewok/rls.git","ssh_url":"git@github.com:Xanewok/rls.git","clone_url":"https://github.com/Xanewok/rls.git","svn_url":"https://github.com/Xanewok/rls","homepage":"","size":2381,"stargazers_count":1,"watchers_count":1,"language":"Rust","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"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,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"rust-lang-nursery:master","ref":"master","sha":"a528e2fa36b6d2c5b9b1e4e0cd60109900b6d981","user":{"login":"rust-lang-nursery","id":14631425,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0NjMxNDI1","avatar_url":"https://avatars1.githubusercontent.com/u/14631425?v=4","gravatar_id":"","url":"https://api.github.com/users/rust-lang-nursery","html_url":"https://github.com/rust-lang-nursery","followers_url":"https://api.github.com/users/rust-lang-nursery/followers","following_url":"https://api.github.com/users/rust-lang-nursery/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang-nursery/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang-nursery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang-nursery/subscriptions","organizations_url":"https://api.github.com/users/rust-lang-nursery/orgs","repos_url":"https://api.github.com/users/rust-lang-nursery/repos","events_url":"https://api.github.com/users/rust-lang-nursery/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang-nursery/received_events","type":"Organization","site_admin":false},"repo":{"id":66979953,"node_id":"MDEwOlJlcG9zaXRvcnk2Njk3OTk1Mw==","name":"rls","full_name":"rust-lang-nursery/rls","owner":{"login":"rust-lang-nursery","id":14631425,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0NjMxNDI1","avatar_url":"https://avatars1.githubusercontent.com/u/14631425?v=4","gravatar_id":"","url":"https://api.github.com/users/rust-lang-nursery","html_url":"https://github.com/rust-lang-nursery","followers_url":"https://api.github.com/users/rust-lang-nursery/followers","following_url":"https://api.github.com/users/rust-lang-nursery/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang-nursery/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang-nursery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang-nursery/subscriptions","organizations_url":"https://api.github.com/users/rust-lang-nursery/orgs","repos_url":"https://api.github.com/users/rust-lang-nursery/repos","events_url":"https://api.github.com/users/rust-lang-nursery/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang-nursery/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rust-lang-nursery/rls","description":"Repository for the Rust Language Server (aka RLS)","fork":false,"url":"https://api.github.com/repos/rust-lang-nursery/rls","forks_url":"https://api.github.com/repos/rust-lang-nursery/rls/forks","keys_url":"https://api.github.com/repos/rust-lang-nursery/rls/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rust-lang-nursery/rls/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rust-lang-nursery/rls/teams","hooks_url":"https://api.github.com/repos/rust-lang-nursery/rls/hooks","issue_events_url":"https://api.github.com/repos/rust-lang-nursery/rls/issues/events{/number}","events_url":"https://api.github.com/repos/rust-lang-nursery/rls/events","assignees_url":"https://api.github.com/repos/rust-lang-nursery/rls/assignees{/user}","branches_url":"https://api.github.com/repos/rust-lang-nursery/rls/branches{/branch}","tags_url":"https://api.github.com/repos/rust-lang-nursery/rls/tags","blobs_url":"https://api.github.com/repos/rust-lang-nursery/rls/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rust-lang-nursery/rls/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rust-lang-nursery/rls/git/refs{/sha}","trees_url":"https://api.github.com/repos/rust-lang-nursery/rls/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rust-lang-nursery/rls/statuses/{sha}","languages_url":"https://api.github.com/repos/rust-lang-nursery/rls/languages","stargazers_url":"https://api.github.com/repos/rust-lang-nursery/rls/stargazers","contributors_url":"https://api.github.com/repos/rust-lang-nursery/rls/contributors","subscribers_url":"https://api.github.com/repos/rust-lang-nursery/rls/subscribers","subscription_url":"https://api.github.com/repos/rust-lang-nursery/rls/subscription","commits_url":"https://api.github.com/repos/rust-lang-nursery/rls/commits{/sha}","git_commits_url":"https://api.github.com/repos/rust-lang-nursery/rls/git/commits{/sha}","comments_url":"https://api.github.com/repos/rust-lang-nursery/rls/comments{/number}","issue_comment_url":"https://api.github.com/repos/rust-lang-nursery/rls/issues/comments{/number}","contents_url":"https://api.github.com/repos/rust-lang-nursery/rls/contents/{+path}","compare_url":"https://api.github.com/repos/rust-lang-nursery/rls/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rust-lang-nursery/rls/merges","archive_url":"https://api.github.com/repos/rust-lang-nursery/rls/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rust-lang-nursery/rls/downloads","issues_url":"https://api.github.com/repos/rust-lang-nursery/rls/issues{/number}","pulls_url":"https://api.github.com/repos/rust-lang-nursery/rls/pulls{/number}","milestones_url":"https://api.github.com/repos/rust-lang-nursery/rls/milestones{/number}","notifications_url":"https://api.github.com/repos/rust-lang-nursery/rls/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rust-lang-nursery/rls/labels{/name}","releases_url":"https://api.github.com/repos/rust-lang-nursery/rls/releases{/id}","deployments_url":"https://api.github.com/repos/rust-lang-nursery/rls/deployments","created_at":"2016-08-30T21:42:03Z","updated_at":"2018-07-31T01:53:35Z","pushed_at":"2018-07-31T01:53:32Z","git_url":"git://github.com/rust-lang-nursery/rls.git","ssh_url":"git@github.com:rust-lang-nursery/rls.git","clone_url":"https://github.com/rust-lang-nursery/rls.git","svn_url":"https://github.com/rust-lang-nursery/rls","homepage":"","size":2356,"stargazers_count":1636,"watchers_count":1636,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":146,"mirror_url":null,"archived":false,"open_issues_count":115,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":146,"open_issues":115,"watchers":1636,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969"},"html":{"href":"https://github.com/rust-lang-nursery/rls/pull/969"},"issue":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/issues/969"},"comments":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/issues/969/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969/comments"},"review_comment":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/pulls/969/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang-nursery/rls/statuses/f6a439be045d54ffd63bca42c063f05c2ffaaf2f"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"nrc"}}