{"action":"created","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/166","repository_url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/166/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/166/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/166/events","html_url":"https://github.com/spring-cloud/spring-cloud-sleuth/issues/166","id":133852168,"number":166,"title":"Formalize internal or experimental code","user":{"login":"adriancole","id":64215,"avatar_url":"https://avatars.githubusercontent.com/u/64215?v=3","gravatar_id":"","url":"https://api.github.com/users/adriancole","html_url":"https://github.com/adriancole","followers_url":"https://api.github.com/users/adriancole/followers","following_url":"https://api.github.com/users/adriancole/following{/other_user}","gists_url":"https://api.github.com/users/adriancole/gists{/gist_id}","starred_url":"https://api.github.com/users/adriancole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adriancole/subscriptions","organizations_url":"https://api.github.com/users/adriancole/orgs","repos_url":"https://api.github.com/users/adriancole/repos","events_url":"https://api.github.com/users/adriancole/events{/privacy}","received_events_url":"https://api.github.com/users/adriancole/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-16T00:49:29Z","updated_at":"2016-02-16T22:39:44Z","closed_at":null,"body":"If experimental or otherwise internal code was noted as such, review could be easier as it would be obvious that this isn't public api changing.\r\n\r\nThis is particularly important with \"Spike PRs\" which routinely raise underdocumented and experimental code.\r\n\r\nThe issue comes in two major areas.\r\n\r\nFirst there's chicken-egg problem. For example \"Spike PRs\" usually has code inside which folks aren't sure about. Ex. others might want to play with it before committing to an idea. We don't have experimental builds, so placing the code in master helps alleviate the chicken-egg problem.\r\n\r\nSecondly, there's an implicit public api problem. Right now, it isn't clear which types are internal or not based on package structure or anything else. There's a running assumption that certain existing types are the api. This makes review a bit burdensome as it isn't always obvious if \"spike types\" are experimental or intentionally affecting public api, or intentionally not yet affecting public api.\r\n\r\nProjects like guava solve this with a `@Beta` annotation, but that indicates it is part of an emerging public api.. ex users should proceed with caution. Many projects have an internal package, which indicate code that isn't intended for public consumption (at least yet)\r\n\r\nI'd really love for us to have a means for people like me to be able to review new change without having to wonder why \"junk types\" are added, or if lack of documentation is ok (bc it is internal)\r\n\r\nThoughts?"},"comment":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/comments/184904061","html_url":"https://github.com/spring-cloud/spring-cloud-sleuth/issues/166#issuecomment-184904061","issue_url":"https://api.github.com/repos/spring-cloud/spring-cloud-sleuth/issues/166","id":184904061,"user":{"login":"marcingrzejszczak","id":3297437,"avatar_url":"https://avatars.githubusercontent.com/u/3297437?v=3","gravatar_id":"","url":"https://api.github.com/users/marcingrzejszczak","html_url":"https://github.com/marcingrzejszczak","followers_url":"https://api.github.com/users/marcingrzejszczak/followers","following_url":"https://api.github.com/users/marcingrzejszczak/following{/other_user}","gists_url":"https://api.github.com/users/marcingrzejszczak/gists{/gist_id}","starred_url":"https://api.github.com/users/marcingrzejszczak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcingrzejszczak/subscriptions","organizations_url":"https://api.github.com/users/marcingrzejszczak/orgs","repos_url":"https://api.github.com/users/marcingrzejszczak/repos","events_url":"https://api.github.com/users/marcingrzejszczak/events{/privacy}","received_events_url":"https://api.github.com/users/marcingrzejszczak/received_events","type":"User","site_admin":false},"created_at":"2016-02-16T22:39:44Z","updated_at":"2016-02-16T22:39:44Z","body":"So do we close it?"}}