{"action":"closed","number":24222,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/24222","id":32931574,"html_url":"https://github.com/rust-lang/rust/pull/24222","diff_url":"https://github.com/rust-lang/rust/pull/24222.diff","patch_url":"https://github.com/rust-lang/rust/pull/24222.patch","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/24222","number":24222,"state":"closed","locked":false,"title":"Rename std::fs::soft_link to std::fs::symlink","user":{"login":"lambda","id":37398,"avatar_url":"https://avatars.githubusercontent.com/u/37398?v=3","gravatar_id":"","url":"https://api.github.com/users/lambda","html_url":"https://github.com/lambda","followers_url":"https://api.github.com/users/lambda/followers","following_url":"https://api.github.com/users/lambda/following{/other_user}","gists_url":"https://api.github.com/users/lambda/gists{/gist_id}","starred_url":"https://api.github.com/users/lambda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lambda/subscriptions","organizations_url":"https://api.github.com/users/lambda/orgs","repos_url":"https://api.github.com/users/lambda/repos","events_url":"https://api.github.com/users/lambda/events{/privacy}","received_events_url":"https://api.github.com/users/lambda/received_events","type":"User","site_admin":false},"body":"Implement [RFC #1048][rfc].\r\n\r\nOn Windows, when you create a symbolic link you must specify whether it\r\npoints to a directory or a file, even if it is created dangling, while\r\non Unix, the same symbolic link could point to a directory, a file, or\r\nnothing at all.  Furthermore, on Windows special privilege is necessary\r\nto use a symbolic link, while on Unix, you can generally create a\r\nsymbolic link in any directory you have write privileges to.\r\n\r\nThis means that it is unlikely to be able to use symbolic links purely\r\nportably; anyone who uses them will need to think about the cross\r\nplatform implications.  This means that using platform-specific APIs\r\nwill make it easier to see where code will need to differ between the\r\nplatforms, rather than trying to provide some kind of compatibility\r\nwrapper.\r\n\r\nFurthermore, `soft_link` has no precedence in any other API, so to avoid\r\nconfusion, move back to the more standard `symlink` terminology.\r\n\r\nCreate a `std::os::unix::symlink` for the Unix version that is\r\ndestination type agnostic, as well as `std::os::windows::{symlink_file,\r\nsymlink_dir}` for Windows.\r\n\r\nBecause this is a stable API, leave a compatibility wrapper in\r\n`std::fs::soft_link`, which calls `symlink` on Unix and `symlink_file`\r\non Windows, preserving the existing behavior of `soft_link`.\r\n\r\n[rfc]: https://github.com/rust-lang/rfcs/pull/1048","created_at":"2015-04-09T07:36:14Z","updated_at":"2015-04-22T06:37:42Z","closed_at":"2015-04-22T06:37:42Z","merged_at":"2015-04-22T06:37:42Z","merge_commit_sha":"1177cc39cc7d9c0639ef962a590a3c268f2ef835","assignee":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang/rust/pulls/24222/commits","review_comments_url":"https://api.github.com/repos/rust-lang/rust/pulls/24222/comments","review_comment_url":"https://api.github.com/repos/rust-lang/rust/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/24222/comments","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/3cc84efcdd5727c0749d766d8abd79d8077f9cec","head":{"label":"lambda:rename-soft-link-to-symlink","ref":"rename-soft-link-to-symlink","sha":"3cc84efcdd5727c0749d766d8abd79d8077f9cec","user":{"login":"lambda","id":37398,"avatar_url":"https://avatars.githubusercontent.com/u/37398?v=3","gravatar_id":"","url":"https://api.github.com/users/lambda","html_url":"https://github.com/lambda","followers_url":"https://api.github.com/users/lambda/followers","following_url":"https://api.github.com/users/lambda/following{/other_user}","gists_url":"https://api.github.com/users/lambda/gists{/gist_id}","starred_url":"https://api.github.com/users/lambda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lambda/subscriptions","organizations_url":"https://api.github.com/users/lambda/orgs","repos_url":"https://api.github.com/users/lambda/repos","events_url":"https://api.github.com/users/lambda/events{/privacy}","received_events_url":"https://api.github.com/users/lambda/received_events","type":"User","site_admin":false},"repo":{"id":24796648,"name":"rust","full_name":"lambda/rust","owner":{"login":"lambda","id":37398,"avatar_url":"https://avatars.githubusercontent.com/u/37398?v=3","gravatar_id":"","url":"https://api.github.com/users/lambda","html_url":"https://github.com/lambda","followers_url":"https://api.github.com/users/lambda/followers","following_url":"https://api.github.com/users/lambda/following{/other_user}","gists_url":"https://api.github.com/users/lambda/gists{/gist_id}","starred_url":"https://api.github.com/users/lambda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lambda/subscriptions","organizations_url":"https://api.github.com/users/lambda/orgs","repos_url":"https://api.github.com/users/lambda/repos","events_url":"https://api.github.com/users/lambda/events{/privacy}","received_events_url":"https://api.github.com/users/lambda/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lambda/rust","description":"a safe, concurrent, practical language","fork":true,"url":"https://api.github.com/repos/lambda/rust","forks_url":"https://api.github.com/repos/lambda/rust/forks","keys_url":"https://api.github.com/repos/lambda/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lambda/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lambda/rust/teams","hooks_url":"https://api.github.com/repos/lambda/rust/hooks","issue_events_url":"https://api.github.com/repos/lambda/rust/issues/events{/number}","events_url":"https://api.github.com/repos/lambda/rust/events","assignees_url":"https://api.github.com/repos/lambda/rust/assignees{/user}","branches_url":"https://api.github.com/repos/lambda/rust/branches{/branch}","tags_url":"https://api.github.com/repos/lambda/rust/tags","blobs_url":"https://api.github.com/repos/lambda/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lambda/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lambda/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/lambda/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lambda/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/lambda/rust/languages","stargazers_url":"https://api.github.com/repos/lambda/rust/stargazers","contributors_url":"https://api.github.com/repos/lambda/rust/contributors","subscribers_url":"https://api.github.com/repos/lambda/rust/subscribers","subscription_url":"https://api.github.com/repos/lambda/rust/subscription","commits_url":"https://api.github.com/repos/lambda/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/lambda/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/lambda/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/lambda/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/lambda/rust/contents/{+path}","compare_url":"https://api.github.com/repos/lambda/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lambda/rust/merges","archive_url":"https://api.github.com/repos/lambda/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lambda/rust/downloads","issues_url":"https://api.github.com/repos/lambda/rust/issues{/number}","pulls_url":"https://api.github.com/repos/lambda/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/lambda/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/lambda/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lambda/rust/labels{/name}","releases_url":"https://api.github.com/repos/lambda/rust/releases{/id}","created_at":"2014-10-04T17:44:00Z","updated_at":"2014-10-04T17:41:20Z","pushed_at":"2015-04-21T16:14:37Z","git_url":"git://github.com/lambda/rust.git","ssh_url":"git@github.com:lambda/rust.git","clone_url":"https://github.com/lambda/rust.git","svn_url":"https://github.com/lambda/rust","homepage":"http://www.rust-lang.org","size":272061,"stargazers_count":0,"watchers_count":0,"language":null,"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":"rust-lang:master","ref":"master","sha":"77acda1c8ee75f9eb923ddd811ee591951b2d43f","user":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":724712,"name":"rust","full_name":"rust-lang/rust","owner":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rust-lang/rust","description":"a safe, concurrent, practical language","fork":false,"url":"https://api.github.com/repos/rust-lang/rust","forks_url":"https://api.github.com/repos/rust-lang/rust/forks","keys_url":"https://api.github.com/repos/rust-lang/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rust-lang/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rust-lang/rust/teams","hooks_url":"https://api.github.com/repos/rust-lang/rust/hooks","issue_events_url":"https://api.github.com/repos/rust-lang/rust/issues/events{/number}","events_url":"https://api.github.com/repos/rust-lang/rust/events","assignees_url":"https://api.github.com/repos/rust-lang/rust/assignees{/user}","branches_url":"https://api.github.com/repos/rust-lang/rust/branches{/branch}","tags_url":"https://api.github.com/repos/rust-lang/rust/tags","blobs_url":"https://api.github.com/repos/rust-lang/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rust-lang/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rust-lang/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/rust-lang/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/rust-lang/rust/languages","stargazers_url":"https://api.github.com/repos/rust-lang/rust/stargazers","contributors_url":"https://api.github.com/repos/rust-lang/rust/contributors","subscribers_url":"https://api.github.com/repos/rust-lang/rust/subscribers","subscription_url":"https://api.github.com/repos/rust-lang/rust/subscription","commits_url":"https://api.github.com/repos/rust-lang/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/rust-lang/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/rust-lang/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/rust-lang/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/rust-lang/rust/contents/{+path}","compare_url":"https://api.github.com/repos/rust-lang/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rust-lang/rust/merges","archive_url":"https://api.github.com/repos/rust-lang/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rust-lang/rust/downloads","issues_url":"https://api.github.com/repos/rust-lang/rust/issues{/number}","pulls_url":"https://api.github.com/repos/rust-lang/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/rust-lang/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/rust-lang/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rust-lang/rust/labels{/name}","releases_url":"https://api.github.com/repos/rust-lang/rust/releases{/id}","created_at":"2010-06-16T20:39:03Z","updated_at":"2015-04-22T05:56:05Z","pushed_at":"2015-04-22T06:37:41Z","git_url":"git://github.com/rust-lang/rust.git","ssh_url":"git@github.com:rust-lang/rust.git","clone_url":"https://github.com/rust-lang/rust.git","svn_url":"https://github.com/rust-lang/rust","homepage":"http://www.rust-lang.org","size":564021,"stargazers_count":10409,"watchers_count":10409,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2010,"mirror_url":null,"open_issues_count":1966,"forks":2010,"open_issues":1966,"watchers":10409,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/24222"},"html":{"href":"https://github.com/rust-lang/rust/pull/24222"},"issue":{"href":"https://api.github.com/repos/rust-lang/rust/issues/24222"},"comments":{"href":"https://api.github.com/repos/rust-lang/rust/issues/24222/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/24222/comments"},"review_comment":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/24222/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/rust/statuses/3cc84efcdd5727c0749d766d8abd79d8077f9cec"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"bors","id":3372342,"avatar_url":"https://avatars.githubusercontent.com/u/3372342?v=3","gravatar_id":"","url":"https://api.github.com/users/bors","html_url":"https://github.com/bors","followers_url":"https://api.github.com/users/bors/followers","following_url":"https://api.github.com/users/bors/following{/other_user}","gists_url":"https://api.github.com/users/bors/gists{/gist_id}","starred_url":"https://api.github.com/users/bors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bors/subscriptions","organizations_url":"https://api.github.com/users/bors/orgs","repos_url":"https://api.github.com/users/bors/repos","events_url":"https://api.github.com/users/bors/events{/privacy}","received_events_url":"https://api.github.com/users/bors/received_events","type":"User","site_admin":false},"comments":21,"review_comments":13,"commits":1,"additions":104,"deletions":8,"changed_files":5}}