Skip to content

"Design Partition is Art" - Design Analysis by VCS

Notifications You must be signed in to change notification settings

ayeseeem/desipartart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

desipartart - Design Analysis by VCS

desipartart: Design Partition is Art

Concept:

Can we investigate and assess the quality and features of the design of some software by looking at how files have changed over time? By looking at which files change together, based on change sets from the history from a version control system?

Look at index.html for more.

TODOs

  • Treat files as unique entities based on full path

  • Look at "packages" based on directories, but not nested (like Java packages)

  • Look at nesting, based on directories - split paths

  • Follow file renames (includes moving folder?)

  • (Optionally) include/exclude self-links

  • (Optionally) include/exclude unlinked files

  • Exclude edges representing fewer than N changes

    • Combine with exclude "unlinked" files - unlinked if edge is excluded
  • Combine trees based on paths - for example, treat these two files as being in the same package even though the paths differ:

    • src/main/java/org/ayeseeem/example/Example.java
    • src/test/java/org/ayeseeem/example/ExampleTest.java

    Could either merge src/main/ and src/test (merge one into the other), or perhaps just strip src/main/ and src/test - less meaningful, but maybe easier?

  • Keep track of dates and warn if log is not in chronological order (implying --reverse was not used to create the log).

    • Or better yet, automatically detect/fix order
    • Does order matter if not using/following renames?
  • Exclude/Include commits on input based on prefix (or Conventional Commits prefix), regex, SHA.

    • Update live based on Exclude/Filter by.

Visualisation Details

  • Display shorter filenames? (what about duplicates?)
  • Is there a "pending" animation we can add to graph?
  • Highlight linked files when you select a Node. Or an Edge.

Implementation Details

Worries

  • How come package-info.java is linked to so many files? Because it was added with a lot of files? Do we want/need to distinguish between file add and file change?
  • Why are there so few (no) leaf nodes?

Licence

The licence for this code is TBD, but it will be a liberal licence like Apache or MIT.

About

"Design Partition is Art" - Design Analysis by VCS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published