Build Environment Tracking via Virtualized Dependency Database

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software building and packaging processes lack reproducibility and auditability, as they require tracking of different environments and versions, making it difficult to reproduce builds accurately.

Innovation Solution

A method and apparatus that utilize a project object model (POM) to build source code, download necessary plugins, and track build dependencies, ensuring reproducibility by inserting information into a database and using tools like Maven and Koji to create a controlled build environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If different software packages are built using different environments and versions, then build flexibility and adaptability are improved, but build reproducibility and auditability deteriorate

Engineering Contradiction:
Improvebuild flexibilityVSAvoidbuild reproducibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent creates a virtualized build environment that copies and encapsulates all necessary build dependencies, tools, and configurations into a reproducible artifact. This virtual environment can be cloned and reused across different systems, ensuring that builds produce identical results regardless of the physical hardware or OS underlying the build system.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a virtualization layer as an intermediary between the build process and the host system. This virtual environment acts as a mediator that isolates build dependencies from the host environment, allowing flexible dependency management while ensuring reproducible builds through consistent virtualization of the build context.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual tracking of build environments and versions is performed, then build auditability is improved, but time consumption and operational complexity increase

Engineering Contradiction:
Improvebuild auditabilityVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The virtualized build environment automatically records and manages all build metadata, dependencies, and environment configurations without requiring manual intervention. The system self-tracking capabilities eliminate the need for manual audit trails, as the virtual environment inherently captures all necessary information for reproducibility and auditing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements automated feedback mechanisms where the build system automatically logs, tracks, and reports build environment details, dependencies, and results. This continuous automated feedback loop eliminates manual tracking requirements and provides immediate auditability information without time-consuming manual processes.

Inventive Principle:
Principle #23Feedback

3Reliability

If comprehensive tracking of build dependencies is implemented, then build reproducibility is improved, but system complexity and overhead increase

Engineering Contradiction:
Improvebuild reproducibilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the tracking of build dependencies, environment configuration, and build execution into a single integrated virtualized build environment. By combining these functions into one unified system, the patent reduces overall complexity compared to having separate tracking mechanisms, while still achieving comprehensive reproducibility.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8949788B2Building and packaging software
Publication Date: 2015.02.03 RED HAT INC
  • US8949788B2 patent drawing
  • US8949788B2 patent drawing
  • US8949788B2 patent drawing

AI summary

A method and apparatus for building a source code based on a project object model (POM) from a source control and for tracking a build environment of the source code is described. Plugins to complete the build as configured in the POM are downloaded from an external plugin repository. A local plugin repository is scanned to determine which plugins have already been downloaded. The local plugin repository is rescanned to determine whether any additional plugins and associated plugins POM files were downloaded during the build as build dependencies. Information of one or more referenced files is inserted into a database wherein the referenced files are identified as build dependencies. Information about the newly-built plugins and associated plugins POM files in the output directory are extracted and added to the database for use by subsequent builds.