{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/cli/issues/542","labels_url":"https://api.github.com/repos/dotnet/cli/issues/542/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/cli/issues/542/comments","events_url":"https://api.github.com/repos/dotnet/cli/issues/542/events","html_url":"https://github.com/dotnet/cli/pull/542","id":122838380,"number":542,"title":"Extract Build verb from Compile","user":{"login":"cdmihai","id":2255729,"avatar_url":"https://avatars.githubusercontent.com/u/2255729?v=3","gravatar_id":"","url":"https://api.github.com/users/cdmihai","html_url":"https://github.com/cdmihai","followers_url":"https://api.github.com/users/cdmihai/followers","following_url":"https://api.github.com/users/cdmihai/following{/other_user}","gists_url":"https://api.github.com/users/cdmihai/gists{/gist_id}","starred_url":"https://api.github.com/users/cdmihai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdmihai/subscriptions","organizations_url":"https://api.github.com/users/cdmihai/orgs","repos_url":"https://api.github.com/users/cdmihai/repos","events_url":"https://api.github.com/users/cdmihai/events{/privacy}","received_events_url":"https://api.github.com/users/cdmihai/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/cli/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-17T22:37:37Z","updated_at":"2015-12-22T19:53:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/cli/pulls/542","html_url":"https://github.com/dotnet/cli/pull/542","diff_url":"https://github.com/dotnet/cli/pull/542.diff","patch_url":"https://github.com/dotnet/cli/pull/542.patch"},"body":"Addresses the first proposed PR from issue #532 of separating the existing code into Compile and Build:\r\n- Compile's only responsibility is to know how to invoke the compiler and how to do native compilation\r\n- Build's responsibility is to compile a project graph (root project + dependencies) and delegates to Compile for actual compilation.\r\n\r\nI tried to factor out the common code:\r\n- Added extension methods to ProjectContext for resolving the output paths\r\n- Extracted out a common definition for the build and compile command line interface. Unfortunately I could not figure out how to properly share it between the two projects (I tried putting it in Utils, then in Compiler.Common, then in either Compile or Build, but nothing worked due to various arbitrary reasons). For now I chose to just duplicate the code until I figure out a better way to share command line interfaces between verbs.\r\n\r\nI plan on updating the readme once I've made more changes to Build (safety checks, actual incrementality, etc)"},"comment":{"url":"https://api.github.com/repos/dotnet/cli/issues/comments/166714941","html_url":"https://github.com/dotnet/cli/pull/542#issuecomment-166714941","issue_url":"https://api.github.com/repos/dotnet/cli/issues/542","id":166714941,"user":{"login":"cdmihai","id":2255729,"avatar_url":"https://avatars.githubusercontent.com/u/2255729?v=3","gravatar_id":"","url":"https://api.github.com/users/cdmihai","html_url":"https://github.com/cdmihai","followers_url":"https://api.github.com/users/cdmihai/followers","following_url":"https://api.github.com/users/cdmihai/following{/other_user}","gists_url":"https://api.github.com/users/cdmihai/gists{/gist_id}","starred_url":"https://api.github.com/users/cdmihai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdmihai/subscriptions","organizations_url":"https://api.github.com/users/cdmihai/orgs","repos_url":"https://api.github.com/users/cdmihai/repos","events_url":"https://api.github.com/users/cdmihai/events{/privacy}","received_events_url":"https://api.github.com/users/cdmihai/received_events","type":"User","site_admin":false},"created_at":"2015-12-22T19:53:59Z","updated_at":"2015-12-22T19:53:59Z","body":"@gkhanna79 \r\nI'll squash the commits before merging to master into one large commit (I can also do 3-4 implementation history commits).\r\n\r\nI will also cherry pick 89a438acf3e337a628dbf7482434077019f86a3d into this PR, since it belongs here (I only got the refactoring idea while working on #625)."}}