jcci is a powerful Python library that analyzes the impact of Java code changes between git commits. By visualizing the influence of code modifications, it helps developers identify how changes affect various parts of their project, making precise testing and regression analysis more efficient.
JCCI: Java Code Change Impact Analysis Tool
JCCI is a powerful tool designed for impactful analysis of Java code changes across git commits. This Python-based library enables developers to understand the implications of Java code alterations by generating visually intuitive tree-structured impact data, providing a clear map of how changes in code affect various components of a project.
Features
- Thorough Analysis: Assess the impact of one or two git commits in relation to a Java project, allowing for precise regressive testing.
- Graphical Representation: Visualize the effect of code changes with generated tree data, enhancing understanding of the codebase.
- Underlying Architecture: Utilizes javalang for parsing Java file syntax, combined with the unidiff library for analyzing git differences, ensuring a comprehensive analysis of imports, class hierarchies, and method invocations.
Quick Start
Using JCCI is simple! Below are a few usage examples to get you started:
from path.to.jcci.src.jcci.analyze import JCCI
# Analyze the impact of two commits on the same branch
commit_analyze = JCCI('git@xxxx.git', 'username1')
commit_analyze.analyze_two_commit('master','commit_id1','commit_id2')
# Analyze the impact on a specific class method
class_analyze = JCCI('git@xxxx.git', 'username1')
class_analyze.analyze_class_method('master','commit_id1', 'package\src\main\java\ClassA.java', '20,81')
# Compare impacts across different branches
branch_analyze = JCCI('git@xxxx.git', 'username1')
branch_analyze.analyze_two_branch('branch_new','branch_old')
# Combine multiple projects in analysis
commit_analyze = JCCI('git@xxxx.git', 'username1')
commit_analyze.analyze_two_commit('master','commit_id1','commit_id2', dependents=dependents)
Important Considerations
- Runs locally with no data collection, ensuring your analysis remains private and secure.
- Requires Python 3.9 or higher and SQLite 3.38 or higher.
Community Engagement
Join our expanding community and share your experience using JCCI. If you find this tool helpful, please give us a star ⭐ and let us know your thoughts or help us improve by reporting bugs. Your feedback is highly valued!
Acknowledgments
Thank you to all contributors for their support and insights which help us enhance JCCI further.
Discover more about JCCI and contribute to our project on GitHub: [JCCI GitHub Repository](https://github.