FIX: Move plugin-builder to composite build#783
Conversation
📝 WalkthroughRelease Notes: FIX - Move plugin-builder to composite buildChanges
|
| Cohort / File(s) | Summary |
|---|---|
Composite Build Configuration settings.gradle.kts, plugin-api/plugin-builder/settings.gradle.kts |
Root settings now includes plugin-builder as a composite build via pluginManagement; plugin-builder removed from standard subproject includes. New settings file for plugin-builder defines rootProject.name and configures dependencyResolutionManagement with google, mavenCentral, and gradlePluginPortal repositories. |
Build Task Rewiring app/build.gradle.kts |
createPluginArtifactsZip task dependency changed from :plugin-api:plugin-builder:jar (subproject) to gradle.includedBuild("plugin-builder").task(":jar") (composite). JAR source path changed from project layout reference to fixed root path rootProject.file(...). |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~22 minutes
Poem
A builder once nested in tree,
Now stands as a build to be free,
Through composites wise, the artifacts rise,
Independence declared—hooray! 🐰✨
Pre-merge checks and finishing touches
❌ Failed checks (1 inconclusive)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Description check | ❓ Inconclusive | No pull request description was provided by the author. | Consider adding a brief description explaining the motivation, benefits, and any migration steps involved in moving to composite build. |
✅ Passed checks (2 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | The title clearly and concisely summarizes the main change: moving plugin-builder to a composite build architecture. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✨ Finishing touches
- 📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
plugin-api/plugin-builder/settings.gradle.kts (1)
1-9: Settings configuration is valid.The composite build setup correctly names the project to match the
includeBuilddirective in the root settings. The repository configuration covers the essential sources for Gradle plugin development.Consider adding
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)for consistency with the root project's stricter repository configuration, though this is optional depending on the plugin-builder's needs.🔎 Optional: Add repositoriesMode for consistency
rootProject.name = "plugin-builder" dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() gradlePluginPortal() } }app/build.gradle.kts (1)
630-641: Hardcoded artifact path should use dynamic resolution like the plugin-api approach.The task correctly depends on the composite build's
:jartask viagradle.includedBuild("plugin-builder").task(":jar"), but the hardcoded pathrootProject.file("plugin-api/plugin-builder/build/libs/plugin-builder-1.0.0.jar")is inconsistent with how plugin-api is handled elsewhere in this file. On line 625, the copyPluginApiJarToAssets task usesproject(":plugin-api").layout.buildDirectory.file(...)for dynamic resolution, while the createPluginArtifactsZip task hardcodes the path and version.This creates a maintenance burden: if the plugin-builder version is updated, the hardcoded path on line 635 must also be updated, and this could easily be missed, causing silent failures at runtime.
Consider using a similar dynamic approach (e.g.,
gradle.includedBuild("plugin-builder").task(":jar").outputs.files) to access the artifact output, making it consistent with the plugin-api pattern and eliminating the hardcoded version dependency.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
app/build.gradle.ktsplugin-api/plugin-builder/settings.gradle.ktssettings.gradle.kts
🔇 Additional comments (1)
settings.gradle.kts (1)
26-28: Composite build inclusion looks correct.The plugin-builder is appropriately added as an included build within
pluginManagement, which is the correct location for builds that provide Gradle plugins or build logic. The naming is consistent with the existingbuild-logicpattern.
No description provided.