This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
For a complete study about a monolithic software product being dismissed, please check STUDY.md
Please read Smart commits.
Please read this article.
Please read this documentation.
radon cc src --json --output-file radon.json -i libs -e text_*.py
The script 1-extract-issues-from-jira.py allows the caller to connect to the software defects database and extract all the issues. Two functions (that you can customize) allow you to personalize it. The aim is to produce a CSV on three columns
Key,IsSupport,Priority
PRJ-8623,True,P2
Given that your commits have been decorated with the issue they are addressing, like
fix(PRJ-8623): some bug in production
issue PRJ-8623 blablabla
The script 2.extract-issues-from-sources.py extracts the issue Key and the impacted files. The aim is to produce a json file containing the list of issues for every file
{
"app/server/my_model.py": [
"PRJ-8334", "PRJ-5693", "PRJ-4709", "PRJ-2427", "PRJ-5034", "PRJ-5034", "PRJ-4937",
"PRJ-3728", "PRJ-3712"
]
}
Only the issues mentioned by the code will be mentioned in the file.
The aim of the script 3-aggregate-coverage-and-issues.py is to produce a report like
FILE,OWNER,ISSUES,BUGS,SUPPORT_BUGS,P1,P2,P3,P4,COMPLEXITY,HAL_VOLUME,COVERAGE,LINES,LINES_COVERED
"app/server/my_model.py",cms,8,5,4,1,3,1,0,10,450.3799746402741,0.3553,197,70
From the different sources of information about the code (coverage, radon-cc, radon-hal, software defects database export).
Now, let's try to output some statistics about the csv file aggregating all the file-level code quality indicators.