You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
6
6
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.
8
9
9
10
## ✋ Community feedback & prioritization
10
11
@@ -13,40 +14,47 @@ For up to date release notes, refer to the project [Changelog](https://github.co
13
14
14
15
---
15
16
16
-
## `main` is now v5
17
+
## Apollo Kotlin
17
18
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.
25
20
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.
27
22
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.
29
24
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`).
31
26
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
33
28
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
35
30
36
-
##IntelliJ plugin usability
31
+
### Other GraphQL spec tracking items
37
32
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.
##Incremental delivery: protocol updates and `@stream` support
37
+
### Testing improvements:
41
38
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)
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...
47
45
48
46
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.
49
47
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.
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
+
50
58
## [Apollo Kotlin Faker](https://github.com/apollographql/apollo-kotlin-faker) (on pause, feedback needed 🙏)
51
59
52
60
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