spring-projects / spring-projects/spring-modulith

Create Sonargraph architecture model from Spring Modulith's application module model

Open
#1,053 1 comment 2 reactions 1 assignee View on GitHub

@odrotbohm is already working on this.

Since Feb 7, 2025.

in: documentation support type: enhancement
Dominant language
Java
Stars
1.2k
Forks
222
PR merge metrics
No merged PRs in 30d

Description

Sonargraph is a software quality tool that heavily inspired practices enforced by Spring Modulith. It allows architects to define an intended architecture, verify that against a codebase, perform virtual refactorings and (visually) explore the effects on the architectural quality of those.

Working with Sonargraph usually starts with defining the logical architecture in a DSL. With Spring Modulith in place, a lot of the structural information needed for that can be found in the codebase itself. We could allow creating such a skeleton architectural description through the Documenter API and inspect our ApplicationModules.

artifact $module.displayName {

  include $asPath($module.basePackage)

  // For each nested module
  exclude $asPath($nestedmodule.basePackage)

  // For each named interface
  interface $ni.name {
    /For each type
    include $type
  }
}

I guess we could also register all allowed dependencies declared by application modules or fallback to the currently existing ones if none are declared explicitly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.