-
Notifications
You must be signed in to change notification settings - Fork 657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to Ktor 3 #6214
Update to Ktor 3 #6214
Conversation
✅ Docs Preview ReadyNo new or changed pages found. |
✅ Deploy Preview for apollo-android-docs canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
@@ -402,7 +402,6 @@ public final class com/apollographql/apollo/api/CompiledVariable { | |||
public final class com/apollographql/apollo/api/CustomScalarAdapters : com/apollographql/apollo/api/ExecutionContext$Element { | |||
public static final field Empty Lcom/apollographql/apollo/api/CustomScalarAdapters; | |||
public static final field Key Lcom/apollographql/apollo/api/CustomScalarAdapters$Key; | |||
public static final field PassThrough Lcom/apollographql/apollo/api/CustomScalarAdapters; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is due to a BCV update
final fun <get-entries>(): kotlin.enums/EnumEntries<com.apollographql.apollo.api.http/HttpMethod> // com.apollographql.apollo.api.http/HttpMethod.entries.<get-entries>|<get-entries>#static(){}[0] | ||
|
||
final fun valueOf(kotlin/String): com.apollographql.apollo.api.http/HttpMethod // com.apollographql.apollo.api.http/HttpMethod.valueOf|valueOf#static(kotlin.String){}[0] | ||
final fun values(): kotlin/Array<com.apollographql.apollo.api.http/HttpMethod> // com.apollographql.apollo.api.http/HttpMethod.values|values#static(){}[0] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Klib API dump changed a lot. Not reporting upstream because Klib support is still experimental and I guess this is to be expected.
This is a work in progress as it requires a release of:
apollo-kotlin-mockserver
apollo-kotlin-execution
Update to Ktor3
This is technically a breaking change but standard use cases shouldn't be affected so I'm suggesting we release this as a minor version.
If you are using Apollo Kotlin in an Android app, your are not affected.
You are affected if:
You'll have to update your project to Ktor 3 when updating to Apollo Kotlin
4.1.0
. Or you can start using the experimental websockets and exclude the Ktor transitive dependencies fromapollo-runtime-js
.apollo-debug-server-jvm
(Note:apollo-debug-server-android
is not impacted):You'll have to update your project to Ktor 3 when updating to Apollo Kotlin
4.1.0
.com.apollographql.apollo:apollo-mockserver
:MockServer
has moved to new coordinates in v4. The oldMockServer
was only kept as a redirect marker and is now removed. Usecom.apollographql.mockserver:apollo-mockserver
instead and replace all thecom.apollographql.apollo.mockserver
withcom.apollographql.mockserver
in your project. Keep using versions0.0.x
for Ktor2 or update to0.1.x
for Ktor3.apollo-testing-support
:Those helpers were never meant to be public and are removed. Copy/paste them in your project if needed.
Technical details
apollo-mockserver
is removed from this repo. I contemplated keeping it to avoid a breaking change but the Ktor3 update is a breaking change anyway so I figured we might as well accept our loss here and move on.BothEdit: ultimately, the tombstone were removed because there is very little tooling to work with them.apollo-mockserver
andapollo-ktor-engine
are now Maven tombstones. They should publish a redirect marker on maven central. Never tried that but could be useful.The execution algorithms should probably move to this repo. This is a logical place to be. Plus it'll allow removing the external dependency for
apollo-debug-server-jvm
.More generally,
apollo-debug-server
should have been marked experimental given it includes pre-release dependencies.More comments inline