From 30a506be78bf93ca6e8fade3b871a24c3ee5d85f Mon Sep 17 00:00:00 2001 From: "John P. Vajda" Date: Tue, 26 Apr 2022 16:47:15 -0600 Subject: [PATCH 1/3] chore: updates roadmap --- ROADMAP.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 7ffad01f68..b15577b245 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,14 +1,23 @@ -# Apollo iOS Roadmap - _Last Updated April 2022_ +# 🔮 Apollo iOS Roadmap -_If this document has not been updated within the past three months, please [file an issue](https://github.com/apollographql/apollo-ios/issues/new/choose) asking the [maintainers](https://github.com/apollographql/apollo-ios#maintainers) to update it._ +**Last updated: April 2022** -Releases adhere to the [Semantic Versioning Specification](https://semver.org/). Under this scheme, version numbers and the way they change convey meaning about the underlying code and what has been modified from one version to the next. +For up to date release notes, refer to the project's [Change Log](CHANGELOG.mdCHANGELOG.md). +> **Please note:** This is an approximation of **larger effort** work planned for the next 6 - 12 months. It does not cover all new functionality that will be added, and nothing here is set in stone. Also note that each of these releases, and several patch releases in-between, will include bug fixes (based on issue triaging) and community submitted PR's. + +## ✋ Community feedback & prioritization + +- Please report feature requests or bugs as a new [issue](https://github.com/apollographql/apollo-ios/issues/new/choose). +- If you already see an issue that interests you please add a 👍 or a comment so we can measure community interest. + +--- ## 0.x - _Current_ This version is being used in many Production codebases, and we're committed to resolving issues and bugs raised by the community. We are not considering any further substantial work to be done in this version. These are the three guiding principles we aim for in each major release: + - **Stability**: Achieve a stable foundation that can be trusted for years to come, maintaining backwards compatibility within major version releases. - **Completeness**: There are three main parts to the SDK: code generation, network fetching/parsing, and caching. These must provide enough functionality to be a good foundation for incremental improvements within major releases without requiring breaking changes. - **Clarity**: Everything must be clearly documented with as many working samples as possible. @@ -18,12 +27,14 @@ These are the three guiding principles we aim for in each major release: [Alpha 4 is available](https://github.com/apollographql/apollo-ios/releases/tag/1.0.0-alpha.4), please try it and give us your feedback. These are the major initiatives planned for 1.0/1.x: + - **Swift-based Codegen**: The code generation is being rewritten with a Swift-first approach instead of relying on scripting and Typescript. This will allow easier community contribution to code generation and provide the opportunity to improve various characteristics such as generated code size and performance. - **Modularized GraphQL Code Generation Output**: To support advanced usage of Apollo iOS for modular code bases in a format this is highly configurable and agnostic of the dependency management and build system used. This should be achieved while maintaining the streamlined process for the default usage in unified code bases. ## 2.0 These are the major initiatives planned for 2.0/2.x: + - **Networking Stack Improvements**: The goal is to simplify and stabilise the networking stack. - The [updated network stack](https://github.com/apollographql/apollo-ios/issues/1340) solved a number of long standing issues with the old barebones NetworkTransport but still has limitations and is complicated to use. Adopting patterns that have proven useful for the web client, such as Apollo Link, will provide more flexibility and give developers full control over the steps that are invoked to satisfy requests. - We would love to bring some of the new Swift concurrency features, such as async/await, to Apollo iOS but that depends on the Swift team's work for backwards deployment of the concurrency library. It may involve Apollo iOS dropping support for macOS 10.14 and iOS 12. @@ -31,10 +42,11 @@ These are the major initiatives planned for 2.0/2.x: ## 3.0 These are the major initiatives planned for 3.0/3.x: -- **Cache Improvements**: Here we are looking at bringing across some features inspired by Apollo Client 3 and Apollo Android - - Better pagination support. Better support for caching and updating paginated lists of objects. + +- **Cache Improvements**: Here we are looking at bringing across some features inspired by Apollo Client 3 and Apollo Android + - Better pagination support. Better support for caching and updating paginated lists of objects. - Reducing over-normalization. Only separating out results into individual records when something that can identify them is present - - Real cache eviction & dangling reference collection. There's presently a way to manually remove objects for a given key or pattern, but Apollo Client 3 has given us a roadmap for how to handle some of this stuff much more thoroughly and safely. + - Real cache eviction & dangling reference collection. There's presently a way to manually remove objects for a given key or pattern, but Apollo Client 3 has given us a roadmap for how to handle some of this stuff much more thoroughly and safely. - Cache metadata. Ability to add per-field metadata if needed, to allow for TTL and time-based invalidation, etc. ## Future From 76a937e469874efddb635db257358c4fc938ef0e Mon Sep 17 00:00:00 2001 From: JV Date: Wed, 27 Apr 2022 12:49:48 -0600 Subject: [PATCH 2/3] Update ROADMAP.md Co-authored-by: Calvin Cestari --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index b15577b245..79f8036c8f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -43,7 +43,7 @@ These are the major initiatives planned for 2.0/2.x: These are the major initiatives planned for 3.0/3.x: -- **Cache Improvements**: Here we are looking at bringing across some features inspired by Apollo Client 3 and Apollo Android +- **Cache Improvements**: Here we are looking at bringing across some features inspired by Apollo Client 3 and Apollo Kotlin - Better pagination support. Better support for caching and updating paginated lists of objects. - Reducing over-normalization. Only separating out results into individual records when something that can identify them is present - Real cache eviction & dangling reference collection. There's presently a way to manually remove objects for a given key or pattern, but Apollo Client 3 has given us a roadmap for how to handle some of this stuff much more thoroughly and safely. From e693a84a9482ba5f1c364d8daa06d2e7d0453103 Mon Sep 17 00:00:00 2001 From: JV Date: Wed, 27 Apr 2022 12:49:53 -0600 Subject: [PATCH 3/3] Update ROADMAP.md Co-authored-by: Calvin Cestari --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index 79f8036c8f..edaa55cad1 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -2,7 +2,7 @@ **Last updated: April 2022** -For up to date release notes, refer to the project's [Change Log](CHANGELOG.mdCHANGELOG.md). +For up to date release notes, refer to the project's [Change Log](https://github.com/apollographql/apollo-ios/blob/main/CHANGELOG.md). > **Please note:** This is an approximation of **larger effort** work planned for the next 6 - 12 months. It does not cover all new functionality that will be added, and nothing here is set in stone. Also note that each of these releases, and several patch releases in-between, will include bug fixes (based on issue triaging) and community submitted PR's.