Skip to content

Commit 0c14f33

Browse files
authored
Update ROADMAP to make it about the Apollo Kotlin galaxy (#6586)
1 parent 28a39eb commit 0c14f33

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

ROADMAP.md

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
# 🔮 Apollo Kotlin Roadmap
1+
# 🔮 Apollo Kotlin Galaxy Roadmap
22

33
**Last updated: 2025-06-26**
44

5-
For up to date release notes, refer to the project [Changelog](https://github.com/apollographql/apollo-kotlin/blob/main/CHANGELOG.md).
5+
For up-to-date release notes, refer to the project [Changelog](https://github.com/apollographql/apollo-kotlin/blob/main/CHANGELOG.md).
66

7-
> **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.
7+
> [!NOTE]
8+
> 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.
89
910
## ✋ Community feedback & prioritization
1011

@@ -13,40 +14,47 @@ For up to date release notes, refer to the project [Changelog](https://github.co
1314

1415
---
1516

16-
## `main` is now v5
17+
## Apollo Kotlin
1718

18-
All active feature development is now being done for `5.x` releases on the `main` branch. Critical bugfixes and security patches will land in version 4 on the `release-4.x` branch.
19-
20-
v5 focuses on removing deprecated symbols to keep the codebase clean as well as incremental additions:
21-
* GraphQL spec tracking: support for [default values coercion](https://github.com/graphql/graphql-spec/pull/793/), [schema coordinates](https://github.com/graphql/graphql-spec/pull/794/), [fragment arguments](https://github.com/graphql/graphql-spec/pull/1081), [`@stream`](https://github.com/graphql/graphql-spec/pull/742), ...
22-
* Testing improvements: [data builders in the test source set](https://github.com/apollographql/apollo-kotlin/issues/5257), [strict mode](https://github.com/apollographql/apollo-kotlin/issues/3344), ...
23-
* More KMP targets: linux, wasm
24-
* ...
19+
`main` is now v5.
2520

26-
The scope will be refined as the release date approaches. There should overall be no big bang. We aim for ABI compatibility for all symbols except those that were deprecated in v4 (and have been removed), `@ApolloExperimental` symbols and artifacts used at build time (`apollo-gradle-plugin`, `apollo-compiler`, `apollo-tooling`).
21+
All active feature development is now being done for `5.x` releases on the `main` branch. Critical bugfixes and security patches will land in version 4 on the `release-4.x` branch.
2722

28-
With `apollo-kotlin` being more and more stable, most of the work is now happening in [Apollo Galaxy repos](https://www.apollographql.com/docs/kotlin/advanced/galaxy), most notably the [normalized cache](https://github.com/apollographql/apollo-kotlin-normalized-cache).
23+
The scope will be refined as the release date approaches.
2924

30-
## Jetpack Compose extensions
25+
We aim for ABI compatibility for all symbols except those that were deprecated in v4 (and have been removed), `@ApolloExperimental` symbols and artifacts used at build time (`apollo-gradle-plugin`, `apollo-compiler`, `apollo-tooling`).
3126

32-
[Jetpack Compose](https://developer.android.com/jetpack/compose) is a declarative UI framework for building Android UIs written in Kotlin. We are experimenting with a few different approaches for supporting Compose in the Apollo Kotlin library. Our 3.8.0 release introduced an experimental API for use with Compose but gathered little feedback. We're planning to revisit this with more ambitious goals in terms of fragments colocation, error boundaries and more generally integration with the UI framework.
27+
### Incremental delivery: protocol updates and `@stream` support
3328

34-
This pattern is encouraged by [Relay](https://relay.dev/docs/tutorial/fragments-1/) and [Apollo Client (TypeScript)](https://www.apollographql.com/blog/optimizing-data-fetching-with-apollo-client-leveraging-usefragment-and-colocated-fragments) and may prove to be valuable to developers using Compose.
29+
The incremental delivery portion of the GraphQL specification has been unchanged since 2023 and will be merged into the draft specification soon. Currently, Apollo Kotlin supports the `@defer` directive using an older (but still functional) implementation of the incremental delivery protocol. Soon, we will release support for the current version of the protocol, along with support for the `@stream` directive for streaming elements in lists. We will also keep supporting the old format as well. For more information, see the RFC here: https://github.com/graphql/graphql-spec/pull/1110
3530

36-
## IntelliJ plugin usability
31+
### Other GraphQL spec tracking items
3732

38-
We are planning to remove some of the limitations of the current plugin in order to make it easier to work with (by simplifying configuration, especially for server vs client use cases) as well as consume less resources (by skipping the Gradle daemon). This work is exploratory and will also unlock future improvements for the plugin such as adopting new GraphQL features and directives faster.
33+
* [default values coercion](https://github.com/graphql/graphql-spec/pull/793/)
34+
* [schema coordinates](https://github.com/graphql/graphql-spec/pull/794/)
35+
* [fragment arguments](https://github.com/graphql/graphql-spec/pull/1081)
3936

40-
## Incremental delivery: protocol updates and `@stream` support
37+
### Testing improvements:
4138

42-
The incremental delivery portion of the GraphQL specification has been unchanged since 2023 and will be merged into the draft specification soon. Currently, Apollo Kotlin supports the `@defer` directive using an older (but still functional) implementation of the incremental delivery protocol. Soon, we will release support for the current version of the protocol, along with support for the `@stream` directive for streaming elements in lists. We will also keep supporting the old format as well. For more information, see the RFC here: https://github.com/graphql/graphql-spec/pull/1110
39+
* [data builders in the test source set](https://github.com/apollographql/apollo-kotlin/issues/5257)
40+
* [strict mode](https://github.com/apollographql/apollo-kotlin/issues/3344)
4341

44-
## [Cache improvements](https://github.com/apollographql/apollo-kotlin/issues/2331) (on pause, feedback needed 🙏)
42+
## [Cache improvements](https://github.com/apollographql/apollo-kotlin/issues/2331)
4543

4644
Apollo Normalized Cache v1 alphas [are available now](https://github.com/apollographql/apollo-kotlin-normalized-cache/releases) and contain lots of new features like [Cache Control](https://apollographql.github.io/apollo-kotlin-normalized-cache/cache-control.html), [garbage collection](https://apollographql.github.io/apollo-kotlin-normalized-cache/garbage-collection.html), TTL, [partial cache results](https://github.com/apollographql/apollo-kotlin-normalized-cache/issues/57), better performance and more...
4745

4846
We encourage you to try it out with the (important) caveat that the binary format might still change (your persistent cache might be lost when upgrading to a newer alpha versions, memory cache isn't impacted). Your feedback is greatly appreciated and helps us ship a stable version faster.
4947

48+
## Apollo Kotlin Compose
49+
50+
[Jetpack Compose](https://developer.android.com/jetpack/compose) is a declarative UI framework for building Android UIs written in Kotlin. We are experimenting with a few different approaches for supporting Compose in the Apollo Kotlin library. Our 3.8.0 release introduced an experimental API for use with Compose but gathered little feedback. We're planning to revisit this with more ambitious goals in terms of fragments colocation, error boundaries and more generally integration with the UI framework.
51+
52+
This pattern is encouraged by [Relay](https://relay.dev/docs/tutorial/fragments-1/) and [Apollo Client (TypeScript)](https://www.apollographql.com/blog/optimizing-data-fetching-with-apollo-client-leveraging-usefragment-and-colocated-fragments) and may prove to be valuable to developers using Compose.
53+
54+
## [IntelliJ plugin usability](https://github.com/apollographql/apollo-intellij-plugin)
55+
56+
We are planning to remove some of the limitations of the current plugin in order to make it easier to work with (by simplifying configuration, especially for server vs client use cases) as well as consume less resources (by skipping the Gradle daemon). This work is exploratory and will also unlock future improvements for the plugin such as adopting new GraphQL features and directives faster.
57+
5058
## [Apollo Kotlin Faker](https://github.com/apollographql/apollo-kotlin-faker) (on pause, feedback needed 🙏)
5159

5260
Apollo Kotlin Faker [is now available](https://github.com/apollographql/apollo-kotlin-faker/releases) for rapid schema-driven testing, a pattern that we have seen used with success in other Apollo projects. We encourage you to try it out. Your feedback is greatly appreciated and helps us ship a stable version faster.

0 commit comments

Comments
 (0)