Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
odrotbohm opened this issue Feb 7, 2025 · 1 comment
Assignees
Labels
in: documentation support Documentation generation type: enhancement Major enhanvements, new features

Comments

@odrotbohm
Copy link
Member

odrotbohm commented Feb 7, 2025

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.

@odrotbohm odrotbohm added in: documentation support Documentation generation type: enhancement Major enhanvements, new features labels Feb 7, 2025
@odrotbohm odrotbohm self-assigned this Feb 7, 2025
@patpatpat123
Copy link

Upvoting this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: documentation support Documentation generation type: enhancement Major enhanvements, new features
Projects
None yet
Development

No branches or pull requests

2 participants