KMP GraphQL based conference project with Jetpack Compose Android, Compose for Wear, Compose Multiplatform and SwiftUI iOS clients along with GraphQL backend.
[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
apollographql/apollo-kotlin (com.apollographql.apollo:apollo-gradle-plugin)
### [`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.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
4.0.0
->4.0.1
4.0.0
->4.0.1
4.0.0
->4.0.1
Release Notes
apollographql/apollo-kotlin (com.apollographql.apollo:apollo-gradle-plugin)
### [`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.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.