Automated Code Commit Detection for Broken Builds
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Manual testing of software code changes across multiple builds is time-consuming and error-prone, as developers must identify which specific changes cause software builds to malfunction, often due to dependent library updates.
Innovation Solution
An automated system that identifies problematic code changes by analyzing commit logs, aggregating history, and iteratively testing code commits to determine the earliest commit causing a broken build, generating a suggested patch for correction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual testing is used to identify problematic code changes, then developers can detect software build failures, but the process becomes time-consuming and error-prone
Solution Approach 1:
The patent replaces manual mechanical testing processes with an automated computer-implemented system. The system automatically retrieves commit logs, aggregates software project histories, identifies problematic commits through iterative testing, and generates patches without human intervention, thereby eliminating time consumption and human error while maintaining detection accuracy.
Solution Approach 2:
The system enables self-service by automatically performing the entire code change detection process without requiring developer involvement. The computer-implemented system independently retrieves data, analyzes commit logs, executes iterative testing to identify problematic changes, and generates corrective patches, allowing the software development process to self-correct build failures.
2Measurement precision
If developers manually test multiple software builds to identify problematic changes, then they can locate the specific code commit causing failures, but the complexity of tracking changes across dependent libraries increases
Solution Approach 1:
The patent segments the complex task of identifying problematic code changes into distinct automated steps: retrieving commit logs, aggregating software project histories, iteratively testing individual commits, and generating patches. This segmentation simplifies the overall process by breaking down the complex analysis into manageable automated operations that the computer system executes systematically.
Solution Approach 2:
The computer-implemented system acts as an intermediary between the complex ecosystem of software projects and dependent libraries. It automatically manages the retrieval, aggregation, and analysis of commit logs across multiple projects, shielding developers from the complexity of tracking changes through dependent libraries while precisely identifying the problematic commit.
3Productivity
If automated systems are implemented to identify problematic code changes, then testing time is reduced, but the complexity of the detection system increases
Solution Approach 1:
The computer-implemented system performs multiple functions within a single automated framework: retrieving commit logs, aggregating software project histories, iteratively testing code commits, identifying problematic changes, and generating patches. This multi-functionality consolidates what would otherwise require multiple separate tools and processes into one unified system, improving productivity while managing complexity through integration.
Data Source
AI summary
Problematic code changes that broke a software build can be identified. For example, a system can identify a broken software build and a last stable software-build associated with a software project, and generate a history of code commits associated with the software project based on commit logs from commit repositories. The code commits in the history were applied to the software project after the last stable software-build and before the broken software build. The system can then iteratively test the code commits in the history to determine a problematic code-commit that is at least partially responsible for the broken software build.


