IP Library Granted Patent US 12,314,706
Granted Patent B2
US 12,314,706 · App. 17/717,921 · Granted May 27, 2025

Just-in-time packager build system

Inventors: Leigh Griffin (Waterford, IE); Leonardo Rossetti (São Paulo, BR)
Assignee: Red Hat, Inc.
G06F8/71G06F11/3414G06F11/3428
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,314,706
App. No.
17/717,921
Granted
May 27, 2025
Kind
B2
Abstract

A method includes receiving a software build task, identifying one or more previously executed software build tasks in view of one or more properties of the software build task and determining a set of computing resources to be allocated to a build container for performing the software build task in view of the one or more previously executed software build tasks. The method further includes generating the build container to perform the software build task.

Claims (55)

1. A method comprising:

receiving a software build task;

determining an initial weighting of the software build task in view of a type of the software build task, the initial weighting corresponding to a first amount of resources to be assigned to the software build task;

identifying, by a processing device, one or more previously executed software build tasks that are similar to the software build task, the one or more previously executed software build tasks comprising one or more properties matching the software build task;

determining an updated weighting of the software build task based on a comparison of the type of the software build task and a weight assigned to the one or more previously executed software build tasks with historical usage profiles, wherein the determining the updated weighting includes a determination whether the updated weighting for the software build task is based on resource usage profiles for similar tasks;

determining, by the processing device, a second amount of computing resources to be allocated to a build container for performing the software build task in view of the updated weighting of the software build task; and

generating, by the processing device, the build container to perform the software build task, the build container comprising the second amount of computing resources determined to be allocated to the build container in view of the updated weighting of the software build task.

2. The method of claim 1 , wherein the build container comprises one or more scripts for retrieving and packaging source code of an application.

3. The method of claim 1 , wherein the one or more properties of the software build task comprise one or more of a type of the software build task and a weight associated with the software build task.

4. The method of claim 3 , wherein identifying one or more previously executed software build tasks in view of the one or more properties of the software build task comprises:

comparing the type and the weight of the software build task with the one or more previously executed software build tasks.

5. The method of claim 1 , further comprising:

monitoring a plurality of performance metrics of the build container during execution of the software build task; and

storing a profile of the software build task comprising the plurality of performance metrics.

6. The method of claim 1 , wherein determining the second amount of computing resources to be allocated to the build container for performing the software build task comprises:

identifying resource usage profiles of the one or more previously executed software build tasks; and

determining a set of computing resources in view of the resource usage profiles of the one or more previously executed software build tasks.

7. The method of claim 6 , wherein the resource usage profiles comprise at least one of processing resource usage, network resource usage, input/output bandwidth usage, or memory resource usage associated with executing each of the previously executed software build tasks.

8. A system comprising:

a memory; and

a processing device, operatively coupled to the memory, to:

receive a software build task;

determine an initial weighting of the software build task in view of a type of the software build task, the initial weighting corresponding to a first amount of resources to be assigned to the software build task;

identify one or more previously executed software build tasks that are similar to the software build task, the one or more previously executed software build tasks comprising of one or more properties matching the software build task;

determine an updated weighting of the software build task based on a comparison of the type of the software build task and a weight assigned to the one or more previously executed software build tasks with historical usage profiles, wherein to determine the updated weighting the processing device is to determine whether the updated weighting for the software build task is based on resource usage profiles for similar tasks;

determine a second amount of computing resources to be allocated to a build container for performing the software build task in view of the updated weighting of the software build task; and

generate the build container to perform the software build task, the build container comprising the second amount of computing resources determined to be allocated to the build container in view of the updated weighting of the software build task.

9. The system of claim 8 , wherein the build container comprises one or more scripts to retrieve and package source code of an application.

10. The system of claim 8 , wherein the one or more properties of the software build task comprise a type of the software build task and a weight associated with the software build task.

11. The system of claim 10 , wherein to identify the one or more previously executed software build tasks in view of the one or more properties of the software build task, the processing device is to:

compare the type and the weight of the software build task with the one or more previously executed software build tasks.

12. The system of claim 8 , wherein the processing device is further to:

monitor a plurality of performance metrics of the build container during execution of the software build task; and

store a profile of the software build task comprising the plurality of performance metrics.

13. The system of claim 8 , wherein to determine the second amount of computing resources to be allocated to the build container for performing the software build task, the processing device is to:

identify resource usage profiles of the one or more previously executed software build tasks; and

determine a set of computing resources in view of the resource usage profiles of the one or more previously executed software build tasks.

14. The system of claim 13 , wherein the resource usage profiles comprise at least one of processing resource usage, network resource usage, input/output bandwidth usage, or memory resource usage associated with executing each of the previously executed software build tasks.

15. A non-transitory computer readable storage medium including instructions stored therein, that when executed by a processing device, cause the processing device to:

receive a software build task;

determine an initial weighting of the software build task in view of a type of the software build task, the initial weighting corresponding to a first amount of resources to be assigned to the software build task;

identify, by the processing device, one or more previously executed software build tasks that are similar to the software build task, the one or more previously executed software build tasks comprising one or more properties matching the software build task;

determine an updated weighting of the software build task based on a comparison of the type of the software build task and a weight assigned to the one or more previously executed software build tasks with historical usage profiles, wherein to determine the updated weighting the processing device is to determine whether the updated weighting for the software build task is based on resource usage profiles for similar tasks;

determine, by the processing device, a second amount of computing resources to be allocated to a build container for performing the software build task in view of the updated weighting of the software build; and

generate, by the processing device, the build container to perform the software build task, the build container comprising the second amount of computing resources determined to be allocated to the build container in view of the updated weighting of the software build task.

16. The non-transitory computer readable storage medium of claim 15 , wherein the build container comprises one or more scripts to retrieve and package source code of an application.

17. The non-transitory computer readable storage medium of claim 15 , wherein the one or more properties of the software build task comprise a type of the software build task and a weight associated with the software build task.

18. The non-transitory computer readable storage medium of claim 17 , wherein to identify the one or more previously executed software build tasks in view of the one or more properties of the software build task, the processing device is to:

compare the type and the weight of the software build task with the one or more previously executed software build tasks.

19. The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further to:

monitor a plurality of performance metrics of the build container during execution of the software build task; and

store a profile of the software build task comprising the plurality of performance metrics.

20. The non-transitory computer readable storage medium of claim 15 , wherein to determine the second amount of computing resources to be allocated to the build container for performing the software build task, the processing device is to:

identify resource usage profiles of the one or more previously executed software build tasks; and

determine a set of computing resources in view of the resource usage profiles of the one or more previously executed software build tasks.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2025
From: GRIFFIN, LEIGH; ROSSETTI, LEONARDO
To: RED HAT, INC.
Reel/Frame 070152/0102 →