-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: added cocoapods lockfile to the list of supported lockfiles #330
Conversation
Backwards compatibility summary:
|
| SwiftPM <json name="swiftpm"> | ||
| Cocoapods <json name="cocoapods"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your understanding is that SwiftPM and Cocoapods are entirely separate package namespaces, right? I did a bit of searching just now and that seems to be the case, but it also seems like they might both use git URLs as the primary identifier. I just want to ensure that this isn't an npm/yarn or pip/poetry situation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK npm/yarn and pip/poetry are cases in which two package managers use the same central repository. So, for example, a package with the same name/version in pip is guaranteed to be the exact same as the package with the same name/version in poetry.
While Cocoapods and SwiftPM have some coincidental overlap (e.g. they're used for iOS/macOS/tvOS development, their packages can live in github), but they are completely separate ecosystems with different registries. Cocoapods has a centralized repo at cocoapods.org and supports both obj-c and swift packages, while SwiftPM seems to be distributed with packages hosted anywhere and supports swift-only. There's no guarantee that a package in one will exist in the other, and it's entirely possible for two packages to exist in the PMs with the same name/version but be completely different.
Added necessary interface changes to support 1) a new ecosystem, cocoapods, 2) new lockfile + manifest types for cocoapods, and 3) a new parser type for (you guessed it) cocoapods.
make setup && make
to update the generated code after editing a.atd
file (TODO: have a CI check)For example, the Semgrep backend need to still be able to consume data
generated by Semgrep 1.50.0.
See https://atd.readthedocs.io/en/latest/atdgen-tutorial.html#smooth-protocol-upgrades
Note that the types related to the semgrep-core JSON output or the
semgrep-core RPC do not need to be backward compatible!