{"action":"created","issue":{"url":"https://api.github.com/repos/composer/composer/issues/4846","repository_url":"https://api.github.com/repos/composer/composer","labels_url":"https://api.github.com/repos/composer/composer/issues/4846/labels{/name}","comments_url":"https://api.github.com/repos/composer/composer/issues/4846/comments","events_url":"https://api.github.com/repos/composer/composer/issues/4846/events","html_url":"https://github.com/composer/composer/pull/4846","id":129597336,"number":4846,"title":"Rewrote SuggestsCommand","user":{"login":"curry684","id":1455673,"avatar_url":"https://avatars.githubusercontent.com/u/1455673?v=3","gravatar_id":"","url":"https://api.github.com/users/curry684","html_url":"https://github.com/curry684","followers_url":"https://api.github.com/users/curry684/followers","following_url":"https://api.github.com/users/curry684/following{/other_user}","gists_url":"https://api.github.com/users/curry684/gists{/gist_id}","starred_url":"https://api.github.com/users/curry684/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/curry684/subscriptions","organizations_url":"https://api.github.com/users/curry684/orgs","repos_url":"https://api.github.com/users/curry684/repos","events_url":"https://api.github.com/users/curry684/events{/privacy}","received_events_url":"https://api.github.com/users/curry684/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-28T22:10:07Z","updated_at":"2016-02-25T18:49:11Z","closed_at":"2016-02-25T18:48:45Z","pull_request":{"url":"https://api.github.com/repos/composer/composer/pulls/4846","html_url":"https://github.com/composer/composer/pull/4846","diff_url":"https://github.com/composer/composer/pull/4846.diff","patch_url":"https://github.com/composer/composer/pull/4846.patch"},"body":"I rewrote the `SuggestsCommand.php` as it had multiple flaws:\r\n\r\n- Default output wasn't sorted by anything visible, making it nearly unusable in projects of any size\r\n- It did not take `provide` and `replace` sections into account, so for example in a Symfony project it would keep suggesting `symfony/console` even though that's provided by `symfony/symfony` through a `replace`.\r\n- There were some potential exponential performance issues because of nested loops on the list of installed packages - new implementation should be a ton faster on large projects\r\n\r\nNew version introduces 2 new flags:\r\n\r\n      --by-package               Groups output by suggesting package\r\n      --by-suggestion            Groups output by suggested package\r\n\r\nThese show a grouped minitree of the suggested packages, grouped both ways. Default is to just dump a (now sorted) flat list of suggested packages. `-v` now implies all possible options (both reports)."},"comment":{"url":"https://api.github.com/repos/composer/composer/issues/comments/188925653","html_url":"https://github.com/composer/composer/pull/4846#issuecomment-188925653","issue_url":"https://api.github.com/repos/composer/composer/issues/4846","id":188925653,"user":{"login":"Seldaek","id":183678,"avatar_url":"https://avatars.githubusercontent.com/u/183678?v=3","gravatar_id":"","url":"https://api.github.com/users/Seldaek","html_url":"https://github.com/Seldaek","followers_url":"https://api.github.com/users/Seldaek/followers","following_url":"https://api.github.com/users/Seldaek/following{/other_user}","gists_url":"https://api.github.com/users/Seldaek/gists{/gist_id}","starred_url":"https://api.github.com/users/Seldaek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Seldaek/subscriptions","organizations_url":"https://api.github.com/users/Seldaek/orgs","repos_url":"https://api.github.com/users/Seldaek/repos","events_url":"https://api.github.com/users/Seldaek/events{/privacy}","received_events_url":"https://api.github.com/users/Seldaek/received_events","type":"User","site_admin":false},"created_at":"2016-02-25T18:49:11Z","updated_at":"2016-02-25T18:49:11Z","body":"Thanks, I just made -v enable only --by-package because the double listing is a bit over the top IMO, but overall it looks a lot better :)"}}