Description
Ensure the winds plugin provides a seamless, target-agnostic experience across all Kotlin Multiplatform (KMP) targets, including mobile (iOS/Android), desktop (JVM/Native), web (Wasm/JS), and linux.
Problem Statement
While the core of winds uses robust tools like vanniktech/gradle-maven-publish-plugin, some of the internal automation logic is currently biased toward Android modules. In a modern KMP ecosystem, the plugin must treat all targets as first-class citizens.
Proposed Solution
Refactor the internal plugin application and configuration logic to be fully KMP-aware, ensuring that publishing, documentation, and API validation work across the entire multiplatform surface.
Key Enhancements
- Agnostic Publishing: Decouple the
maven-publish automation from Android-specific checks. If org.jetbrains.kotlin.multiplatform is present, winds should automatically orchestrate the publication of all configured targets.
- KMP Documentation Aggregation: Automatically configure Dokka to handle multiplatform source sets, ensuring that the generated
winds documentation reflects the entire cross-platform API.
- Target-Aware API Diffing: Ensure the Binary Compatibility features track changes across all platform-specific outputs (JVM, JS, Native).
- Platform Metadata Expansion: Provide a DSL for platform-specific metadata, such as CocoaPods configurations for iOS or NPM details for JS targets.
Implementation Details
- Refactor
MavenPublishUtils.kt to use target-agnostic triggers.
- Update
WindsPlugin.kt to properly handle KMP source set hierarchies.
- Ensure the
windsCheck quality gate validates all active KMP targets.
Description
Ensure the
windsplugin provides a seamless, target-agnostic experience across all Kotlin Multiplatform (KMP) targets, including mobile (iOS/Android), desktop (JVM/Native), web (Wasm/JS), and linux.Problem Statement
While the core of
windsuses robust tools likevanniktech/gradle-maven-publish-plugin, some of the internal automation logic is currently biased toward Android modules. In a modern KMP ecosystem, the plugin must treat all targets as first-class citizens.Proposed Solution
Refactor the internal plugin application and configuration logic to be fully KMP-aware, ensuring that publishing, documentation, and API validation work across the entire multiplatform surface.
Key Enhancements
maven-publishautomation from Android-specific checks. Iforg.jetbrains.kotlin.multiplatformis present,windsshould automatically orchestrate the publication of all configured targets.windsdocumentation reflects the entire cross-platform API.Implementation Details
MavenPublishUtils.ktto use target-agnostic triggers.WindsPlugin.ktto properly handle KMP source set hierarchies.windsCheckquality gate validates all active KMP targets.