{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/16994","labels_url":"https://api.github.com/repos/dart-lang/sdk/issues/16994/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/sdk/issues/16994/comments","events_url":"https://api.github.com/repos/dart-lang/sdk/issues/16994/events","html_url":"https://github.com/dart-lang/sdk/issues/16994","id":84568706,"number":16994,"title":"Provide a canonical way to find the Dart SDK root","user":{"login":"blois","id":2152569,"avatar_url":"https://avatars.githubusercontent.com/u/2152569?v=3","gravatar_id":"","url":"https://api.github.com/users/blois","html_url":"https://github.com/blois","followers_url":"https://api.github.com/users/blois/followers","following_url":"https://api.github.com/users/blois/following{/other_user}","gists_url":"https://api.github.com/users/blois/gists{/gist_id}","starred_url":"https://api.github.com/users/blois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blois/subscriptions","organizations_url":"https://api.github.com/users/blois/orgs","repos_url":"https://api.github.com/users/blois/repos","events_url":"https://api.github.com/users/blois/events{/privacy}","received_events_url":"https://api.github.com/users/blois/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/sdk/labels/Area-Pkg","name":"Area-Pkg","color":"ededed"},{"url":"https://api.github.com/repos/dart-lang/sdk/labels/Priority-High","name":"Priority-High","color":"ededed"},{"url":"https://api.github.com/repos/dart-lang/sdk/labels/Triaged","name":"Triaged","color":"ededed"},{"url":"https://api.github.com/repos/dart-lang/sdk/labels/Type-Enhancement","name":"Type-Enhancement","color":"ededed"}],"state":"closed","locked":false,"assignee":{"login":"sgjesse","id":1343914,"avatar_url":"https://avatars.githubusercontent.com/u/1343914?v=3","gravatar_id":"","url":"https://api.github.com/users/sgjesse","html_url":"https://github.com/sgjesse","followers_url":"https://api.github.com/users/sgjesse/followers","following_url":"https://api.github.com/users/sgjesse/following{/other_user}","gists_url":"https://api.github.com/users/sgjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/sgjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgjesse/subscriptions","organizations_url":"https://api.github.com/users/sgjesse/orgs","repos_url":"https://api.github.com/users/sgjesse/repos","events_url":"https://api.github.com/users/sgjesse/events{/privacy}","received_events_url":"https://api.github.com/users/sgjesse/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dart-lang/sdk/milestones/6","html_url":"https://github.com/dart-lang/sdk/milestones/1.11","labels_url":"https://api.github.com/repos/dart-lang/sdk/milestones/6/labels","id":1146959,"number":6,"title":"1.11","description":null,"creator":{"login":"DartBot","id":8958862,"avatar_url":"https://avatars.githubusercontent.com/u/8958862?v=3","gravatar_id":"","url":"https://api.github.com/users/DartBot","html_url":"https://github.com/DartBot","followers_url":"https://api.github.com/users/DartBot/followers","following_url":"https://api.github.com/users/DartBot/following{/other_user}","gists_url":"https://api.github.com/users/DartBot/gists{/gist_id}","starred_url":"https://api.github.com/users/DartBot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DartBot/subscriptions","organizations_url":"https://api.github.com/users/DartBot/orgs","repos_url":"https://api.github.com/users/DartBot/repos","events_url":"https://api.github.com/users/DartBot/events{/privacy}","received_events_url":"https://api.github.com/users/DartBot/received_events","type":"User","site_admin":false},"open_issues":29,"closed_issues":33,"state":"open","created_at":"2012-07-18T14:32:27Z","updated_at":"2015-06-16T13:06:10Z","due_on":null,"closed_at":null},"comments":18,"created_at":"2014-02-20T21:04:02Z","updated_at":"2015-06-16T13:06:10Z","closed_at":"2015-06-16T13:06:10Z","body":"In the development of pub transformers which resolve Dart source code, in order to resolve all of the code the Analyzer needs a path to the Dart SDK filter (in order to find the sources for dart: source code).\n\nUnfortunately there does not seem to be a good way to find the SDK folder for the current Dart executable. I do have a user-configurable path, but this falls down when the code is used in unit-tests, transformers and other portable locations (location of SDK can differ across machines and test configurations).\n\nAdditional consideration- it might be good to look at something like .NET's reference assemblies which has a fixed root folder containing all versions installed, providing a structured environment for side-by-side installation of runtimes."},"comment":{"url":"https://api.github.com/repos/dart-lang/sdk/issues/comments/112420150","html_url":"https://github.com/dart-lang/sdk/issues/16994#issuecomment-112420150","issue_url":"https://api.github.com/repos/dart-lang/sdk/issues/16994","id":112420150,"user":{"login":"sgjesse","id":1343914,"avatar_url":"https://avatars.githubusercontent.com/u/1343914?v=3","gravatar_id":"","url":"https://api.github.com/users/sgjesse","html_url":"https://github.com/sgjesse","followers_url":"https://api.github.com/users/sgjesse/followers","following_url":"https://api.github.com/users/sgjesse/following{/other_user}","gists_url":"https://api.github.com/users/sgjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/sgjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgjesse/subscriptions","organizations_url":"https://api.github.com/users/sgjesse/orgs","repos_url":"https://api.github.com/users/sgjesse/repos","events_url":"https://api.github.com/users/sgjesse/events{/privacy}","received_events_url":"https://api.github.com/users/sgjesse/received_events","type":"User","site_admin":false},"created_at":"2015-06-16T13:06:10Z","updated_at":"2015-06-16T13:06:10Z","body":"After a number of different changes we have decided the following:\r\n\r\n*  `Platform.executable` will not change from its original behaviour\r\n* A new getter `Platform.resolvedExecutable` is added. This returns the absolute path, without any symlinks, to the actual executable as resolved by the OS.\r\n\r\nThis landed on master, https://github.com/dart-lang/sdk/commit/c05c8c66069db91cc2fd48691dfc406c818d411d, and will go into 1.11, where is now in 1.11.0-dev.5.3, https://github.com/dart-lang/sdk/commit/c0e90cb984a423287c0cbcab5dea15c987332f07."}}