platform/build-scripts/product-dsl/README.md
A Kotlin DSL for defining IntelliJ product module composition and generating module dependencies.
Generate Product Layoutsbazel run //platform/buildScripts:plugin-model-tool--json outputs model analysis--json='{"filter":"products"}' for specific sectionsThe generation uses a 5-stage pipeline with slot-based ComputeNode execution:
GenerationPipeline.execute(config)
│
├─ STAGE 1: DISCOVER → Module sets + products from DSL
├─ STAGE 2: BUILD_MODEL → Caches + shared values
├─ STAGE 3: GENERATE → Parallel ComputeNodes (slot-based dependencies)
├─ STAGE 4: AGGREGATE → Collect errors, diffs, tracking maps
└─ STAGE 5: OUTPUT → Cleanup orphan files/dirs, commit, build stats
For detailed architecture, file organization, and component documentation, see architecture-overview.md
| If you want to... | Read... |
|---|---|
| Get started quickly | quick-start.md |
| Learn the DSL syntax | dsl-api-reference.md |
| Understand module sets | module-sets.md |
| Fix validation errors | errors.md |
| Migrate existing code | migration-guide.md |
Module sets are defined in:
CommunityModuleSets.kt (this module) - Community module setsplatform/buildScripts/src/productLayout/UltimateModuleSets.kt - Ultimate module setsProducts are defined in:
platform/buildScripts/src/productLayout/ - Product specifications and ultimateGenerator.ktSee ultimateGenerator.kt for the main entry point.