News Column

Patent Application Titled "Using Build History Information to Optimize a Software Build Process" Published Online

February 20, 2014

By a News Reporter-Staff News Editor at Computer Weekly News -- According to news reporting originating from Washington, D.C., by VerticalNews journalists, a patent application by the inventors Bonanno, James M. (Ocean Isle Beach, NC); Doyle, Ronald P. (Raleigh, NC); Fraenkel, Michael L. (Pittsboro, NC); Tarter, Aaron J. (Apex, NC), filed on August 28, 2013, was made available online on February 6, 2014.

The assignee for this patent application is International Business Machines Corporation.

Reporters obtained the following quote from the background information supplied by the inventors: "There are hosting systems in which developers may upload their source code modules for storage in a source code management (SCM) repository. Examples of such SCM repositories include CVS.TM. and Subversion.TM.. The SCM repository, which contains source code modules, is used to build binary libraries and application modules. The binary libraries and application modules can be stored in a binary repository. Examples of such binary repositories include Redhat Network.TM., Yum.TM., Maven.TM., and CPAN.TM. for example.

"The source code modules are compiled and linked into the binary modules during one or more build processes, and the source code modules have defined dependencies that may determine the possible orders in which the build processes can execute. There may be multiple independent build processes that need to run at any given time, and the build processes may need to decide among multiple possible paths of execution. The dependency information becomes particularly important as the number of libraries/applications that are being built is very large, e.g. over 100 libraries, and where the libraries are rapidly changing. In this case, a great deal of processing power is necessary to keep up with the changes and for efficiency, only the source code modules that are changed should be the rebuilt.

"Depending on the nature of build components, such as the source code modules, and their usefulness as independent components, it might be more efficient to perform the build in such a way as to find failing source code modules first, which is referred to as 'failure first', or to find failing source code modules last, which is referred to as 'failure last'. If the components only have usefulness as a whole, it is better to find failures as soon as possible so they can be fixed and the process can restart. If the components have usefulness independently, or the build process can start at a node in a dependency graph where the process failed last, then it is more efficient to find failure last, because more components will be published before a failure occurs. Unfortunately, it may not be apparent how to optimize the build order of the component source modules for failure first or failure last based on the dependency information alone."

In addition to obtaining background information on this patent application, VerticalNews editors also obtained the inventors' summary information for this patent application: "Methods and systems for optimizing a build order of component source modules comprises creating a dependency graph based on dependency information. Historical build information associated with previous build failures is then used to calculate relative failure factors for paths of the dependency graph; and the relative failure factors are used to determine an order of traversal of the dependency graph during a build process in which component binary modules are built from the component source modules.


"FIG. 1 is a block diagram illustrating an exemplary network system environment in which one embodiment of the present invention may be implemented for optimizing a build order of component source modules.

"FIG. 2 is a flow diagram illustrating a process for optimizing a build order of component source modules.

"FIGS. 3A-3D are diagrams illustrating an example creation of a global reverse dependency graph.

"FIG. 4 is a flow diagram illustrating a process for calculating relative failure factors for paths of the dependency graph."

For more information, see this patent application: Bonanno, James M.; Doyle, Ronald P.; Fraenkel, Michael L.; Tarter, Aaron J. Using Build History Information to Optimize a Software Build Process. Filed August 28, 2013 and posted February 6, 2014. Patent URL:

Keywords for this news article include: Software, International Business Machines Corporation.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC

For more stories covering the world of technology, please see HispanicBusiness' Tech Channel

Source: Computer Weekly News

Story Tools