Repository navigation
Detect CocoaPods and Carthage dependency files - #41
Merged
Merged
Conversation
Podfile and Podfile.lock are tagged dependencies and CocoaPods. Cartfile, Cartfile.private and Cartfile.resolved are tagged dependencies and Carthage. An iOS or macOS project using either tool previously looked like it declared no dependencies. Podfile now reports as Ruby, which is how CocoaPods loads it. The three Carthage files report as a new Cartfile filetype; the two with an extension are mapped by basename so that .private and .resolved are not claimed in general. Neither tool's files carry a language tag, since both serve Swift and Objective-C alike. The changes notes record the sources each convention was verified against, and the docs site counts are updated to 123 tags and 88 filetypes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #42 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #42.
Summary
PodfileandPodfile.lockare taggeddependenciesandCocoaPods.Cartfile,Cartfile.privateandCartfile.resolvedare taggeddependenciesandCarthage.Podfilereports asRubyand the three Carthage files as a newCartfilefiletype, instead ofUnknown.An iOS or macOS project using either tool previously looked like it declared no dependencies. This completes the Apple-platform dependency managers begun with Swift Package Manager in #38.
Before and after
Sources
PodfilePodfile.lockrecords installed versions and is kept in version controlPodfileis loaded as Rubypodfile.rbin CocoaPods/CoreCartfile,Cartfile.private,Cartfile.resolvedand the OGDL-subset syntaxDesign notes
buildtag. These files declare and pin dependencies, likepackage.jsonanduv.lock.PodfileisRuby. The CocoaPods guides do not name the language, but the loader evaluates an extensionlessPodfileas Ruby. Same basis as the existingSteepfilemapping. A Podfile now counts towards a repository's Ruby total.Cartfileis a new filetype. Carthage documents its syntax as a restricted subset of OGDL. The docs do not name a syntax forCartfile.resolved; it takes the filetype of the file it is generated from.Cartfile.privateandCartfile.resolvedare mapped by basename, so.privateand.resolvedare not claimed in general. Tests guard this.Things to note
CocoaPodsandCarthageare new tags andCartfilea new filetype. All additive, so kospex is unaffected until a re-sync.SwiftPMname comes from.Not included
*.podspecfiles, and thePods/andCarthage/directories.CocoaPods.podfile,CocoaPods.podfile.yaml,Podfile.rb), which the source accepts but the guides do not document.Testing
pytest: 742 passed. The new tests were written first and failed before the change; guards cover look-alike filenames.src/tests/for all five files;panopticas assessshows each with the expected filetype and tags.🤖 Generated with Claude Code