{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/12647","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/12647/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/12647/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/12647/events","html_url":"https://github.com/JuliaLang/julia/issues/12647","id":101274762,"number":12647,"title":"Some sort of policy to regarding unexported functions in Base?","user":{"login":"IainNZ","id":692635,"avatar_url":"https://avatars.githubusercontent.com/u/692635?v=3","gravatar_id":"","url":"https://api.github.com/users/IainNZ","html_url":"https://github.com/IainNZ","followers_url":"https://api.github.com/users/IainNZ/followers","following_url":"https://api.github.com/users/IainNZ/following{/other_user}","gists_url":"https://api.github.com/users/IainNZ/gists{/gist_id}","starred_url":"https://api.github.com/users/IainNZ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IainNZ/subscriptions","organizations_url":"https://api.github.com/users/IainNZ/orgs","repos_url":"https://api.github.com/users/IainNZ/repos","events_url":"https://api.github.com/users/IainNZ/events{/privacy}","received_events_url":"https://api.github.com/users/IainNZ/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JuliaLang/julia/labels/julep","name":"julep","color":"F4F0CB"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":23,"created_at":"2015-08-16T15:30:52Z","updated_at":"2015-08-17T03:37:21Z","closed_at":null,"body":"There have been a couple of times during 0.4 development where unexported functions have been removed or changed. Every time its come up we seem to go in circles a bit about what to do about it. Given the resources available, I feel we should just keep it simple: \r\n> No support or deprecation warnings, just change/remove them. Only exported functions get deprecation warnings or mitigation regarding changing arguments.\r\n\r\nBut we need consensus around this to make it stick."},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/131671060","html_url":"https://github.com/JuliaLang/julia/issues/12647#issuecomment-131671060","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/12647","id":131671060,"user":{"login":"ScottPJones","id":11798751,"avatar_url":"https://avatars.githubusercontent.com/u/11798751?v=3","gravatar_id":"","url":"https://api.github.com/users/ScottPJones","html_url":"https://github.com/ScottPJones","followers_url":"https://api.github.com/users/ScottPJones/followers","following_url":"https://api.github.com/users/ScottPJones/following{/other_user}","gists_url":"https://api.github.com/users/ScottPJones/gists{/gist_id}","starred_url":"https://api.github.com/users/ScottPJones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ScottPJones/subscriptions","organizations_url":"https://api.github.com/users/ScottPJones/orgs","repos_url":"https://api.github.com/users/ScottPJones/repos","events_url":"https://api.github.com/users/ScottPJones/events{/privacy}","received_events_url":"https://api.github.com/users/ScottPJones/received_events","type":"User","site_admin":false},"created_at":"2015-08-17T03:37:21Z","updated_at":"2015-08-17T03:37:21Z","body":">I think the issue here may be that we need separate mechanisms for expressing that something is public and expressing that it should be exported (in the current sense).\r\n\r\nThis is really not essential different from what I've been suggesting, except that it is opt-in rather than opt-out (of being a public, not exported function/method/type).\r\nDoing it opt-in, as @StefanKarpinski suggested, is probably better, since it seems that it is less common in Julia to have things public but not exported, and have things not exported with the expectation that they are \"private\" in some sense.\r\n\r\n@hayd It would be a good idea of having help display that, yes, esp. if there is a way of marking something as part of the public API, but not exported.\r\nNo, you wouldn't want to try to compare internal method changes, the real problem right now is that you can't distinguish between what is really internal and what really *is* part of the public API."}}