The `:configuration-cache-report` project produces the Javascript / HTML
app for browsing and understanding problems occurred when running a
build with configuration caching.

The output of `:configuration-cache-report` is completely produced by the
`assembleReport` task into `build/report` which then gets
embedded into the `:configuration-cache` module (see
[../configuration-cache/configuration-cache.gradle.kts](../configuration-cache/configuration-cache.gradle.kts)).

## Architecture

The interface between `:configuration-cache` and
`:configuration-cache-report` is a Javascript global function named
`configurationCacheProblems` which must be defined in a file named
`configuration-cache-report-data.js`. The file is generated by the
`:configuration-cache` module from the data collected at configuration
time.

An [example file](./src/main/resources/configuration-cache-report-data.js)
is kept for documentation and testing purposes.

The app itself is built according to [the Elm
architecture](https://guide.elm-lang.org/architecture/).

## Setting up a quick feedback loop

Start a continuous build on one shell:

    $ ./gradlew :cCR:stageDevReport -t

Start `browser-sync` on another:

    $ browser-sync start -s subprojects/configuration-cache-report/build/stageDevReport --startPath configuration-cache-report.html -w

Hack away!

The `:configuration-cache-report` project produces the Javascript / HTML
app for browsing and understanding problems occurred when running a
build with configuration caching.

The output of `:configuration-cache-report` is completely produced by the
`assembleReport` task into `build/report` which then gets
embedded into the `:configuration-cache` module (see
[../configuration-cache/configuration-cache.gradle.kts](../configuration-cache/configuration-cache.gradle.kts)).

## Architecture

The interface between `:configuration-cache` and
`:configuration-cache-report` is a Javascript global function named
`configurationCacheProblems` which must be defined in a file named
`configuration-cache-report-data.js`. The file is generated by the
`:configuration-cache` module from the data collected at configuration
time.

An [example file](./src/main/resources/configuration-cache-report-data.js)
is kept for documentation and testing purposes.

The app itself is built according to [the Elm
architecture](https://guide.elm-lang.org/architecture/).

## Setting up a quick feedback loop

Start a build on one shell:

    $ ./gradlew :cCR:stageDevReport

Start `browser-sync` on another:

    $ browser-sync start -s subprojects/configuration-cache-report/build/stageDevReport --startPath configuration-cache-report.html -w
    
Then make some changes and start the build again:

    $ ./gradlew :cCR:stageDevReport

Hack away!

Adjust configuration cache report dev instructions
Adjust configuration cache report dev instructions

Signed-off-by: Paul Merlin <a027184a55211cd23e3f3094f1fdc728df5e0500@gradle.com>
