{"action":"created","issue":{"url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/7610","repository_url":"https://api.github.com/repos/CocoaPods/CocoaPods","labels_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/7610/labels{/name}","comments_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/7610/comments","events_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/7610/events","html_url":"https://github.com/CocoaPods/CocoaPods/pull/7610","id":312748999,"number":7610,"title":"[WIP] Remove all PBX state from targets, improve project generation performance","user":{"login":"dnkoutso","id":310370,"avatar_url":"https://avatars2.githubusercontent.com/u/310370?v=4","gravatar_id":"","url":"https://api.github.com/users/dnkoutso","html_url":"https://github.com/dnkoutso","followers_url":"https://api.github.com/users/dnkoutso/followers","following_url":"https://api.github.com/users/dnkoutso/following{/other_user}","gists_url":"https://api.github.com/users/dnkoutso/gists{/gist_id}","starred_url":"https://api.github.com/users/dnkoutso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnkoutso/subscriptions","organizations_url":"https://api.github.com/users/dnkoutso/orgs","repos_url":"https://api.github.com/users/dnkoutso/repos","events_url":"https://api.github.com/users/dnkoutso/events{/privacy}","received_events_url":"https://api.github.com/users/dnkoutso/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-10T02:14:21Z","updated_at":"2018-04-10T02:16:05Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/CocoaPods/CocoaPods/pulls/7610","html_url":"https://github.com/CocoaPods/CocoaPods/pull/7610","diff_url":"https://github.com/CocoaPods/CocoaPods/pull/7610.diff","patch_url":"https://github.com/CocoaPods/CocoaPods/pull/7610.patch"},"body":"`pod_target` and `target` generally hold on to too much state. These core models of the library try to represent a little bit of everything.\r\n\r\nThis PR removes all `PBX*` related properties from these classes and moves them all into a `TargetInstallationResult` container that basically contains all native targets that were created from an installation of a target.\r\n\r\nPart of this PR also includes re-writing the `set_target_dependencies` method in `pods_project_generator` as it has become very hard to understand and also very inefficient as the same targets are being processed over and over again.\r\n\r\nI have re-written all tests in `pods_project_generator` and have fixed various edge cases in the process.\r\n\r\nFinally, within this PR, pod targets that have no sources (`should_build?` returns `false`) now instread get a placeholder `PBXAggregateTarget` that helps us wire dependencies better and avoids adding them into the aggregate targets set of dependencies.\r\n\r\nSupersedes #https://github.com/CocoaPods/CocoaPods/pull/7603\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/comments/379951862","html_url":"https://github.com/CocoaPods/CocoaPods/pull/7610#issuecomment-379951862","issue_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/7610","id":379951862,"user":{"login":"CocoaPodsBarista","id":18517156,"avatar_url":"https://avatars3.githubusercontent.com/u/18517156?v=4","gravatar_id":"","url":"https://api.github.com/users/CocoaPodsBarista","html_url":"https://github.com/CocoaPodsBarista","followers_url":"https://api.github.com/users/CocoaPodsBarista/followers","following_url":"https://api.github.com/users/CocoaPodsBarista/following{/other_user}","gists_url":"https://api.github.com/users/CocoaPodsBarista/gists{/gist_id}","starred_url":"https://api.github.com/users/CocoaPodsBarista/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CocoaPodsBarista/subscriptions","organizations_url":"https://api.github.com/users/CocoaPodsBarista/orgs","repos_url":"https://api.github.com/users/CocoaPodsBarista/repos","events_url":"https://api.github.com/users/CocoaPodsBarista/events{/privacy}","received_events_url":"https://api.github.com/users/CocoaPodsBarista/received_events","type":"User","site_admin":false},"created_at":"2018-04-10T02:16:05Z","updated_at":"2018-04-10T02:16:05Z","author_association":"NONE","body":"<!--\n  0 Errors\n  1 Warning: Please include a CHANGELOG ent...\n  0 Messages\n  1 Markdown\n-->\n<table>\n  <thead>\n    <tr>\n      <th width=\"50\"></th>\n      <th width=\"100%\" data-danger-table=\"true\" data-kind=\"Warning\">\n          1 Warning\n      </th>\n     </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>:warning:</td>\n      <td data-sticky=\"false\">Please include a CHANGELOG entry to credit yourself! <br />\nYou can find it at <a href=\"https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md\">CHANGELOG.md</a>.</td>\n    </tr>\n  </tbody>\n</table>\n\nHere's an example of your CHANGELOG entry:\n\n```markdown\n* [WIP] Remove all PBX state from targets, improve project generation performance  \n  [dnkoutso](https://github.com/dnkoutso)\n  [#issue_number](https://github.com/CocoaPods/CocoaPods/issues/issue_number)\n```\n\n*note*: There are two invisible spaces after the entry's text.\n\n\n<p align=\"right\" data-meta=\"generated_by_danger\">\n  Generated by :no_entry_sign: <a href=\"http://danger.systems/\">Danger</a>\n</p>\n"}}
{"actor":{"display_login":"CocoaPodsBarista"}}