Skip to content
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

Dependency automation for supported module types #2034

Closed
3 of 4 tasks
calvincestari opened this issue Nov 17, 2021 · 3 comments · Fixed by #2120
Closed
3 of 4 tasks

Dependency automation for supported module types #2034

calvincestari opened this issue Nov 17, 2021 · 3 comments · Fixed by #2120
Assignees
Labels
codegen Issues related to or arising from code generation

Comments

@calvincestari
Copy link
Member

calvincestari commented Nov 17, 2021

This task is one of the final steps in code generation; to take the generated schema files and package them together in the required dependency manager format.

  • Swift Package Manager
  • None (previously "Manually Linked")
  • Other (previously "Carthage" and "CocoaPods")
  • Swift Package Manager (snippet - TBD)
@calvincestari calvincestari added the codegen Issues related to or arising from code generation label Nov 17, 2021
@calvincestari calvincestari added this to the Release 1.0 milestone Nov 17, 2021
@hwillson hwillson added 2022-01 and removed 2021-12 labels Jan 7, 2022
@calvincestari calvincestari moved this to Todo in apollo-ios Jan 8, 2022
@calvincestari calvincestari changed the title Create a package builder Dependency automation for supported module types Jan 28, 2022
@calvincestari calvincestari linked a pull request Jan 28, 2022 that will close this issue
@calvincestari calvincestari moved this from Todo to In Progress in apollo-ios Jan 28, 2022
@calvincestari
Copy link
Member Author

I'm marking this issue as "Todo" again as SPM support is all we're going to do for the first alpha release. Supporting the other dependency managers will come afterwards.

@calvincestari
Copy link
Member Author

A bit more detail on how we're changing support for dependency managers and the generated schema module.

Initially we decided to support named implementations for Swift Package Manager, CocoaPods and Carthage. SPM is easy enough since the Package.swift file is fairly concise and we can generate all required metadata with what we know about the schema module.

CocoaPods makes this more complicated with the podspec format which would require us to gather a lot more detail from the user for the metadata. Carthage takes this a step further and requires an Xcode project file. 😢

Instead of growing the already large codegen configuration struct we've opted to support 'other' dependency managers by requiring the user to create the infrastructure needed, such as the podspec for CocoaPods or the Xcode project for Carthage. Combine that with the generated schema module files output to a location of the user's choosing and we can support a much wider range of dependency managers than we can write specific implementations for.

@calvincestari
Copy link
Member Author

I'm closing this issue as done and tracking the last item (Swift Package Manager - snippet) in #2236, if we want to slot it into any of the 1.0 milestones.

Repository owner moved this from In Progress to Done in apollo-ios Apr 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
codegen Issues related to or arising from code generation
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants