IP Library Granted Patent US 11,200,150
Granted Patent B2
US 11,200,150 · App. 16/740,642 · Granted Dec 14, 2021

Multi-tenanted build system with visualization of dynamic build progress

Inventors: Weijia Fu (Chengdu, CN); Robert J. Bell, IV (Mont Vernon, NH); Robert A. Ballantyne (Mansfield, MA); Jun Zhao (Wangcang, CN)
Assignee: EMC IP Holding Company LLC
G06F11/3664G06F11/3624
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 11,200,150
App. No.
16/740,642
Granted
Dec 14, 2021
Kind
B2
Abstract

A method of operating a build system includes, in a build engine, concurrently executing a plurality of build processes for corresponding heterogeneous builds, the build processes generating respective streams of build progress information in a build engine output. A build monitor process is executed which is configured and operative at regular intervals to (1) collect current-interval build progress information from the build engine output, and (2) use the current-interval build progress information to refresh a build-organized summary on a user interface device, the build-organized summary having distinct display sections summarizing build process history for the respective build processes.

Claims (33)

1. A method of operating a build system wherein the build system including one or more computerized devices and respective interfaces to a management station, a repository, development systems, and production systems, wherein (i) the management station orchestrates operation of the build system under control of a human management user and includes a user interface, (ii) the repository stores created builds of an application along with versions of source components of the application provided by the development systems as used by developers and/or application maintenance personnel, (iii) the production systems are configured and operative to deploy new builds from the repository to end-users of the application, the method comprising:

in a build engine, concurrently executing a plurality of build processes for corresponding heterogeneous builds of the application, the build processes generating respective streams of build progress information in a build engine output; and

executing a build monitor process configured and operative at regular intervals to (1) collect current-interval build progress information from the build engine output, and (2) use the current-interval build progress information to refresh a build-organized summary on a user interface device, the build-organized summary having distinct display sections summarizing build process history for respective build processes,

wherein each of the build processes includes a respective source checkout operation, a subsequent build operation using checked-out sources, and completion signaling operation which signals to the build monitor process that the respective build processes have been completed;

wherein the build monitor process is a looping process that collects and displays the current-interval build progress information at the regular intervals, each regular interval including a testing step for determining whether the current interval is complete by determining whether it has received completion signals from all the build processes as generated in their respective completion signaling operations; and

wherein each of the regular intervals includes collecting the current-interval build progress information, updating the build-organized summary with the current-interval build process information, and the testing step, and wherein, when not all completion signals have been received in the testing step, then the build monitor process sleeps for a determined period after which it awakens and executes another loop.

2. The method of claim 1 , wherein the build system is a multi-tenanted build system in which each of the builds includes a respective set of component builds for constituent components of the application, and wherein the streams of build progress information include per-component progress information generated by respective ones of the component builds as they are executed.

3. The method of claim 2 , wherein each stream of build progress information includes a series of lines or records of progress information is tagged with a name of a corresponding constituent component that the line or record relates to, the name being used to process the line or record information into the build-organized summary.

4. The method of claim 2 , wherein one or more of the components are cached components that do not require rebuilding for a current build and are obtained from a cache of previous component builds, and the build-organized summary includes a cached indicator for the cached components indicating that the components are being obtained from cache and have no associated current build activity.

5. The method of claim 2 , wherein the constituent components are the source components of the application including one or more of routines, functions, sub-programs, and library elements, provided by development systems as used by developers and/or application maintenance personnel.

6. The method of claim 1 , wherein the heterogeneous builds include (1) a retail build being a regular version for release to customers, and (2) a debug build being a specialized build for use by developers in debugging and refining application code.

7. The method of claim 1 , wherein the build-organized summary is a summary table having respective columns in which the build progress information for the respective build processes is displayed.

8. The method of claim 7 , wherein:

the build system is a multi-tenanted build system in which each of the builds includes a respective set of component builds for constituent components of the application, and the streams of build progress information include per-component progress information generated by respective ones of the component builds as they are executed; and

the summary table includes rows for the respective constituent components of the application.

9. The method of claim 8 , wherein each of the rows includes, for the respective constituent component (1) a component name, (2) a digest of respective component sources that have been committed to the build, and (3), for each of the builds, (i) a status indicating whether the component has been processed for the current build, and if so its completion status, (ii) a time value identifying elapsed time during processing of the component, (iii) a cache key referring to a cached version of the component when the component is not being rebuilt for the current build, and (iv) an artifact link to related data of the component.

10. The method of claim 9 , wherein digests and cache keys are hyperlinks to other pages of information specific to the versions of the components included in the current build.

11. A system of one or more computerized devices configured and operative as a build system, including respective interfaces to a management station, a repository, development systems, and production systems, wherein (i) the management station orchestrates operation of the build system under control of a human management user and includes a user interface, (ii) the repository stores created builds of an application along with versions of source components of the application provided by the development systems as used by developers and/or application maintenance personnel, (iii) the production systems are configured and operative to deploy new builds from the repository to end-users of the application, the build system including processing circuitry and memory storing computer program instructions executed by the processing circuitry to cause the build system to perform operations including:

in a build engine, concurrently executing a plurality of build processes for corresponding heterogeneous builds of the application, the build processes generating respective streams of build progress information in a build engine output;

executing a build monitor process configured and operative at regular intervals to (1) collect current-interval build progress information from the build engine output, and (2) use the current-interval build progress information to refresh a build-organized summary on a user interface device, the build-organized summary having distinct display sections summarizing build process history for respective build processes,

wherein each of the build processes includes a respective source checkout operation, a subsequent build operation using checked-out sources, and completion signaling operation which signals to the build monitor process that the respective build processes have been completed;

wherein the build monitor process is a looping process that collects and displays the current-interval build progress information at regular intervals, each regular interval including a testing step for determining whether the current interval is complete by determining whether it has received completion signals from all the build processes as generated in their respective completion signaling operations; and

wherein each of the regular intervals includes collecting the current-interval build progress information, updating the build-organized summary with the current-interval build process information, and the testing step, and wherein, when not all completion signals have been received in the testing step, then the build monitor process sleeps for a determined period after which it awakens and executes another loop.

12. The system of claim 11 , wherein the build system is a multi-tenanted build system in which each of the builds includes a respective set of component builds for constituent components of the application, and wherein the streams of build progress information include per-component progress information generated by respective ones of the component builds as they are executed.

13. The system of claim 12 , wherein each stream of build progress information includes a series of lines or records of progress information is tagged with a name of a corresponding constituent component that the line or record relates to, the name being used to process the line or record information into the build-organized summary.

14. The system of claim 12 , wherein one or more of the components are cached components that do not require rebuilding for a current build and are obtained from a cache of previous component builds, and the build-organized summary includes a cached indicator for the cached components indicating that the components are being obtained from cache and have no associated current build activity.

15. The system of claim 12 , wherein the constituent components are the source components of the application including one or more of routines, functions, sub-programs, and library elements, provided by development systems as used by developers and/or application maintenance personnel.

16. The system of claim 11 , wherein the heterogeneous builds include (1) a retail build being a regular version for release to customers, and (2) a debug build being a specialized build for use by developers in debugging and refining application code.

17. The system of claim 11 , wherein the build-organized summary is a summary table having respective columns in which the build progress information for the respective build processes is displayed.

18. The system of claim 17 , wherein:

the build system is a multi-tenanted build system in which each of the builds includes a respective set of component builds for constituent components of the application, and the streams of build progress information include per-component progress information generated by respective ones of the component builds as they are executed; and the summary table includes rows for the respective constituent components of the application.

19. The system of claim 18 , wherein each of the rows includes, for the respective constituent component (1) a component name, (2) a digest of respective component sources that have been committed to the build, and (3), for each of the builds, (i) a status indicating whether the component has been processed for the current build, and if so its completion status, (ii) a time value identifying elapsed time during processing of the component, (iii) a cache key referring to a cached version of the component when the component is not being rebuilt for the current build, and (iv) an artifact link to related data of the component.

20. The system of claim 19 , wherein digests and cache keys are hyperlinks to other pages of information specific to the versions of the components included in the current build.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2020
From: FU, WEIJIA; BELL, ROBERT J., IV; BALLANTYNE, ROBERT A.; ZHAO, JUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051818/0576 →