{"action":"created","comment":{"url":"https://api.github.com/repos/symfony/symfony/pulls/comments/24892044","id":24892044,"diff_hunk":"@@ -0,0 +1,62 @@\n+PHPUnit Bridge\n+==============\n+\n+Provides utilities for PHPUnit, especially user deprecation notices management.\n+\n+It comesa with the following features:","path":"src/Symfony/Bridge/PhpUnit/README.md","position":null,"original_position":6,"commit_id":"1940dc9bc36d04d0eb4339033ab9db447afcba1f","original_commit_id":"6b95d8537a2c5f2547d990bd8fc3ff7b00487639","user":{"login":"nicolas-grekas","id":243674,"avatar_url":"https://avatars.githubusercontent.com/u/243674?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"body":"fixed","created_at":"2015-02-18T10:34:14Z","updated_at":"2015-02-18T10:34:14Z","html_url":"https://github.com/symfony/symfony/pull/13398#discussion_r24892044","pull_request_url":"https://api.github.com/repos/symfony/symfony/pulls/13398","_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments/24892044"},"html":{"href":"https://github.com/symfony/symfony/pull/13398#discussion_r24892044"},"pull_request":{"href":"https://api.github.com/repos/symfony/symfony/pulls/13398"}}},"pull_request":{"url":"https://api.github.com/repos/symfony/symfony/pulls/13398","id":27274792,"html_url":"https://github.com/symfony/symfony/pull/13398","diff_url":"https://github.com/symfony/symfony/pull/13398.diff","patch_url":"https://github.com/symfony/symfony/pull/13398.patch","issue_url":"https://api.github.com/repos/symfony/symfony/issues/13398","number":13398,"state":"open","locked":false,"title":"[PhpUnit] new PhpUnit bridge","user":{"login":"nicolas-grekas","id":243674,"avatar_url":"https://avatars.githubusercontent.com/u/243674?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"body":"| Q             | A\r\n| ------------- | ---\r\n| Bug fix?      | no\r\n| New feature?  | yes\r\n| BC breaks?    | no\r\n| Deprecations? | no\r\n| Tests pass?   | yes\r\n| Fixed tickets | #13644\r\n| License       | MIT\r\n| Doc PR        | -\r\n\r\nFrom the proposed README:\r\n\r\nPHPUnit Bridge\r\n==============\r\n\r\nProvides utilities for PHPUnit, especially user deprecation notices management.\r\n\r\nIt comesa with the following features:\r\n\r\n * disable the garbage collector;\r\n * auto-register `class_exists` to load Doctrine annotations;\r\n * print a user deprecation notices summary at the end of the test suite.\r\n\r\nHandling user deprecation notices is sensitive to the SYMFONY_DEPRECATIONS_HELPER\r\nenvironment variable. This env var configures 3 behaviors depending on its value:\r\n\r\n * when set to `strict`, all but legacy-tagged deprecation notices will make tests\r\n   fail. This is the recommended mode for best forward compatibility.\r\n * `weak` on the contrary will make tests ignore all deprecation notices.\r\n   This is the recommended mode for legacy projects that must use deprecated\r\n   interfaces for backward compatibility reasons.\r\n * any other value will respect the current error reporting level.\r\n\r\nAll three modes will display a summary of deprecation notices at the end of the\r\ntest suite, split in two groups:\r\n\r\n * **Legacy** deprecation notices denote tests that explicitly test some legacy\r\n   interfaces. In all 3 modes, deprecation notices triggered in a legacy-tagged\r\n   test do never make a test fail. There are four ways to mark a test as legacy:\r\n    - make its class start with the `Legacy` prefix;\r\n    - make its method start with `testLegacy`;\r\n    - make its data provider start with `provideLegacy` or `getLegacy`;\r\n    - add the `@group legacy` annotation to its class or method.\r\n * **Remaining/Other** deprecation notices are all other (non-legacy)\r\n   notices, grouped by message, test class and method.\r\n\r\nUsage\r\n-----\r\n\r\nAdd this bridge to the `require-dev` section of your composer.json file\r\n(not in `require`) with e.g.\r\n`composer require --dev \"symfony/phpunit-bridge\"`.\r\n\r\nWhen running `phpunit`, you will see a summary of deprecation notices at the end\r\nof the test suite.\r\n\r\nDeprecation notices in the **Remaining/Other** section need some thought.\r\nYou have to decide either to:\r\n\r\n * update your code to not use deprecated interfaces anymore, thus gaining better\r\n   forward compatibility;\r\n * or move them to the **Legacy** section (by using one of the above way).\r\n\r\nAfter reviewing them, you should silence deprecations in the **Legacy** section\r\nif you think they are triggered by tests dedicated to testing deprecated\r\ninterfaces. To do so, add the following line at the beginning of your legacy\r\nmethod or in the `setUp()` method of your legacy test class:\r\n`$this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);`\r\n\r\nLast but not least, you should then configure your C.I. to the reporting mode\r\nthat is appropriated to your project by setting SYMFONY_DEPRECATIONS_HELPER to\r\n`strict`, `weak` or empty. It is recommended to start with `weak` mode, upgrade\r\nyour code as described above, then when the *Remaining/Other* sections are empty,\r\nmove to `strict` to keep forward compatibility on the long run.\r\n","created_at":"2015-01-13T14:33:39Z","updated_at":"2015-02-18T10:34:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b0f2ab6079585fc46eca5d00af496ebd3e321165","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/symfony/symfony/pulls/13398/commits","review_comments_url":"https://api.github.com/repos/symfony/symfony/pulls/13398/comments","review_comment_url":"https://api.github.com/repos/symfony/symfony/pulls/comments/{number}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/13398/comments","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/1940dc9bc36d04d0eb4339033ab9db447afcba1f","head":{"label":"nicolas-grekas:testing-component","ref":"testing-component","sha":"1940dc9bc36d04d0eb4339033ab9db447afcba1f","user":{"login":"nicolas-grekas","id":243674,"avatar_url":"https://avatars.githubusercontent.com/u/243674?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"repo":{"id":15110606,"name":"symfony","full_name":"nicolas-grekas/symfony","owner":{"login":"nicolas-grekas","id":243674,"avatar_url":"https://avatars.githubusercontent.com/u/243674?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nicolas-grekas/symfony","description":"The Symfony PHP framework","fork":true,"url":"https://api.github.com/repos/nicolas-grekas/symfony","forks_url":"https://api.github.com/repos/nicolas-grekas/symfony/forks","keys_url":"https://api.github.com/repos/nicolas-grekas/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicolas-grekas/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicolas-grekas/symfony/teams","hooks_url":"https://api.github.com/repos/nicolas-grekas/symfony/hooks","issue_events_url":"https://api.github.com/repos/nicolas-grekas/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/nicolas-grekas/symfony/events","assignees_url":"https://api.github.com/repos/nicolas-grekas/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/nicolas-grekas/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/nicolas-grekas/symfony/tags","blobs_url":"https://api.github.com/repos/nicolas-grekas/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicolas-grekas/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicolas-grekas/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicolas-grekas/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicolas-grekas/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/nicolas-grekas/symfony/languages","stargazers_url":"https://api.github.com/repos/nicolas-grekas/symfony/stargazers","contributors_url":"https://api.github.com/repos/nicolas-grekas/symfony/contributors","subscribers_url":"https://api.github.com/repos/nicolas-grekas/symfony/subscribers","subscription_url":"https://api.github.com/repos/nicolas-grekas/symfony/subscription","commits_url":"https://api.github.com/repos/nicolas-grekas/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicolas-grekas/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicolas-grekas/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicolas-grekas/symfony/issues/comments/{number}","contents_url":"https://api.github.com/repos/nicolas-grekas/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/nicolas-grekas/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicolas-grekas/symfony/merges","archive_url":"https://api.github.com/repos/nicolas-grekas/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicolas-grekas/symfony/downloads","issues_url":"https://api.github.com/repos/nicolas-grekas/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/nicolas-grekas/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/nicolas-grekas/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/nicolas-grekas/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicolas-grekas/symfony/labels{/name}","releases_url":"https://api.github.com/repos/nicolas-grekas/symfony/releases{/id}","created_at":"2013-12-11T15:13:36Z","updated_at":"2015-02-12T08:54:39Z","pushed_at":"2015-02-18T10:33:39Z","git_url":"git://github.com/nicolas-grekas/symfony.git","ssh_url":"git@github.com:nicolas-grekas/symfony.git","clone_url":"https://github.com/nicolas-grekas/symfony.git","svn_url":"https://github.com/nicolas-grekas/symfony","homepage":"symfony.com","size":54292,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":false,"has_wiki":false,"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":"symfony:2.7","ref":"2.7","sha":"a630d87d5765f63571c7948bab253e18d1a9a194","user":{"login":"symfony","id":143937,"avatar_url":"https://avatars.githubusercontent.com/u/143937?v=3","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"repo":{"id":458058,"name":"symfony","full_name":"symfony/symfony","owner":{"login":"symfony","id":143937,"avatar_url":"https://avatars.githubusercontent.com/u/143937?v=3","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/symfony/symfony","description":"The Symfony PHP framework","fork":false,"url":"https://api.github.com/repos/symfony/symfony","forks_url":"https://api.github.com/repos/symfony/symfony/forks","keys_url":"https://api.github.com/repos/symfony/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/symfony/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/symfony/symfony/teams","hooks_url":"https://api.github.com/repos/symfony/symfony/hooks","issue_events_url":"https://api.github.com/repos/symfony/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/symfony/symfony/events","assignees_url":"https://api.github.com/repos/symfony/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/symfony/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/symfony/symfony/tags","blobs_url":"https://api.github.com/repos/symfony/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/symfony/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/symfony/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/symfony/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/symfony/symfony/languages","stargazers_url":"https://api.github.com/repos/symfony/symfony/stargazers","contributors_url":"https://api.github.com/repos/symfony/symfony/contributors","subscribers_url":"https://api.github.com/repos/symfony/symfony/subscribers","subscription_url":"https://api.github.com/repos/symfony/symfony/subscription","commits_url":"https://api.github.com/repos/symfony/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/symfony/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/symfony/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/symfony/symfony/issues/comments/{number}","contents_url":"https://api.github.com/repos/symfony/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/symfony/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/symfony/symfony/merges","archive_url":"https://api.github.com/repos/symfony/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/symfony/symfony/downloads","issues_url":"https://api.github.com/repos/symfony/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/symfony/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/symfony/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/symfony/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/symfony/symfony/labels{/name}","releases_url":"https://api.github.com/repos/symfony/symfony/releases{/id}","created_at":"2010-01-04T14:21:21Z","updated_at":"2015-02-18T06:49:10Z","pushed_at":"2015-02-18T10:14:10Z","git_url":"git://github.com/symfony/symfony.git","ssh_url":"git@github.com:symfony/symfony.git","clone_url":"https://github.com/symfony/symfony.git","svn_url":"https://github.com/symfony/symfony","homepage":"symfony.com","size":192673,"stargazers_count":9707,"watchers_count":9707,"language":"PHP","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":3790,"mirror_url":null,"open_issues_count":722,"forks":3790,"open_issues":722,"watchers":9707,"default_branch":"2.7"}},"_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/13398"},"html":{"href":"https://github.com/symfony/symfony/pull/13398"},"issue":{"href":"https://api.github.com/repos/symfony/symfony/issues/13398"},"comments":{"href":"https://api.github.com/repos/symfony/symfony/issues/13398/comments"},"review_comments":{"href":"https://api.github.com/repos/symfony/symfony/pulls/13398/comments"},"review_comment":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/symfony/symfony/pulls/13398/commits"},"statuses":{"href":"https://api.github.com/repos/symfony/symfony/statuses/1940dc9bc36d04d0eb4339033ab9db447afcba1f"}}}}