New Build Reports with Dependency Traces

Last weekend I rewrote the build report feature a little bit.

In the process I added a new feature that will show why certain files were included in a build in a simplistic shortest path graph trace. Basically most source files you mouse over will show a tooltip showing the trace from the file to the configured :entries in the build.

Makes it a lot easier to figure out how a cljs.pprint or cljs.analyzer ended up in your build. I couldn’t think of a better visualization for this, so I’m open to suggestions.

A sample new report can be found here. The report is for the current shadow-cljs UI build.

In addition to the new traces the reports can now also be generated by using a build hook. So every release build will automatically generate a report without having to run the separate command. See the documentation for an example config.

I might add a couple more things in the future but this should already be rather useful.

15 Likes

This was incredibly helpful, thank you!

I’ve managed to somehow use shadow.lazy in a way that pulls in the namespaces that it mentions – I suspected as much but I wasn’t able to figure it out until this change. :slight_smile:

1 Like