{"action":"created","issue":{"url":"https://api.github.com/repos/symfony/symfony/issues/15977","labels_url":"https://api.github.com/repos/symfony/symfony/issues/15977/labels{/name}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/15977/comments","events_url":"https://api.github.com/repos/symfony/symfony/issues/15977/events","html_url":"https://github.com/symfony/symfony/issues/15977","id":108686444,"number":15977,"title":"[RFC] Remove the distinction between api and non-api classes","user":{"login":"stof","id":439401,"avatar_url":"https://avatars.githubusercontent.com/u/439401?v=3","gravatar_id":"","url":"https://api.github.com/users/stof","html_url":"https://github.com/stof","followers_url":"https://api.github.com/users/stof/followers","following_url":"https://api.github.com/users/stof/following{/other_user}","gists_url":"https://api.github.com/users/stof/gists{/gist_id}","starred_url":"https://api.github.com/users/stof/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stof/subscriptions","organizations_url":"https://api.github.com/users/stof/orgs","repos_url":"https://api.github.com/users/stof/repos","events_url":"https://api.github.com/users/stof/events{/privacy}","received_events_url":"https://api.github.com/users/stof/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-28T15:42:48Z","updated_at":"2015-09-28T16:30:35Z","closed_at":null,"body":"We introduced ``@api`` in the early days of Symfony to distinguish the public API, safe to be used thanks to BC, and less safe APIs.\r\nHowever, none of the APIs introduced after Symfony 2.3 has been tagged as ``@api`` AFAIK. And on the other hand, we became much better at writing BC layers to maintain compatibility until the next major version.\r\nOur BC policy is also lying about its goal: what it describes in the ``Regular`` column is a policy which does not provide BC (only partial BC). And in practice, we are much stricter in our code than what is described in this document (i.e. we provide BC for all classes, not only ``@api`` classes), defeating the ``@api`` distinction.\r\n\r\nIMO, the real distinction we should have is between normal APIs (where BC is provided) and internal APIs (tagged as ``@internal``), which should not be used by people using Symfony (if they call an internal method themselves, they are on their own regarding upgrades).\r\nNote that we already have the concept of internal APIs in Symfony (for instance callback functions needing to be public for PHP 5.3 compat, and turned into private ones in 3.0).\r\n\r\nWhat do you think @symfony/deciders ?"},"comment":{"url":"https://api.github.com/repos/symfony/symfony/issues/comments/143797554","html_url":"https://github.com/symfony/symfony/issues/15977#issuecomment-143797554","issue_url":"https://api.github.com/repos/symfony/symfony/issues/15977","id":143797554,"user":{"login":"Tobion","id":610090,"avatar_url":"https://avatars.githubusercontent.com/u/610090?v=3","gravatar_id":"","url":"https://api.github.com/users/Tobion","html_url":"https://github.com/Tobion","followers_url":"https://api.github.com/users/Tobion/followers","following_url":"https://api.github.com/users/Tobion/following{/other_user}","gists_url":"https://api.github.com/users/Tobion/gists{/gist_id}","starred_url":"https://api.github.com/users/Tobion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tobion/subscriptions","organizations_url":"https://api.github.com/users/Tobion/orgs","repos_url":"https://api.github.com/users/Tobion/repos","events_url":"https://api.github.com/users/Tobion/events{/privacy}","received_events_url":"https://api.github.com/users/Tobion/received_events","type":"User","site_admin":false},"created_at":"2015-09-28T16:30:34Z","updated_at":"2015-09-28T16:30:34Z","body":"Is it enough to remove the tags in 2.8? Or also since 2.3?"}}