{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1147","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1147/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1147/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1147/events","html_url":"https://github.com/rust-lang/rfcs/pull/1147","id":84579950,"number":1147,"title":"How to handle deprecation in rust","user":{"login":"llogiq","id":4200835,"avatar_url":"https://avatars.githubusercontent.com/u/4200835?v=3","gravatar_id":"","url":"https://api.github.com/users/llogiq","html_url":"https://github.com/llogiq","followers_url":"https://api.github.com/users/llogiq/followers","following_url":"https://api.github.com/users/llogiq/following{/other_user}","gists_url":"https://api.github.com/users/llogiq/gists{/gist_id}","starred_url":"https://api.github.com/users/llogiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llogiq/subscriptions","organizations_url":"https://api.github.com/users/llogiq/orgs","repos_url":"https://api.github.com/users/llogiq/repos","events_url":"https://api.github.com/users/llogiq/events{/privacy}","received_events_url":"https://api.github.com/users/llogiq/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/T-libs","name":"T-libs","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-06-03T14:00:15Z","updated_at":"2015-06-04T08:28:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1147","html_url":"https://github.com/rust-lang/rfcs/pull/1147","diff_url":"https://github.com/rust-lang/rfcs/pull/1147.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/1147.patch"},"body":"This is basically a writeup of the [discussion on internals](https://internals.rust-lang.org/t/thoughts-on-aggressive-deprecation-in-libstd). I hope I have faithfully captured the spirit of our discussion.\r\n\r\n[Rendered](https://github.com/llogiq/rfcs/blob/master/text/0000-deprecation.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/108783668","html_url":"https://github.com/rust-lang/rfcs/pull/1147#issuecomment-108783668","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1147","id":108783668,"user":{"login":"llogiq","id":4200835,"avatar_url":"https://avatars.githubusercontent.com/u/4200835?v=3","gravatar_id":"","url":"https://api.github.com/users/llogiq","html_url":"https://github.com/llogiq","followers_url":"https://api.github.com/users/llogiq/followers","following_url":"https://api.github.com/users/llogiq/following{/other_user}","gists_url":"https://api.github.com/users/llogiq/gists{/gist_id}","starred_url":"https://api.github.com/users/llogiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llogiq/subscriptions","organizations_url":"https://api.github.com/users/llogiq/orgs","repos_url":"https://api.github.com/users/llogiq/repos","events_url":"https://api.github.com/users/llogiq/events{/privacy}","received_events_url":"https://api.github.com/users/llogiq/received_events","type":"User","site_admin":false},"created_at":"2015-06-04T08:28:02Z","updated_at":"2015-06-04T08:28:02Z","body":"@ahmedcharles this is already done using `#[unstable(...)]` and has little to do with deprecation. Thanks for mentioning it, though – it gave me an extension idea we could use for un-deprecating an API by allowing `since` and `removed_at` to specify a version *range* (or even multiple ranges). The warnings could then reflect this (like \"`you use the foo(..) API, which is deprecated in the rust version `1.1.0` you specified. However, the API was undeprecated in version 1.3.0.`)\r\n\r\nHowever, retroactively removing the deprecation altogether is probably the saner alternative here. It also wouldn't require new syntax. Thus, unless I get some votes in favor, I'm not gonna add it."}}