apollo-kotlin
apollo-kotlin copied to clipboard
Cleanups 🧹
This is a list of changes that we don't want to forget about. They are likely to be backwards-incompatible so most of these will need to wait for a future major release. This list is mostly a braindump and is missing a lot of context. This is not about new features but rather a list of small cleanups to do.
Continued from https://github.com/apollographql/apollo-kotlin/issues/4171
If you see anything that doesn't make any sense, it's probably because it doesn't. Feel free to comment and we'll dive into it.
Potential Breaking Changes/cleanups
- [ ] Rename
HttpInterceptor.dispose()toHttpInterceptor.close() - [ ] Rename
Foo.typetoFoo.__typeto avoid nameclashes (or just leave it like this because we can detect the case. See https://github.com/apollographql/apollo-kotlin/issues/4293) - [ ] Rewrite the buffered adapters to not use JsonReader anymore
- [ ] Cleanup the
JsonReaderAPI and distinguish between the buffer/non buffered case. - [ ] Generate the customScalarAdapters?
- [ ] Make the field merging validation more strict (see https://github.com/apollographql/apollo-kotlin/pull/4342#pullrequestreview-1083903524)
- [ ] Use scalar instead of customScalar https://github.com/apollographql/apollo-kotlin/issues/3815
- [ ] Refactor
shapes() - [ ] Move httpInfo and others outside of executionContext
- [ ] Improve the Java ergonomics of
HttpKt - [ ] (To be considered): pass the variant name to the lambda for
createAllAndroidVariantServices(see this comment) (or deprecate the function?) - [ ] Rename
WsProtocol.FactorytoWsProtocol.Builder - [ ] Remove circular dependencies between Gradle projects
- [ ] extract HttpEngine and WebSocketEngine to a common module
- [ ] Replace ApolloClient.Builder.httpCache with HttpNetworkTransport.httpCache (requires using ExecutionContext from HttpEngine)
- [ ] Move NormalizedCacheFactory from expect/actual to an interface
- [x] Remove IdlingResource. See this comment from OkHttp for instance, and this article about how to avoid them with Compose.
- [x] Remove Gradle defaultService
- [x] Enforce opt-in the
kotlin_labslinking - [ ] check all TODO v5
- [ ] Do not add
@deferautomatically to the schema