IP Library › Granted Patent US 12,020,002
Granted Patent B2
US 12,020,002 · App. 17/693,967 · Granted Jun 25, 2024

Library upgrade method, apparatus, and system

Inventors: Aditya T. Kadam (Pune, IN); Swapnil S. Mahajan (Jalgaon, IN)
Assignee: DevFactory FZ-LLC
G06F8/30G06F8/36G06F8/41G06F8/65G06F8/71G06F8/72G06F9/44521G06F11/3688G06F21/105G06F21/577G06F21/1073G06F2221/033G06Q50/184
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,020,002
App. No.
17/693,967
Granted
Jun 25, 2024
Kind
B2
Abstract

A method and apparatus are disclosed for upgrading libraries in a source code program by evaluating libraries in the source code program for predetermined selection criteria specifying library performance limitations to identify at least a first library which does not meet the plurality of predetermined selection criteria and then identifying a first alternative library that is suitable for substitution for the first library so that the source code program may be automatically modified to replace the first library with the first alternative library, thereby generating a modified source code program having an upgraded library functionality.

Claims (53)

1. A method performed by a device having a processor and memory for enhancing operable functionality of a source code program, comprising:

receiving, by the device, a source code program submitted by a developer;

identifying, by the device, one or more libraries in the source code program;

evaluating, by the device, each of the one or more libraries for a plurality of predetermined selection criteria specifying library performance limitations to identify at least a first library which does not meet the plurality of predetermined selection criteria;

identifying, by the device, at least a first alternative library that is suitable for substitution for the first library; and

automatically modifying the source code program to replace the first library with the first alternative library, thereby generating a modified source code program having an upgraded library functionality;

wherein automatically modifying the source code program comprises:

finding all API call references to the first library in the source code program;

running a test suite on the source code program to get coverage data for each file in the source code program;

determining if there are a minimum number of API call references to at least one test case in the first library;

replacing the first library in the source code program with the first alternative library to generate a modified source code program if the minimum number of API call references is met; and

compiling and building the modified source code program.

2. The method of claim 1 , where receiving the source code program comprises committing to a library upgrade engine source code and binary files.

3. The method of claim 1 , where evaluating each of the one or more libraries comprises evaluating, by the device, each of the one or more libraries for a security vulnerability selection criteria specifying a library security vulnerability that is published in a database repository.

4. The method of claim 1 , where evaluating each of the one or more libraries comprises evaluating, by the device, each of the one or more libraries for a license risk selection criteria specifying a library license risk for an organization or product.

5. The method of claim 1 , where evaluating each of the one or more libraries comprises evaluating, by the device, each of the one or more libraries for a compliance policy selection criteria specifying a library compliance policy requirement for an organization or product.

6. The method of claim 1 , where identifying a first alternative library comprises identifying a current or updated version of the first library as the first alternative library that meets the plurality of predetermined selection criteria.

7. The method of claim 1 , where the plurality of predetermined selection criteria comprises a library age criterion, library popularity criterion, and current support status criterion.

8. A non-transitory, computer program product comprising at least one recordable medium having stored thereon executable instructions and data which, when executed by at least one processing device, cause the at least one processing device to enhance operable functionality of a source code program by:

receiving a source code program submitted by a developer;

identifying one or more libraries in the source code program;

evaluating each of the one or more libraries for a plurality of predetermined selection criteria specifying library performance limitations to identify at least a first library which does not meet the plurality of predetermined selection criteria;

identifying at least a first alternative library that is suitable for substitution for the first library; and

automatically modifying the source code program to replace the first library with the first alternative library, thereby generating a modified source code program having an upgraded library functionality;

wherein automatically modifying the source code program comprises:

finding all API call references to the first library in the source code program;

running a test suite on the source code program to get coverage data for each file in the source code program;

determining if there are a minimum number of API call references to at least one test case in the first library;

replacing the first library in the source code program with the first alternative library to generate a modified source code program if the minimum number of API call references is met; and

compiling and building the modified source code program.

9. The non-transitory, computer program product of claim 8 , wherein the computer readable program, when executed on the system, causes the at least one processing device to evaluate each of the one or more libraries by evaluating each of the one or more libraries for a security vulnerability selection criteria specifying a library security vulnerability that is published in a database repository.

10. The non-transitory, computer program product of claim 8 , wherein the computer readable program, when executed on the system, causes tire at least one processing device to evaluate each of the one or more libraries by evaluating each of the one or more libraries for a license risk selection criteria specifying a library license risk for an organization or product.

11. The non-transitory, computer program product of claim 8 , wherein the computer readable program, when executed on the system, causes the at least one processing device to evaluate each of the one or more libraries by each of the one or more libraries for a compliance policy selection criteria specifying a library compliance policy requirement for an organization or product.

12. The non-transitory, computer program product of claim 8 , wherein the computer readable program, when executed on the system, causes the at least one processing device to identify a first alternative library by identifying a current or updated version of the first library as the first alternative library that meets the plurality of predetermined selection criteria.

13. The non-transitory, computer program product of claim 8 , where the plurality of predetermined selection criteria comprises a library age criterion, library popularity criterion, and current support status criterion.

14. A system comprising:

one or more processors;

a memory coupled to at least one of the processors; and

a set of instructions stored in the memory and executed by at least one of the processors to enhance operable functionality of a software program, wherein the set of instructions are executable to perform actions of:

receiving a source code program submitted by a developer;

identifying one or more libraries in the source code program;

evaluating each of the one or more libraries for a plurality of predetermined selection criteria specifying library performance limitations to identify at least a first library which does not meet the plurality of predetermined selection criteria;

identifying at least a first alternative library- that is suitable for substitution for the first library, and

automatically modifying the source code program to replace the first library with the first alternative library, thereby generating a modified source code program having an upgraded library functionality;

wherein automatically modifying the source code program comprises:

finding all API call references to the first library in the source code program;

running a test suite on the source code program to get coverage data for each file in the source code program;

determining if there are a minimum number of API call references to at least one test case in the first library;

replacing the first library in the source code program with the first alternative library to generate a modified source code program if the minimum number of API call references is met; and

compiling and building the modified source code program.

15. The system of claim 14 , where evaluating each of the one or more libraries evaluating for a security vulnerability selection criteria specifying a library security vulnerability that is published in a database repository, for a license risk selection criteria specifying a library license risk for an organization or product, or for a compliance policy selection criteria specifying a library compliance policy requirement for an organization or product.

16. The system of claim 14 , where identifying a first alternative library comprises identifying a current or updated version of the first library as the first alternative library that meets the plurality of predetermined selection criteria.

17. The system of claim 14 , where the plurality of predetermined selection criteria comprises a library age criterion, library popularity criterion, and current support status criterion.

Continuity (3)
Continuation 16863320 · Apr 30, 2020
Continuation 15701727 · Sep 12, 2017
Related Publication 20220413809A1 · Dec 29, 2022