Open yevhenii-nadtochii opened 2 years ago
@alexander-yevsyukov @armiol Please take a look.
It's a good start, but the Requirements section needs to be re-formulated. Let's have them as User Stories. It may narrow down the focus on what we need.
Also, let's try to formulate our goals first, and then go to the discovery of the implementation options.
We need a Ubiquitous Language and one or, probably, more bounded contexts.
Name the problems we have now. One of them is that we have to update dependency reports on the developer's workstations. It takes human time, which can be handled by computers.
Another problem: we observe dependencies on different versions form time to time. It makes the resulting configurations less predictable.
Have a look around. Talk to people. You'll find other problems we need to address.
With the growing number of Spine modules, it becomes harder to track how they relate to each other. We need to build a dependency tree for:
Those graphs should always be up-to-date and updated automatically. For example, when a changeset modifies module dependencies, then module's and SDK's graphs should be updated as well.
Requirements:
io.spine
prefix. Further, other dependencies can also be included.DependencyWriter
does something similar to prepare POM report.What we have now:
Insights / Dependency graph
tab. It is built on a per-repository basis and represents a list of dependencies fetched from the present POM file.Gradle
tab, one can select any module and clickShow Diagram / Gradle dependecies
. It builds something that is much closer to what we need. It lacks versions, but displays both direct and transitive dependencies from all configurations.Tools that can be helpful:
For example, IDEA can easily export a diagram to any of the above web editors.