Add settings plugin for configuration cache compatible multi-module testing#492
Open
inktomi wants to merge 7 commits intorunningcode:masterfrom
Open
Add settings plugin for configuration cache compatible multi-module testing#492inktomi wants to merge 7 commits intorunningcode:masterfrom
inktomi wants to merge 7 commits intorunningcode:masterfrom
Conversation
…ression body syntax
…ed new FulladleSettingsPlugin to manage the fulladle multi-module setup and refactored to use it
Integrated AGP 9.0.1 changes, Gradle 9.4.0 wrapper update, and develocity plugin 4.3.2 while preserving config-cache compatibility changes (defaultDependencies, argumentProviders, removed afterEvaluate wrappers).
- Use gradle.projectsEvaluated instead of afterEvaluate in FulladlePlugin so legacy path sees fully evaluated subprojects without needing evaluationDependsOnChildren (which breaks other plugins) - Move configuration creation and extension setup to apply() phase - Move automaticallyConfigureTestOrchestrator before onVariants loop - Add CC multi-module integration tests for both legacy and settings paths - Document settings plugin in multi-module-testing.md and changelog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
com.osacky.fulladle.settings— a settings plugin that enables configuration cache compatible multi-module testing by flowing module metadata through JSON files instead of cross-project configurationgradle.projectsEvaluated)FladlePluginDelegate: usesdefaultDependenciesfor lazy Flank dependency resolution, argumentProviders for CC-safe task args, and stores buildDirectoryProviderinstead ofProjectLayoutinFlankJavaExecHow it works
When the settings plugin is applied, each subproject gets a
FulladleModulePluginthat writes a JSON metadata file viaFulladleModuleMetadataTask. The rootYamlConfigWriterTaskconsumes these files through Gradle's dependency management — no Project references cross module boundaries.Without the settings plugin, the legacy subprojects {} path still works. Module configuration now happens at configuration time rather than in task actions, so the configuration cache can serialize the task graph cleanly.
Test plan