apollo-kotlin icon indicating copy to clipboard operation
apollo-kotlin copied to clipboard

Cleanups 🧹

Open bignimbus opened this issue 1 year ago • 0 comments

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() to HttpInterceptor.close()
  • [ ] Rename Foo.type to Foo.__type to 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 JsonReader API 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.Factory to WsProtocol.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_labs linking
  • [ ] check all TODO v5
  • [ ] Do not add @defer automatically to the schema

bignimbus avatar Jul 25 '24 14:07 bignimbus