[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
apollographql/apollo-kotlin-ktor-support (com.apollographql.ktor:apollo-engine-ktor)
### [`v0.1.0`](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/blob/HEAD/CHANGELOG.md#Version-010)
*2024-11-05*
- Update Apollo Kotlin to 4.1.0 ([#13](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/issues/13))
- Update Ktor to 3.0.0 ([#13](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/issues/13))
Many thanks [@sonatard](https://redirect.github.com/sonatard) for diving into this 💙
apollographql/apollo-kotlin (com.apollographql.apollo)
### [`v4.1.0`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-410)
*2024-11-04*
#### Ktor 3.0.0
Version 4.1.0 updates usages of Ktor from 2.3.11 to 3.0.0:
- If you are using `apollo-runtime-js` or `apollo-debug-server-jvm`, you need to update your app to Ktor 3.0.0+ at the same time as updating to Apollo 4.1.0 (`apollo-debug-server-android` is unaffected).
- If you are using the deprecated `apollo-mockserver` or `apollo-ktor-support` from this repo, you need to update to the [new coordinates](https://www.apollographql.com/docs/kotlin/migration/4.0#moved-artifacts).
All other cases are unaffected. In particular, `apollo-runtime` on Android and iOS uses OkHttp and NsUrlConnection respectively and is not impacted by the Ktor update.
You can read more details in the [pull request](https://redirect.github.com/apollographql/apollo-kotlin/pull/6214).
##### New media type: `application/graphql-response+json`
`application/graphql-response+json` is a new media type being introduced by the [GraphQL over HTTP draft](https://graphql.github.io/graphql-over-http/draft/). It allows differentiating a valid GraphQL response from an error JSON response that could be transmitted by a cache or proxy in the HTTP chain.
If your server uses `application/graphql-response+json` and returns non-2xx response, Apollo Kotlin will now parse those responses and expose `data` and `errors` instead of returning an `ApolloHttpException` before.
##### K2 support for the IntelliJ plugin
The IntelliJ plugin is now compatible with K2 ([#6150](https://redirect.github.com/apollographql/apollo-kotlin/issues/6150))
#### 👷♂️ All changes
- \[all] Update kotlinpoet to 2.0.0 ([#6215](https://redirect.github.com/apollographql/apollo-kotlin/issues/6215))
- \[all] Update to Ktor 3 ([#6214](https://redirect.github.com/apollographql/apollo-kotlin/issues/6214))
- \[all] Remove `apollo-mockserver` and `apollo-ktor-support` ([#6215](https://redirect.github.com/apollographql/apollo-kotlin/issues/6215))
- \[all] Remove mockserver as a dependency of apollo-testing-support ([#6218](https://redirect.github.com/apollographql/apollo-kotlin/issues/6218))
- \[ast] Do not escape slashes in single quoted strings ([#6190](https://redirect.github.com/apollographql/apollo-kotlin/issues/6190))
- \[runtime] Add support for application/graphql-response+json ([#6170](https://redirect.github.com/apollographql/apollo-kotlin/issues/6170))
- \[runtime] Do not call experimental webSocket() method re-entrently ([#6197](https://redirect.github.com/apollographql/apollo-kotlin/issues/6197))
- \[debug server] Remove Ktor dependency from apollo-debug-server JVM ([#6224](https://redirect.github.com/apollographql/apollo-kotlin/issues/6224))
- \[codegen] Do not add internal to private members ([#6213](https://redirect.github.com/apollographql/apollo-kotlin/issues/6213))
- \[codegen] Fix name clash in data builder names when two types differ only by their case ([#6195](https://redirect.github.com/apollographql/apollo-kotlin/issues/6195))
- \[gradle plugin] Allow null in KSP arguments for Apollo Compiler Plugins ([#6200](https://redirect.github.com/apollographql/apollo-kotlin/issues/6200))
- \[gradle plugin] Do not log the full introspection JSON ([#6199](https://redirect.github.com/apollographql/apollo-kotlin/issues/6199))
- \[gradle plugin] Deprecate TargetLanguage.KOTLIN\_1\_5 ([#6193](https://redirect.github.com/apollographql/apollo-kotlin/issues/6193))
- \[IJ Plugin] Make the cache viewer understand the blob db format ([#6187](https://redirect.github.com/apollographql/apollo-kotlin/issues/6187))
- \[IJ Plugin] Bump IJ Platform Gradle Plugin to 2.0.1 ([#6185](https://redirect.github.com/apollographql/apollo-kotlin/issues/6185))
- \[IJ Plugin] Migrate to the K2 compatible Analysis API ([#6150](https://redirect.github.com/apollographql/apollo-kotlin/issues/6150))
- \[IJ Plugin] Schedule the GraphQL configuration reload early ([#6228](https://redirect.github.com/apollographql/apollo-kotlin/issues/6228))
- \[IJ Plugin] Rename related generated code when renaming an Operation/Fragment ([#6227](https://redirect.github.com/apollographql/apollo-kotlin/issues/6227))
- \[IJ Plugin] Only highlight the name of unused operations, rather than the whole operation ([#6226](https://redirect.github.com/apollographql/apollo-kotlin/issues/6226))
### [`v4.0.1`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-401)
*2024-10-01*
This release contains a handful of bug fixes and improvements.
#### ⚙️ Add `ApolloCompilerPlugin.schemaListener()`
The [compiler plugins](https://www.apollographql.com/docs/kotlin/advanced/compiler-plugins) API has been extended to allow listening to schema changes.\
This can be used to have plugins generate code based on the schema. To do this, implement the [`schemaListener`](https://www.apollographql.com/docs/kotlin/kdoc/apollo-compiler/com.apollographql.apollo.compiler/-apollo-compiler-plugin/schema-listener.html)
function on your plugin:
```kotlin
class MyCompilerPlugin() : ApolloCompilerPlugin {
@ApolloExperimental
override fun schemaListener(): SchemaListener {
return object : SchemaListener {
override fun onSchema(schema: Schema, outputDirectory: File) {
// Generate some code inside outputDirectory based on schema
}
}
}
}
```
#### 🚀 Allow mapping scalars to simple generic types
Previously, to [map a scalar](https://www.apollographql.com/docs/kotlin/essentials/custom-scalars) to a generic type, you had to use a `typealias`.
Now, simple generic types are accepted, and common types like `List` and `String` don't need to be fully qualified:
```kotlin
mapScalar("MassList", "List>", "com.example.MassListAdapter")
```
#### 💙 Contributors
Many thanks to [@ebrattli](https://redirect.github.com/ebrattli), [@agrosner](https://redirect.github.com/agrosner) and [@cvb941](https://redirect.github.com/cvb941) for their contributions to this release 💙!
#### 👷 All changes
- \[gradle-plugin] Deprecate `"operationOutput"` and `./gradlew downloadApolloSchema` ([#6097](https://redirect.github.com/apollographql/apollo-kotlin/issues/6097))
- \[gradle-plugin] Use `registerJavaGeneratingTask` ([#6149](https://redirect.github.com/apollographql/apollo-kotlin/issues/6149))
- \[apollo-ast] Add GQLDocument.validate(SchemaValidationOptions) to allow adding external schemas. ([#6164](https://redirect.github.com/apollographql/apollo-kotlin/issues/6164))
- \[compiler] Add ApolloCompilerPlugin.schemaDocumentListener() ([#6165](https://redirect.github.com/apollographql/apollo-kotlin/issues/6165))
- \[compiler] Pass schema to ApolloCompilerPlugin.schemaListener ([#6166](https://redirect.github.com/apollographql/apollo-kotlin/issues/6166))
- \[compiler] Avoid enum value clashing with the getter `field` ([#6093](https://redirect.github.com/apollographql/apollo-kotlin/issues/6093))
- \[compiler] Fix a few additional instances of %L used instead of %N ([#6117](https://redirect.github.com/apollographql/apollo-kotlin/issues/6117))
- \[compiler] Escape properties in input builder function body ([#6116](https://redirect.github.com/apollographql/apollo-kotlin/issues/6116))
- \[compiler] Provide a more descriptive error message when a resolution of a specific `ResolverKey` fails ([#6136](https://redirect.github.com/apollographql/apollo-kotlin/issues/6136))
- \[compiler] Deprecate `@nonnull` ([#6152](https://redirect.github.com/apollographql/apollo-kotlin/issues/6152))
- \[compiler] Allow mapping scalars to simple generic types ([#6158](https://redirect.github.com/apollographql/apollo-kotlin/issues/6158))
- \[tooling] Allow to shutdown SchemaDownloader ([#6091](https://redirect.github.com/apollographql/apollo-kotlin/issues/6091))
- \[tooling] Remove warning ([#6092](https://redirect.github.com/apollographql/apollo-kotlin/issues/6092))
- \[WebSockets] connectionParams -> connectionPayload ([#6103](https://redirect.github.com/apollographql/apollo-kotlin/issues/6103))
- \[WebSockets] add NetworkTransport.closeConnection() ([#6105](https://redirect.github.com/apollographql/apollo-kotlin/issues/6105))
- \[BREAKING]\[runtime] Change NetworkMonitor to expose a StateFlow directly ([#6119](https://redirect.github.com/apollographql/apollo-kotlin/issues/6119))
- \[runtime] Add 'OfflineException' as a cause when using failFastIfOffline ([#6104](https://redirect.github.com/apollographql/apollo-kotlin/issues/6104))
- \[apollo-api] Fix reading `JsonNumber` in `MapJsonReader` ([#6141](https://redirect.github.com/apollographql/apollo-kotlin/issues/6141))
- \[cache] Allow to store `JsonNumber` in `Record` ([#6139](https://redirect.github.com/apollographql/apollo-kotlin/issues/6139))
- \[cache] Fix cascade SQL cache remove loops forever on cyclic references ([#6137](https://redirect.github.com/apollographql/apollo-kotlin/issues/6137))
- \[IJ Plugin] Bump pluginUntilBuild to 242 and pluginSinceBuild to 241 ([#6111](https://redirect.github.com/apollographql/apollo-kotlin/issues/6111))
- \[IJ Plugin] Add ApolloOneOfGraphQLViolationInspection ([#6125](https://redirect.github.com/apollographql/apollo-kotlin/issues/6125))
- \[IJ Plugin] Improve performance of ApolloGraphQLConfigFilePresentInspection and ApolloGraphQLConfigFilePresentAnnotator ([#6126](https://redirect.github.com/apollographql/apollo-kotlin/issues/6126))
- \[IJ Plugin] Fix high latency field inspection ([#6142](https://redirect.github.com/apollographql/apollo-kotlin/issues/6142))
- \[IJ Plugin] Correctly name Open In items ([#6151](https://redirect.github.com/apollographql/apollo-kotlin/issues/6151))
- \[infra] Bump Kotlin to 2.0.10 ([#6107](https://redirect.github.com/apollographql/apollo-kotlin/issues/6107))
- \[infra] Bump Kotlin to 2.0.20 ([#6131](https://redirect.github.com/apollographql/apollo-kotlin/issues/6131))
- \[infra] Bump develocity ([#6128](https://redirect.github.com/apollographql/apollo-kotlin/issues/6128))
- \[infra] Update Apollo Execution ([#6138](https://redirect.github.com/apollographql/apollo-kotlin/issues/6138))
- \[infra] Bump develocity ([#6144](https://redirect.github.com/apollographql/apollo-kotlin/issues/6144))
- \[infra] Allow compiling the project with Java22 ([#6145](https://redirect.github.com/apollographql/apollo-kotlin/issues/6145))
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
0.0.2
->0.1.0
4.0.0
->4.1.0
4.0.0
->4.1.0
Release Notes
apollographql/apollo-kotlin-ktor-support (com.apollographql.ktor:apollo-engine-ktor)
### [`v0.1.0`](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/blob/HEAD/CHANGELOG.md#Version-010) *2024-11-05* - Update Apollo Kotlin to 4.1.0 ([#13](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/issues/13)) - Update Ktor to 3.0.0 ([#13](https://redirect.github.com/apollographql/apollo-kotlin-ktor-support/issues/13)) Many thanks [@sonatard](https://redirect.github.com/sonatard) for diving into this 💙apollographql/apollo-kotlin (com.apollographql.apollo)
### [`v4.1.0`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-410) *2024-11-04* #### Ktor 3.0.0 Version 4.1.0 updates usages of Ktor from 2.3.11 to 3.0.0: - If you are using `apollo-runtime-js` or `apollo-debug-server-jvm`, you need to update your app to Ktor 3.0.0+ at the same time as updating to Apollo 4.1.0 (`apollo-debug-server-android` is unaffected). - If you are using the deprecated `apollo-mockserver` or `apollo-ktor-support` from this repo, you need to update to the [new coordinates](https://www.apollographql.com/docs/kotlin/migration/4.0#moved-artifacts). All other cases are unaffected. In particular, `apollo-runtime` on Android and iOS uses OkHttp and NsUrlConnection respectively and is not impacted by the Ktor update. You can read more details in the [pull request](https://redirect.github.com/apollographql/apollo-kotlin/pull/6214). ##### New media type: `application/graphql-response+json` `application/graphql-response+json` is a new media type being introduced by the [GraphQL over HTTP draft](https://graphql.github.io/graphql-over-http/draft/). It allows differentiating a valid GraphQL response from an error JSON response that could be transmitted by a cache or proxy in the HTTP chain. If your server uses `application/graphql-response+json` and returns non-2xx response, Apollo Kotlin will now parse those responses and expose `data` and `errors` instead of returning an `ApolloHttpException` before. ##### K2 support for the IntelliJ plugin The IntelliJ plugin is now compatible with K2 ([#6150](https://redirect.github.com/apollographql/apollo-kotlin/issues/6150)) #### 👷♂️ All changes - \[all] Update kotlinpoet to 2.0.0 ([#6215](https://redirect.github.com/apollographql/apollo-kotlin/issues/6215)) - \[all] Update to Ktor 3 ([#6214](https://redirect.github.com/apollographql/apollo-kotlin/issues/6214)) - \[all] Remove `apollo-mockserver` and `apollo-ktor-support` ([#6215](https://redirect.github.com/apollographql/apollo-kotlin/issues/6215)) - \[all] Remove mockserver as a dependency of apollo-testing-support ([#6218](https://redirect.github.com/apollographql/apollo-kotlin/issues/6218)) - \[ast] Do not escape slashes in single quoted strings ([#6190](https://redirect.github.com/apollographql/apollo-kotlin/issues/6190)) - \[runtime] Add support for application/graphql-response+json ([#6170](https://redirect.github.com/apollographql/apollo-kotlin/issues/6170)) - \[runtime] Do not call experimental webSocket() method re-entrently ([#6197](https://redirect.github.com/apollographql/apollo-kotlin/issues/6197)) - \[debug server] Remove Ktor dependency from apollo-debug-server JVM ([#6224](https://redirect.github.com/apollographql/apollo-kotlin/issues/6224)) - \[codegen] Do not add internal to private members ([#6213](https://redirect.github.com/apollographql/apollo-kotlin/issues/6213)) - \[codegen] Fix name clash in data builder names when two types differ only by their case ([#6195](https://redirect.github.com/apollographql/apollo-kotlin/issues/6195)) - \[gradle plugin] Allow null in KSP arguments for Apollo Compiler Plugins ([#6200](https://redirect.github.com/apollographql/apollo-kotlin/issues/6200)) - \[gradle plugin] Do not log the full introspection JSON ([#6199](https://redirect.github.com/apollographql/apollo-kotlin/issues/6199)) - \[gradle plugin] Deprecate TargetLanguage.KOTLIN\_1\_5 ([#6193](https://redirect.github.com/apollographql/apollo-kotlin/issues/6193)) - \[IJ Plugin] Make the cache viewer understand the blob db format ([#6187](https://redirect.github.com/apollographql/apollo-kotlin/issues/6187)) - \[IJ Plugin] Bump IJ Platform Gradle Plugin to 2.0.1 ([#6185](https://redirect.github.com/apollographql/apollo-kotlin/issues/6185)) - \[IJ Plugin] Migrate to the K2 compatible Analysis API ([#6150](https://redirect.github.com/apollographql/apollo-kotlin/issues/6150)) - \[IJ Plugin] Schedule the GraphQL configuration reload early ([#6228](https://redirect.github.com/apollographql/apollo-kotlin/issues/6228)) - \[IJ Plugin] Rename related generated code when renaming an Operation/Fragment ([#6227](https://redirect.github.com/apollographql/apollo-kotlin/issues/6227)) - \[IJ Plugin] Only highlight the name of unused operations, rather than the whole operation ([#6226](https://redirect.github.com/apollographql/apollo-kotlin/issues/6226)) ### [`v4.0.1`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-401) *2024-10-01* This release contains a handful of bug fixes and improvements. #### ⚙️ Add `ApolloCompilerPlugin.schemaListener()` The [compiler plugins](https://www.apollographql.com/docs/kotlin/advanced/compiler-plugins) API has been extended to allow listening to schema changes.\ This can be used to have plugins generate code based on the schema. To do this, implement the [`schemaListener`](https://www.apollographql.com/docs/kotlin/kdoc/apollo-compiler/com.apollographql.apollo.compiler/-apollo-compiler-plugin/schema-listener.html) function on your plugin: ```kotlin class MyCompilerPlugin() : ApolloCompilerPlugin { @ApolloExperimental override fun schemaListener(): SchemaListener { return object : SchemaListener { override fun onSchema(schema: Schema, outputDirectory: File) { // Generate some code inside outputDirectory based on schema } } } } ``` #### 🚀 Allow mapping scalars to simple generic types Previously, to [map a scalar](https://www.apollographql.com/docs/kotlin/essentials/custom-scalars) to a generic type, you had to use a `typealias`. Now, simple generic types are accepted, and common types like `List` and `String` don't need to be fully qualified: ```kotlin mapScalar("MassList", "ListConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.