CocoaPods / CocoaPods/cocoadocs-api
Improve determination whether a pod supports Swift Package Manager (SPM)
- Dominant language
- Ruby
- Stars
- 15
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
I originally submitted this issue against https://github.com/CocoaPods/cocoapods.org, but I realize this is probably the more appropriate repo. I'll close it over there. Sorry for any confusion.
When preparing my new pod for submission to the master spec repo, I wanted to support the SPM if possible. My pod is for iOS and uses UIKit. Last I had checked, the SPM did not support packages for anything but host platforms. (i.e., macOS and Linux) ([SO post](http://stackoverflow.com/questions/34778823/swift-package-manager-uikit-dependency#34779231))
To my surprise, I found [T-Pham/UILocalNotification-RemotePayload](https://github.com/T-Pham/UILocalNotification-RemotePayload), which, according to its [quality page](https://cocoapods.org/pods/UILocalNotification-RemotePayload/quality), supports the SPM.
Given that UILocalNotification-RemotePayload relies upon UIKit, I was super-excited that the SPM might now support iOS packages. I spent the next hour confirming (repeatedly) that it still does not.
What does this mean?
Well, my conclusion is that the author of UILocalNotification-RemotePayload dropped a "Package.swift" file into his repo so that he could get an extra 10 "quality points."
While I won't comment on his gaming the system, I will point out that this kind of activity undermines the effectiveness of the Cocoapods quality metrics.
In addition -- and more important, in my mind -- this kind of thing leads to confusion for people discovering the repo. As was the case when I discovered this repo with its Package.swift, it can easily lead to someone thinking the SPM now supports iOS. That can, in turn, trigger a wild goose chase trying to determine why your own package doesn't seem to work with the SPM.
I propose we improve the quality metrics code to withhold the 10 points granted for supporting the SPM for projects that cannot possibly support it. As of today (2017-02-10), this means any projects that target iOS, watchOS, and tvOS. I think it may also mean any Cocoa apps, too, but I haven't tried that.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the quality metrics code that awards SPM points and compare its behavior with the Package.swift and iOS, watchOS, and tvOS cases described here. Determine how unsupported platforms should be detected and verify the resulting quality-page score for an affected pod; the issue provides no file or test path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby, swift
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100