Skip to content
Sam Edwards edited this page Jun 8, 2024 · 2 revisions

Invert "Flow Diagram"

  1. Configure invert with a set of Collectors that are applicable to your project, as well as Ownership (by module). ->
  2. Execute Gradle Plugin ->
  3. Generate Invert Report
  4. Publish Invert Report on GitHub Pages after each commit to main for an up to date source of project-relevant information.

Primary Goals

  • Provide the ability to query a fully configured, inverted dependency graph (who uses you, not who you use).
  • Surface information about the Gradle configuration for the project, broken down by module.
  • Surface static insights about your codebase via static analysis, by module.
  • Provide dynamic report allowing exploration of data.

Technical/Architectural Goals

  • Support Deep Links for All Report Pages
  • Support dynamic loading of data
  • Provide a way for someone to extend the report to build their own.
  • Lean into Kotlin's K2 FIR analysis over PSI to be able to support semantic insights on code
  • Integrate/play nicely with GitHub to link to content on GitHub.

Configurability

Ownership

This is a pluggable way to provide a way to determine ownership of a module. Different teams have different ownership tools, so this is made pluggable in order to support those.

Collectors

This is a pluggable way to provide a set of Collectors to gather data and metrics in your projects. There should be some off-the-shelf standard ones, and it should be easy for you to add your own.

Clone this wiki locally