Skip to content

feat: blueprint report — KSP processor + Gradle plugin + HTML report#8

Open
keymusicman wants to merge 4 commits into
GusWard:mainfrom
keymusicman:main
Open

feat: blueprint report — KSP processor + Gradle plugin + HTML report#8
keymusicman wants to merge 4 commits into
GusWard:mainfrom
keymusicman:main

Conversation

@keymusicman

@keymusicman keymusicman commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

image

Adds an end-to-end blueprint report pipeline as two new Gradle modules:

  • blueprint-report-ksp — KSP annotation processor that scans @Preview composables, collects widthDp/heightDp/name/group parameters, and emits a blueprint-manifest.json per package. Also generates __Blueprint_ wrapper composables used by the renderer.
  • blueprint-report-gradle — Gradle plugin exposing two tasks:
    • blueprintCapture — invokes the compose-preview-renderer and Robolectric fallback to screenshot each preview; respects backgroundAlpha, contentAlpha, widthDp, heightDp, and DPI from the DSL/manifest.
    • blueprintReport — consumes captured images and the manifest to produce a self-contained HTML report grouped by package, with a resizable sidebar, package filter, and function-name display for named previews.

How to run

Execute ./gradlew :example:blueprintReport to generate the report for the example module. The report will be in the example/build/reports/blueprint/blueprint-report.html

@keymusicman

Copy link
Copy Markdown
Contributor Author

@GusWard I haven’t prepared the KSP module and Gradle plugin for publishing yet. Let me know if you want me to do it, or if you’ll handle it on your side

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant