Automated Code Commit Detection for Broken Builds

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedetection accuracyVSAvoidtesting duration
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvecommit identification accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated systems are implemented to identify problematic code changes, then testing time is reduced, but the complexity of the detection system increases

Engineering Contradiction:
Improvetesting efficiencyVSAvoiddetection system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10990514B2Detecting problematic code changes
Publication Date: 2021.04.27 RED HAT INC
  • US10990514B2 patent drawing
  • US10990514B2 patent drawing
  • US10990514B2 patent drawing

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.