From e97565e6ea0a33a407d19fe6e967e9717c9cef55 Mon Sep 17 00:00:00 2001 From: gh-action-runner Date: Fri, 13 Dec 2024 00:03:56 +0000 Subject: [PATCH] Squashed 'apollo-ios/' changes from f0b2a850..fa98d2c8 fa98d2c8 Update ROADMAP.md git-subtree-dir: apollo-ios git-subtree-split: fa98d2c8f3371a19eb06b1a54085df356909ac92 --- ROADMAP.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 778efb2c6..ad94dc4e1 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # 🔮 Apollo iOS Roadmap -**Last updated: 2024-11-26** +**Last updated: 2024-12-10** For up to date release notes, refer to the project's [Changelog](https://github.com/apollographql/apollo-ios/blob/main/CHANGELOG.md). @@ -31,6 +31,13 @@ The `@defer` directive enables your queries to receive data for specific fields * ✅ Local cache mutations * 🔲 Selection Set Initializers (_next_) +### Declarative caching + +_Status: [PR #554](https://github.com/apollographql/apollo-ios-dev/pull/554) in review_ + +- Similar to Apollo Kotlin [declarative caching](https://www.apollographql.com/docs/kotlin/caching/declarative-ids) via the `@typePolicy` directive +- Provide ability to configure cache keys using directives on schema types as an alternative to programmatic cache key configuration + ### [Improvements to code generation configuration and performance](https://github.com/apollographql/apollo-ios/milestone/67) _Status: To be released incrementally_ @@ -51,38 +58,33 @@ _Status: In design phase. Current RFC for design is available [here](https://git ### `@oneOf` Input Object Support -_Status: Awaiting final approval of RFC into the GraphQL specification._ +_Status: Code complete. Will be included in the next minor version release (1.16.0)._ For more information on this feature, see the [RFC](https://github.com/graphql/graphql-spec/pull/825) for its addition to the GraphQL specification. +Support for this feature is considered experimental and subject to change until the RFC is approved and merged into the GraphQL specification. + ### [Reduce generated schema types](https://github.com/apollographql/apollo-ios/milestone/71) -_Status: Not started_ +_Status: API Design in progress_ - Right now we are naively generating schema types that we don't always need. A smarter algorithm can reduce generated code for certain large schemas that are currently having every type in their schema generated - Create configuration for manually indicating schema types you would like to have schema types and TestMocks generated for -### [Mutable generated reponse models](https://github.com/apollographql/apollo-ios/issues/3246) - -_Status: Not started_ - -- Provide a mechanism for making generated reponse models mutable. -- This will allow mutability on an opt-in basis per selection set or definition. - ### [Support codegen of operations without response models](https://github.com/apollographql/apollo-ios/issues/3165) -_Status: Not started_ +_Status: API Design in progress_ - Support generating models that expose only the minimal necessary data for operation execution (networking and caching). - This would remove the generated response models, exposing response data as a simple `JSONObject` (ie. [String: AnyHashable]). - This feature is useful for projects that want to use their own custom data models or have binary size constraints. -### Declarative caching +### [Mutable generated reponse models](https://github.com/apollographql/apollo-ios/issues/3246) _Status: Not started_ -- Similar to Apollo Kotlin [declarative caching](https://www.apollographql.com/docs/kotlin/caching/declarative-ids) via the `@typePolicy` directive -- Provide ability to configure cache keys using directives on schema types as an alternative to programmatic cache key configuration +- Provide a mechanism for making generated reponse models mutable. +- This will allow mutability on an opt-in basis per selection set or definition. ### Semantic Nullability