{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/comments/75695260","id":75695260,"diff_hunk":"@@ -0,0 +1,47 @@\n+Build guidelines\n+================\n+###Goal\n+\n+It is difficult for devs, who are new to the corefx repo, to reason about the build and understand how to implement new features, or otherwise update the repo's build.  The primary goal is to provide a repo which is easier to reason about.  A secondary goal, would be to help the dev implement their changes to the build (without getting in their way) such that they are confident they are following our guidelines.\n+\n+- Keep it simple\n+- Keep it clean\n+- Make it maintainable (secondary)\n+\n+### Keep it simple\n+\n+We don't want multiple ways to do the same thing.  There is a support cost and mind-share cost associated with having multiple ways to achieve something.  It's ok to have insider tricks, things for power-users who understand the default experience but want to optimize it for their development patterns.\n+- Support cost\n+ - Discovery becomes difficult\n+ - Maintenance is difficult\n+ - Devs will grow accustomed to whatever pattern they first learn and not utilize the other, so why have more than one?\n+ - Multiple ways to accomplish the same goal make it difficult to ensure that what a dev is doing is the same thing that an automated system is doing (or close to it)\n+- If the second way to do something is literally an alias to the first way, then that's probably ok, but we should have those things in a discoverable place, not cluttering our root.\n+  - The run tool can highlight an alternative command, ie. Build-managed.cmd, build-tests.cmd, etc…\n+\n+### Keep it clean\n+\n+It is difficult to understand our build because our build files are interspersed throughout our repo, or simply dropped at the root where they are lost amongst the myriad of other files in the root of the repo.  It is preferable if there is a single place to go, to reason about our build system.  ","path":"Documentation/building/build-guidelines.md","position":24,"original_position":24,"commit_id":"afed591aa0f28931f2dc982ffd32ea9d8380a20b","original_commit_id":"afed591aa0f28931f2dc982ffd32ea9d8380a20b","user":{"login":"dagood","id":12819531,"avatar_url":"https://avatars.githubusercontent.com/u/12819531?v=3","gravatar_id":"","url":"https://api.github.com/users/dagood","html_url":"https://github.com/dagood","followers_url":"https://api.github.com/users/dagood/followers","following_url":"https://api.github.com/users/dagood/following{/other_user}","gists_url":"https://api.github.com/users/dagood/gists{/gist_id}","starred_url":"https://api.github.com/users/dagood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagood/subscriptions","organizations_url":"https://api.github.com/users/dagood/orgs","repos_url":"https://api.github.com/users/dagood/repos","events_url":"https://api.github.com/users/dagood/events{/privacy}","received_events_url":"https://api.github.com/users/dagood/received_events","type":"User","site_admin":false},"body":"There are some msbuild files in `src`, would probably make sense to move those along with the ones in root. (At least non-structural ones?)","created_at":"2016-08-22T15:07:54Z","updated_at":"2016-08-22T15:07:54Z","html_url":"https://github.com/dotnet/corefx/pull/11019#discussion_r75695260","pull_request_url":"https://api.github.com/repos/dotnet/corefx/pulls/11019","_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments/75695260"},"html":{"href":"https://github.com/dotnet/corefx/pull/11019#discussion_r75695260"},"pull_request":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/11019"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/11019","id":82054206,"html_url":"https://github.com/dotnet/corefx/pull/11019","diff_url":"https://github.com/dotnet/corefx/pull/11019.diff","patch_url":"https://github.com/dotnet/corefx/pull/11019.patch","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/11019","number":11019,"state":"open","locked":false,"title":"[WIP] Proposal for changing CoreFx build structure","user":{"login":"chcosta","id":10092143,"avatar_url":"https://avatars.githubusercontent.com/u/10092143?v=3","gravatar_id":"","url":"https://api.github.com/users/chcosta","html_url":"https://github.com/chcosta","followers_url":"https://api.github.com/users/chcosta/followers","following_url":"https://api.github.com/users/chcosta/following{/other_user}","gists_url":"https://api.github.com/users/chcosta/gists{/gist_id}","starred_url":"https://api.github.com/users/chcosta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chcosta/subscriptions","organizations_url":"https://api.github.com/users/chcosta/orgs","repos_url":"https://api.github.com/users/chcosta/repos","events_url":"https://api.github.com/users/chcosta/events{/privacy}","received_events_url":"https://api.github.com/users/chcosta/received_events","type":"User","site_admin":false},"body":"I have some ideas for how we can clean up our somewhat complex build infrastructure and make it at least easier to reason about.  I want to start the conversation and discuss thoughts / concerns / etc...\r\n\r\n/cc @weshaggard @markwilkie @jhendrixMSFT @dagood @joperezr @maririos ","created_at":"2016-08-19T22:23:11Z","updated_at":"2016-08-22T15:07:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"160a48018a561eeec64831c7c49a020caf41b85f","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/corefx/pulls/11019/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefx/pulls/11019/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/11019/comments","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/afed591aa0f28931f2dc982ffd32ea9d8380a20b","head":{"label":"chcosta:buildproposal","ref":"buildproposal","sha":"afed591aa0f28931f2dc982ffd32ea9d8380a20b","user":{"login":"chcosta","id":10092143,"avatar_url":"https://avatars.githubusercontent.com/u/10092143?v=3","gravatar_id":"","url":"https://api.github.com/users/chcosta","html_url":"https://github.com/chcosta","followers_url":"https://api.github.com/users/chcosta/followers","following_url":"https://api.github.com/users/chcosta/following{/other_user}","gists_url":"https://api.github.com/users/chcosta/gists{/gist_id}","starred_url":"https://api.github.com/users/chcosta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chcosta/subscriptions","organizations_url":"https://api.github.com/users/chcosta/orgs","repos_url":"https://api.github.com/users/chcosta/repos","events_url":"https://api.github.com/users/chcosta/events{/privacy}","received_events_url":"https://api.github.com/users/chcosta/received_events","type":"User","site_admin":false},"repo":{"id":38846544,"name":"corefx","full_name":"chcosta/corefx","owner":{"login":"chcosta","id":10092143,"avatar_url":"https://avatars.githubusercontent.com/u/10092143?v=3","gravatar_id":"","url":"https://api.github.com/users/chcosta","html_url":"https://github.com/chcosta","followers_url":"https://api.github.com/users/chcosta/followers","following_url":"https://api.github.com/users/chcosta/following{/other_user}","gists_url":"https://api.github.com/users/chcosta/gists{/gist_id}","starred_url":"https://api.github.com/users/chcosta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chcosta/subscriptions","organizations_url":"https://api.github.com/users/chcosta/orgs","repos_url":"https://api.github.com/users/chcosta/repos","events_url":"https://api.github.com/users/chcosta/events{/privacy}","received_events_url":"https://api.github.com/users/chcosta/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chcosta/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":true,"url":"https://api.github.com/repos/chcosta/corefx","forks_url":"https://api.github.com/repos/chcosta/corefx/forks","keys_url":"https://api.github.com/repos/chcosta/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chcosta/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chcosta/corefx/teams","hooks_url":"https://api.github.com/repos/chcosta/corefx/hooks","issue_events_url":"https://api.github.com/repos/chcosta/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/chcosta/corefx/events","assignees_url":"https://api.github.com/repos/chcosta/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/chcosta/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/chcosta/corefx/tags","blobs_url":"https://api.github.com/repos/chcosta/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chcosta/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chcosta/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/chcosta/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chcosta/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/chcosta/corefx/languages","stargazers_url":"https://api.github.com/repos/chcosta/corefx/stargazers","contributors_url":"https://api.github.com/repos/chcosta/corefx/contributors","subscribers_url":"https://api.github.com/repos/chcosta/corefx/subscribers","subscription_url":"https://api.github.com/repos/chcosta/corefx/subscription","commits_url":"https://api.github.com/repos/chcosta/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/chcosta/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/chcosta/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/chcosta/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/chcosta/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/chcosta/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chcosta/corefx/merges","archive_url":"https://api.github.com/repos/chcosta/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chcosta/corefx/downloads","issues_url":"https://api.github.com/repos/chcosta/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/chcosta/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/chcosta/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/chcosta/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chcosta/corefx/labels{/name}","releases_url":"https://api.github.com/repos/chcosta/corefx/releases{/id}","deployments_url":"https://api.github.com/repos/chcosta/corefx/deployments","created_at":"2015-07-09T21:37:18Z","updated_at":"2016-02-17T21:55:35Z","pushed_at":"2016-08-19T22:17:55Z","git_url":"git://github.com/chcosta/corefx.git","ssh_url":"git@github.com:chcosta/corefx.git","clone_url":"https://github.com/chcosta/corefx.git","svn_url":"https://github.com/chcosta/corefx","homepage":"http://dotnet.github.io/core/","size":92574,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"eaa9608055a1ff9bce2f4b316da09efb438cdf13","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295345,"name":"corefx","full_name":"dotnet/corefx","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":false,"url":"https://api.github.com/repos/dotnet/corefx","forks_url":"https://api.github.com/repos/dotnet/corefx/forks","keys_url":"https://api.github.com/repos/dotnet/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefx/teams","hooks_url":"https://api.github.com/repos/dotnet/corefx/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefx/events","assignees_url":"https://api.github.com/repos/dotnet/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefx/tags","blobs_url":"https://api.github.com/repos/dotnet/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefx/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefx/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefx/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefx/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefx/subscription","commits_url":"https://api.github.com/repos/dotnet/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefx/merges","archive_url":"https://api.github.com/repos/dotnet/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefx/downloads","issues_url":"https://api.github.com/repos/dotnet/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefx/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefx/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/corefx/deployments","created_at":"2014-11-06T23:42:48Z","updated_at":"2016-08-22T12:29:40Z","pushed_at":"2016-08-22T14:43:46Z","git_url":"git://github.com/dotnet/corefx.git","ssh_url":"git@github.com:dotnet/corefx.git","clone_url":"https://github.com/dotnet/corefx.git","svn_url":"https://github.com/dotnet/corefx","homepage":"https://docs.microsoft.com/dotnet/","size":130029,"stargazers_count":10412,"watchers_count":10412,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2559,"mirror_url":null,"open_issues_count":1377,"forks":2559,"open_issues":1377,"watchers":10412,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/11019"},"html":{"href":"https://github.com/dotnet/corefx/pull/11019"},"issue":{"href":"https://api.github.com/repos/dotnet/corefx/issues/11019"},"comments":{"href":"https://api.github.com/repos/dotnet/corefx/issues/11019/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/11019/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/11019/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefx/statuses/afed591aa0f28931f2dc982ffd32ea9d8380a20b"}}}}
{"actor":{"display_login":"dagood"}}