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

Announcement: New Swift code generation library and new repo structure #3240

Closed
BobaFetters opened this issue Sep 27, 2023 · 4 comments
Closed

Comments

@BobaFetters
Copy link
Member

The Apollo iOS ecosystem is changing in the 1.6.0 release in order to provide a better development experience for users. For most users the changes won't change anything, while some users will see a minor difference.

To give an overview of the changes, the Apollo iOS repository has been split into mutliple separate Git repositories:

So what does this mean for you?

apollo-ios

The apollo-ios repo is still the main Apollo iOS SDK used in client applications, so if you are using Apollo iOS along with the codegen cli tool the only difference you will see starting with the 1.6.0 release (date TBD but in the near future) is that there are significantly less files/code being pulled into your project by SPM (or Cocoapods). This provides a more streamlined and focused Apollo iOS package. All issue reporting and feature requests will still be handled through the `apollo-ios`` repo in order to keep things centralized. For CocoaPods users, the ApolloTestSupport package now has it’s own pod separate from the main Apollo pod.

apollo-ios-codegen

The apollo-ios-codegen repo now contains all code generation related libraries. So if you are scripting your code generation in Swift, you will now need to include the apollo-ios-codegen SPM package starting with version 1.6.0 in order for your code generation to continue to function.

The error message you will see will be for your Package.swift file:
product 'ApolloCodegenLib' required by package <package> target <target> not found in package 'apollo-ios'.

apollo-ios-dev

The apollo-ios-dev repo is where all development work, including community contributions, will take place. This repo contains all helper libraries/apis as well as tests for the Apollo iOS ecosystem, it also includes the apollo-ios and apollo-ios-codegen repos as git subtrees for development. If you plan to contribute to Apollo iOS this is the repository you will use for that, an updated contributing guide can be found here: CONTRIBUTING

apollo-ios-xc-framework

The apollo-ios-xcframework repo provides an Xcode project and schemes that can be used to generate xcframework versions of the Apollo iOS libraries since the main apollo-ios repo no longer contains an Xcode project and is purely an SPM package.

Releases

Release versions of apollo-ios, apollo-ios-codegen, and apollo-ios-xcframework will be synced, for example a 1.6.3 release of apollo-ios would have a matching '1.6.3' version of apollo-ios-codegen and apollo-ios-xcframework.

@smyrick
Copy link
Member

smyrick commented Sep 28, 2023

I am glad we disabled the ability to create issues in the other repos to keep things centralized. Can we add a callout in each of the separate READMEs on where I can create issues though if I land there from search or links in the future

@BobaFetters
Copy link
Member Author

Version 1.6 containing these changes is now released.

@BobaFetters
Copy link
Member Author

We are currently investigating an issue with the new ApolloTestSupport pod failing to publish. If you are using CocoaPods and need ApolloTestSupport this will prevent you from moving to 1.6.0 until we resolve this issue.

@BobaFetters
Copy link
Member Author

The ApolloTestSupport pod has been published and is ready for use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants