{"action":"created","issue":{"url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/4060","labels_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/4060/labels{/name}","comments_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/4060/comments","events_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/4060/events","html_url":"https://github.com/CocoaPods/CocoaPods/issues/4060","id":102554262,"number":4060,"title":"Podspec options that would streamline the use of private specs.","user":{"login":"jaredsinclair","id":720600,"avatar_url":"https://avatars.githubusercontent.com/u/720600?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredsinclair","html_url":"https://github.com/jaredsinclair","followers_url":"https://api.github.com/users/jaredsinclair/followers","following_url":"https://api.github.com/users/jaredsinclair/following{/other_user}","gists_url":"https://api.github.com/users/jaredsinclair/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredsinclair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredsinclair/subscriptions","organizations_url":"https://api.github.com/users/jaredsinclair/orgs","repos_url":"https://api.github.com/users/jaredsinclair/repos","events_url":"https://api.github.com/users/jaredsinclair/events{/privacy}","received_events_url":"https://api.github.com/users/jaredsinclair/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-08-22T17:44:11Z","updated_at":"2015-08-22T18:53:41Z","closed_at":null,"body":"Podspec linting for private specs really falls short of the ideal, streamlined experience. There are several areas for improvement:\r\n\r\n### Suggested Changes for Private Podspecs\r\n\r\n#### 1) Don't Require Irrelevant Metadata.\r\n\r\nPrivate specs should not be obligated to provide an open-source license. They should not have to provide both descriptions *and* summaries (and ideally neither one should be required). Similarly, a homepage should not be required. These fields should only be required for public specs, as they exist solely to aid in discovery by the general public.\r\n\r\n#### 2) Remove the HTTPS Requirement for Source URLs.\r\n\r\nPrivate specs should be allowed to use SSH source URLs. As the linting warning reminds us, the enforcement of HTTPS is a matter of hospitality to the general public who might be behind firewalls that disallow SSH. It doesn't make sense to apply this requirement to private specs. The HTTPS requirement is especially irritating for anyone who has TFA enabled on their GitHub account. To skirt the SSH warnings all linting of private specs using SSH source URLs, you have to include the `--allow-warnings` flag. I should be able to leave all unrelated warnings untouched. Ignoring *every* warning as a means of ignoring a single warning is suboptimal.\r\n\r\n#### 3) Provide Explicit Metadata Options to Indicate that a Podspec is Private\r\n\r\nI’d like to be able to workaround issue #1 and #2 (and any other issues that I've neglected to mention) by an option like:\r\n\r\n```\r\ns.private = true\r\n```\r\n\r\nWhen `private` is present and equals `true`, this would indicate to the spec linter to skip linting steps that are only appropriate for public specs.\r\n\r\n#### 4) Disallow Pushing a Private Spec to the Public Trunk\r\n\r\nIt is extremely easy to accidentally publish a private spec to the public trunk, and difficult to fix the mistake after it occurs. Any Podpec with `s.private = true` should not be allowed to be pushed to the public trunk.\r\n\r\n#### 5) Allow Podspec to Indicate a Private Specs Repo in Which to Search For a Dependency\r\n\r\nIn some cases a private specs repo contains a spec with the same name as a spec in the public trunk. If a Podfile has a `pod` dependency that seems to appear in multiple repositories, running `pod install` will result in error logs about the duplicate specs. The Podfile of the host app bears the responsibility for making sure that custom specs repos are listed in the correct search order.\r\n\r\nIt would be preferable for a Podspec to be able to declare that a dependency can *only* be searched for within a given private spec repo url, e.g:\r\n\r\n```\r\ns.dependency 'AFOAuth2Manager', 'repo: git@github.com:/jaredsinclair/private-specs.git`\r\n```\r\n\r\nThis would address cases where a public repo has to be forked into a private spec to fix incompatibilities with other third-party dependencies (long story)."},"comment":{"url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/comments/133739894","html_url":"https://github.com/CocoaPods/CocoaPods/issues/4060#issuecomment-133739894","issue_url":"https://api.github.com/repos/CocoaPods/CocoaPods/issues/4060","id":133739894,"user":{"login":"orta","id":49038,"avatar_url":"https://avatars.githubusercontent.com/u/49038?v=3","gravatar_id":"","url":"https://api.github.com/users/orta","html_url":"https://github.com/orta","followers_url":"https://api.github.com/users/orta/followers","following_url":"https://api.github.com/users/orta/following{/other_user}","gists_url":"https://api.github.com/users/orta/gists{/gist_id}","starred_url":"https://api.github.com/users/orta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orta/subscriptions","organizations_url":"https://api.github.com/users/orta/orgs","repos_url":"https://api.github.com/users/orta/repos","events_url":"https://api.github.com/users/orta/events{/privacy}","received_events_url":"https://api.github.com/users/orta/received_events","type":"User","site_admin":false},"created_at":"2015-08-22T18:53:41Z","updated_at":"2015-08-22T18:53:41Z","body":"4, should be done too already, so long as the (HTTP/git) source is private trunk will deny the pod."}}