Skip to content

A hacked tool to get some insight into your legacy code base.

Notifications You must be signed in to change notification settings

simeonvandersteen/churn-vs-complexity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Churn vs Complexity chart

This is a hacked thing to get some insight into the pain points of your (java) code base. It wasn't meant for sharing so it will take some effort to get up and running. There's also quite some room for improvement, contributions are welcome!

Some background can be found here.

Prerequisites:

  • Ruby + bundler
  • Python 3.7 + pipenv
  • SonarQube (I ran sonarqube:7.9.2-community with Docker)

How to

Generate data for a bunch of versions of your code. For each version:

  • Check out your git repo to the version you're interested in
  • Run unit tests with jacoco reports
  • Publish results to Sonar
  • Wait for Sonar to have processed the results
  • Run "changed-files" script to generate a json file with data from sonar and git combined. It assumes a semantic version in your commit. You'll also need to change the "component" query parameter in the sonar URL in the script to pick up the correct files.
  • You probably need to remove the sonar data for the next iteration.

(I've dumped most of the commands in generate.sh)

Run "plot" script to plot all the generated json files into a nice chart.

About

A hacked tool to get some insight into your legacy code base.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published