Skip to content

JakeWharton/kmp-missing-targets

Repository files navigation

KMP Missing Targets

A Gradle plugin which finds missing Kotlin multiplatform targets. Not ready for use.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':kmpMissingTargets'.
> Missing targets found!
   - linuxArm64
   - wasmJs

Introduction

Your multiplatform project depends on kotlinx.coroutines, and Renovate just helpfully submitted a PR to bump to a newly-released version.

 [versions]
-kotlinx-coroutines = "1.7.2"
+kotlinx-coroutines = "1.8.0"

Did you remember to add wasmJs support now that coroutines added it? I forgot. At least until someone reminded me. And it's not the first time.

With this plugin applied, the Renovate PR would have failed on CI.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':kmpMissingTargets'.
> Missing targets found!
   - wasmJs

Can you even support a new target, or are other dependencies blocking you? Turns out that also happens. And it won't be the last time.

If another dependency lacked support for wasmJs, the plugin would say silent and allow the new coroutines version build to pass.

Want to know which dependencies are blocking you from supporting a particular target? Check the generated build report.

wasmJs unsupported by:

  • org.jetbrains.compose.runtime:runtime:1.5.12

Now you know which dependencies to chase when your users come asking.

Full example report.

License

Copyright 2024 Jake Wharton

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Gradle plugin which identifies multiplatform targets you should be supporting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages