# US 10,769,055 B2 · Dynamically revising an in-process build

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,769,055 B2
- Document ID: US10769055B2
- Status: Granted
- Kind: B2
- Application number: 16/111,296
- Filed: 2018-08-24
- Published: 2020-02-27
- Granted: 2020-09-08
- Earliest claimed: 2018-08-24
- Assignees: Red Hat Israel, Ltd.
- Applicants: Red Hat Israel, Ltd.
- Inventors: Arie Bregman; Nir Magnezi
- Web page: https://patentgrep.com/patent/US10769055B2

## CPC

- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/3668: Testing of software
- G06F 8/41: Compilation
- G06F 8/423: {Preprocessors}
- G06F 8/447: {Target code generation}
- G06F 8/48: {Incremental compilation (software reuse G06F8/36)}
- G06F 8/60: Software deployment
- G06F 8/70: Software maintenance or management
- G06F 11/36: Prevention of errors by analysis, debugging or testing of software
- G06F 11/3672: {Test management}
- G06F 11/368: {for test version control, e.g. updating test cases to a new software version}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Dynamically revising an in-process build is disclosed. A build system receives a build configuration comprising information that defines a plurality of successive stages. Each stage includes at least one step, and one or more of the stages include a plurality of successive steps. The build configuration defines a build process that, when completed, alters a state of a storage device. The build system initiates a build process sequence on the build configuration. The build system, after initiating the build process sequence, receives notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration. A determination is made that performance of the particular stage has or has not begun. In response to the determination, a subsequent build process action is performed.

## Claims

### Claim 1

A method comprising:
receiving, by a build system executing on a computing device comprising a processor device, a build configuration comprising information that defines a plurality of successive stages, each stage comprising at least one step, and one or more of the stages comprising a plurality of successive steps, the build configuration defining a build process that, when completed, alters a state of a storage device, wherein the build configuration defines at least one of:
a compile stage comprising a copying step configured to copy a source file to a destination, and a compilation step configured to generate a new executable file from the source file;
a provisioning stage comprising a copying step configured to implement the executable file in a test environment; or
a testing stage comprising an initiation step configured to initiate the executable file as a running process, and an input step to provide the running process with a plurality of predetermined inputs;
initiating, by the build system, a build process sequence on the build configuration;
receiving, by the build system after initiating the build process sequence and before the build process sequence terminates, notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration;
making a determination that performance of the particular stage has not begun;
in response to the determination, incorporating the revision into the particular stage defined in the build configuration; and
continuing the build process after incorporating the revision into the particular stage defined in the build configuration.

### Claim 2 (depends on 1)

The method of claim 1 wherein initiating the build process sequence on the build configuration comprises queuing the build configuration in a build queue containing a plurality of other build configurations, and wherein making the determination that performance of the particular stage has not begun comprises making the determination that the build configuration is in the build queue and that performance of the particular stage has not begun.

### Claim 3 (depends on 2)

The method of claim 2 further comprising:
maintaining a same location of the build configuration in the build queue after altering the build configuration.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
initiating performance of a first stage of the build process prior to receiving the notification.

### Claim 5 (depends on 4)

The method of claim 4 further comprising halting the build process after receiving the notification and before incorporating the revision into the particular stage defined in the build configuration.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
receiving, by a build generator of the build system via a user interface, a user input that contains a revision to the build configuration;
generating a build revision configuration that reflects the revision to the build configuration; and
sending the build revision configuration to a build executor of the build system.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
receiving a notification that a file associated with the build process requires processing by the build process;
generating a build revision configuration that reflects a revision to the build configuration based on the file; and
sending the build revision configuration to a build executor of the build system.

### Claim 8

A computing device, comprising:
a memory; and
a processor device coupled to the memory to:
receive a build configuration comprising information that defines a plurality of successive stages, each stage comprising at least one step, and one or more of the stages comprising a plurality of successive steps, the build configuration defining a build process that, when completed, alters a state of a storage device, wherein the build configuration defines at least one of:
a compile stage comprising a copying step configured to copy a source file to a destination, and a compilation step configured to generate a new executable file from the source file;
a provisioning stage comprising a copying step configured to implement the executable file in a test environment; or
a testing stage comprising an initiation step configured to initiate the executable file as a running process, and an input step to provide the running process with a plurality of predetermined inputs;
initiate a build process sequence on the build configuration;
receive, after initiating the build process sequence and before the build process sequence terminates, notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration;
make a determination that performance of the particular stage has not begun; and
in response to the determination, incorporate the revision into the particular stage defined in the build configuration; and
continue the build process after incorporating the revision into the particular stage defined in the build configuration.

### Claim 9 (depends on 8)

The computing device of claim 8 wherein to initiate the build process sequence on the build configuration, the processor device is further to queue the build configuration in a build queue containing a plurality of other build configurations, and wherein to make the determination that performance of the particular stage has not begun, the processor device is further to make the determination that the build configuration is in the build queue and that performance of the particular stage has not begun.

### Claim 10 (depends on 8)

The computing device of claim 8 wherein the processor device is further to:
initiate performance of a first stage of the build process prior to receiving the notification.

### Claim 11

A method comprising:
receiving, by a build system executing on a computing device comprising a processor device, a build configuration comprising information that defines a plurality of successive stages, each stage comprising at least one step, and one or more of the stages comprising a plurality of successive steps, the build configuration defining a build process that, when completed, alters a state of a storage device;
initiating, by the build system, a build process sequence on the build configuration;
receiving, by the build system after initiating the build process sequence and before the build process sequence terminates, notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration;
making a determination that performance of the particular stage has begun; and
in response to the determination:
terminating the build process;
incorporating the revision into the particular stage defined in the build configuration; and
restarting the build process from a beginning of the build configuration.

### Claim 12

A computing device, comprising:
a memory; and
a processor device coupled to the memory to:
receive a build configuration comprising information that defines a plurality of successive stages, each stage comprising at least one step, and one or more of the stages comprising a plurality of successive steps, the build configuration defining a build process that, when completed, alters a state of a storage device;
initiate a build process sequence on the build configuration;
receive, after initiating the build process sequence and before the build process sequence terminates, notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration;
make a determination that performance of the particular stage has begun; and
in response to the determination:
terminate the build process;
incorporate the revision into the particular stage defined in the build configuration; and
restart the build process from a beginning of the build configuration.
