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

Release 1.17.0 #593

Merged
merged 3 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Foundation

public enum Constants {
public static let CodegenVersion: String = "1.16.1"
public static let CodegenVersion: String = "1.17.0"
}
2 changes: 1 addition & 1 deletion apollo-ios-codegen/Sources/CodegenCLI/Constants.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation

public enum Constants {
public static let CLIVersion: String = "1.16.1"
public static let CLIVersion: String = "1.17.0"
static let defaultFilePath: String = "./apollo-codegen-config.json"
}
15 changes: 15 additions & 0 deletions apollo-ios/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
# Change Log

## v1.17.0

### New
- **Add suffix to schema type filenames ([#2598](https://github.com/apollographql/apollo-ios/issues/2598)):** When fragments were named the same as schema types code generation would produce two files with the same name, but at different paths, for each respective type. This would cause a build error in Xcode. There is a new codegen configuration option (`appendSchemaTypeFilenameSuffix`) to add a suffix to schema generated filenames and prevent the build error. See PR [#580](https://github.com/apollographql/apollo-ios-dev/pull/580).
- **Specify caching fields with `typePolicy` directive ([#554](https://github.com/apollographql/apollo-ios-dev/pull/554)):** The `@typePolicy` directive lets you specify an object's cache ID using key fields of the response object. See the [documentation](https://www.apollographql.com/docs/ios/caching/cache-key-resolution#the-typepolicy-directive) for full details. _Thank you to [@x-sheep](https://github.com/x-sheep) for the contribution._
- **Emit `Identifiable` conformance on `SelectionSet` ([#584](https://github.com/apollographql/apollo-ios-dev/pull/584)):** If the `@typePolicy` of a type uses a `keyField` of `id` the selection set will emit conformance to Swifts [`Identifiable` protocol](https://developer.apple.com/documentation/swift/identifiable). _Thank you to [@x-sheep](https://github.com/x-sheep) for the contribution._

### Improvement
- **Improved performance of code generation on operations with many nested fragments ([#3434](https://github.com/apollographql/apollo-ios/issues/3434)):** When fragment field merging is disabled the fragment selection trees are no longer merged into the `EntitySelectionSet` while building operations. See PR [#571](https://github.com/apollographql/apollo-ios-dev/pull/571).

### Fixed
- **Defer metadata extension ([#3505](https://github.com/apollographql/apollo-ios/issues/3503)):** Metadata extensions for deferred selection sets were incorrectly generated inside the namespace extension for `embeddedInTarget` and `other` module types. See PR [#581](https://github.com/apollographql/apollo-ios-dev/pull/581).
- **`DataDict` initialization of `deferredFragments` for named fragments ([#587](https://github.com/apollographql/apollo-ios-dev/pull/587)):** When deferred fragments are named fragments the deferred type should be the fragment generated definition name.

## v1.16.1

### Fixed
- **Web socket data race crash fixed ([#578](https://github.com/apollographql/apollo-ios-dev/pull/578)):** A data race in the web socket layer was causing crashes in some rare circumstances.

Expand Down
Binary file modified apollo-ios/CLI/apollo-ios-cli.tar.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion apollo-ios/Sources/Apollo/Constants.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Foundation

public enum Constants {
public static let ApolloVersion: String = "1.16.1"
public static let ApolloVersion: String = "1.17.0"
}
Original file line number Diff line number Diff line change
Expand Up @@ -703,11 +703,11 @@
"type" : "codeVoice"
},
{
"text" : " is ",
"text" : " conforms to ",
"type" : "text"
},
{
"code" : "String",
"code" : "Hashable",
"type" : "codeVoice"
},
{
Expand All @@ -719,11 +719,11 @@
"type" : "codeVoice"
},
{
"text" : " is ",
"text" : " conforms to ",
"type" : "text"
},
{
"code" : "AnyHashable",
"code" : "Hashable",
"type" : "codeVoice"
},
{
Expand Down Expand Up @@ -801,14 +801,6 @@
"text" : " conforms to ",
"type" : "text"
},
{
"code" : "AnyScalarType",
"type" : "codeVoice"
},
{
"text" : " and ",
"type" : "text"
},
{
"code" : "Hashable",
"type" : "codeVoice"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,13 @@
"topicSections" : [
{
"identifiers" : [
"doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:)"
"doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:keyFields:)"
],
"title" : "Initializers"
},
{
"identifiers" : [
"doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/keyFields",
"doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/name"
],
"title" : "Instance Properties"
Expand Down Expand Up @@ -402,7 +403,7 @@
"type" : "topic",
"url" : "\/documentation\/apolloapi\/interface\/parenttype-implementations"
},
"doc://ApolloAPI/documentation/ApolloAPI/Interface/init(name:)": {
"doc://ApolloAPI/documentation/ApolloAPI/Interface/init(name:keyFields:)": {
"abstract" : [
{
"text" : "Designated Initializer",
Expand Down Expand Up @@ -433,15 +434,73 @@
},
{
"kind" : "text",
"text" : ")"
"text" : ", "
},
{
"kind" : "externalParam",
"text" : "keyFields"
},
{
"kind" : "text",
"text" : ": ["
},
{
"kind" : "typeIdentifier",
"preciseIdentifier" : "s:SS",
"text" : "String"
},
{
"kind" : "text",
"text" : "]?)"
}
],
"identifier" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:keyFields:)",
"kind" : "symbol",
"role" : "symbol",
"title" : "init(name:keyFields:)",
"type" : "topic",
"url" : "\/documentation\/apolloapi\/interface\/init(name:keyfields:)"
},
"doc://ApolloAPI/documentation/ApolloAPI/Interface/keyFields": {
"abstract" : [
{
"text" : "A list of fields used to uniquely identify an instance of an object implementing this interface.",
"type" : "text"
}
],
"fragments" : [
{
"kind" : "keyword",
"text" : "let"
},
{
"kind" : "text",
"text" : " "
},
{
"kind" : "identifier",
"text" : "keyFields"
},
{
"kind" : "text",
"text" : ": ["
},
{
"kind" : "typeIdentifier",
"preciseIdentifier" : "s:SS",
"text" : "String"
},
{
"kind" : "text",
"text" : "]?"
}
],
"identifier" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:)",
"identifier" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/keyFields",
"kind" : "symbol",
"role" : "symbol",
"title" : "init(name:)",
"title" : "keyFields",
"type" : "topic",
"url" : "\/documentation\/apolloapi\/interface\/init(name:)"
"url" : "\/documentation\/apolloapi\/interface\/keyfields"
},
"doc://ApolloAPI/documentation/ApolloAPI/Interface/name": {
"abstract" : [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
},
"identifier" : {
"interfaceLanguage" : "swift",
"url" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:)"
"url" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:keyFields:)"
},
"kind" : "symbol",
"metadata" : {
"externalID" : "s:9ApolloAPI9InterfaceV4nameACSS_tcfc",
"externalID" : "s:9ApolloAPI9InterfaceV4name9keyFieldsACSS_SaySSGSgtcfc",
"fragments" : [
{
"kind" : "identifier",
Expand All @@ -44,7 +44,24 @@
},
{
"kind" : "text",
"text" : ")"
"text" : ", "
},
{
"kind" : "externalParam",
"text" : "keyFields"
},
{
"kind" : "text",
"text" : ": ["
},
{
"kind" : "typeIdentifier",
"preciseIdentifier" : "s:SS",
"text" : "String"
},
{
"kind" : "text",
"text" : "]?)"
}
],
"modules" : [
Expand All @@ -55,7 +72,7 @@
"role" : "symbol",
"roleHeading" : "Initializer",
"symbolKind" : "init",
"title" : "init(name:)"
"title" : "init(name:keyFields:)"
},
"primaryContentSections" : [
{
Expand Down Expand Up @@ -91,7 +108,24 @@
},
{
"kind" : "text",
"text" : ")"
"text" : ", "
},
{
"kind" : "externalParam",
"text" : "keyFields"
},
{
"kind" : "text",
"text" : ": ["
},
{
"kind" : "typeIdentifier",
"preciseIdentifier" : "s:SS",
"text" : "String"
},
{
"kind" : "text",
"text" : "]? = nil)"
}
]
}
Expand Down Expand Up @@ -138,7 +172,7 @@
"variants" : [
{
"paths" : [
"\/documentation\/apolloapi\/interface\/init(name:)"
"\/documentation\/apolloapi\/interface\/init(name:keyfields:)"
],
"traits" : [
{
Expand Down Expand Up @@ -243,7 +277,7 @@
"type" : "topic",
"url" : "\/documentation\/apolloapi\/interface"
},
"doc://ApolloAPI/documentation/ApolloAPI/Interface/init(name:)": {
"doc://ApolloAPI/documentation/ApolloAPI/Interface/init(name:keyFields:)": {
"abstract" : [
{
"text" : "Designated Initializer",
Expand Down Expand Up @@ -274,15 +308,32 @@
},
{
"kind" : "text",
"text" : ")"
"text" : ", "
},
{
"kind" : "externalParam",
"text" : "keyFields"
},
{
"kind" : "text",
"text" : ": ["
},
{
"kind" : "typeIdentifier",
"preciseIdentifier" : "s:SS",
"text" : "String"
},
{
"kind" : "text",
"text" : "]?)"
}
],
"identifier" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:)",
"identifier" : "doc:\/\/ApolloAPI\/documentation\/ApolloAPI\/Interface\/init(name:keyFields:)",
"kind" : "symbol",
"role" : "symbol",
"title" : "init(name:)",
"title" : "init(name:keyFields:)",
"type" : "topic",
"url" : "\/documentation\/apolloapi\/interface\/init(name:)"
"url" : "\/documentation\/apolloapi\/interface\/init(name:keyfields:)"
}
}
}
Loading
Loading