IP Library Granted Patent US 9,535,689
Granted Patent B2
US 9,535,689 · App. 14/587,463 · Granted Jan 3, 2017

Source control management system with contingent dependency handling

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 9,535,689
App. No.
14/587,463
Granted
Jan 3, 2017
Kind
B2
Abstract

Systems and methods for managing dependencies in a source control management system or revision control system are provided. A request to commit a first modified component of a software application may be received. The software application may include a plurality of components. In response to the request to commit the first modified component, a blocking condition may be identified. The blocking condition may be a dependency of the first modified component, in that the first modified component depends upon a second component of the software application. The second component may not satisfy the dependency. A request to commit a modified version of the second component may be received. A determination may be made that the modified version of the second component satisfies the dependency of the first modified component upon the second component. The first modified component and second modified component may then be committed.

Claims (66)

1. A system, comprising:

a source control management system comprising a first non-transitory memory and a first one or more hardware processors coupled to the first non-transitory memory; and

a dependency management system comprising a second non-transitory memory and a second one or more hardware processors coupled to the second non-transitory memory;

wherein the hardware processors of the source control management system are configured to read instructions from the first non-transitory memory to cause the system to perform operations comprising:

receiving a request to commit a first modified component of a software application, the software application comprising a plurality of components including at least a first component and a second component;

transmitting, to the dependency management system, the request to commit the first modified component of the software application;

subsequently receiving a request to commit a modified version of the second component of the software project;

transmitting to the dependency management system, the request to commit the modified version of the second component of the software application; and

based on an approval by the dependency management system, committing the first modified component and the second modified component;

and wherein the hardware processors of the dependency management system are configured to read instructions from the second non-transitory memory to cause the system to perform operations comprising:

in response to the request to commit the first modified component, identifying a blocking condition in response to the request to commit the first modified component, wherein the blocking condition is a dependency of the first modified component upon a current version of the second component of the software application, wherein the current version of the second component does not satisfy the dependency;

in response to identifying the blocking condition, storing, in a temporary repository, the first modified component;

in response to the request to commit the second modified component, determining that the modified version of the second component satisfies the dependency of the first modified component upon the second component; and

transmitting, to the source control management system, an approval for committing the first and second modified components.

2. The system of claim 1 , wherein identifying the blocking condition based on the request to commit the first modified component further includes:

monitoring multiple requests to commit modified versions of the second component.

3. The system of claim 1 , wherein the second operations further comprise:

determining an identity of a user transmitting the request to commit the first modified component of the software project; and

transmitting, to the user transmitting the request to commit the first modified component of the software project, an update message upon committing the first modified component and the second modified component.

4. The system of claim 1 , wherein identifying a blocking condition in response to the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an instruction contained within the request to commit the first modified component.

5. The system of claim 1 , wherein identifying a blocking condition based on the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component.

6. The system of claim 5 , wherein identifying a blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component further includes identifying a name of the second component of the software project upon which the dependency exists.

7. The system of claim 1 , wherein the dependency of the first modified component is a dependency upon a particular application programming interface.

8. A method for managing software components of a software project, comprising:

receiving, at a source control management system, a request to commit a first modified component of a software application, the software application comprising a plurality of components including at least a first component and a second component;

transmitting, by the source control management system to a dependency management system, the request to commit the first modified component of the software application;

identifying, by the dependency management system, a blocking condition, wherein the blocking condition is a dependency of the first modified component upon a current version of the second component of the software application, wherein the current version of the second component does not satisfy the dependency;

storing, by the dependency management system in a temporary repository, the first modified component;

subsequently receiving, at the source control management system, a request to commit a modified version of the second component of the software application;

transmitting, by the source control management system, the request to commit the modified version of the second component of the software application to the dependency management system;

determining, by the dependency management system, that the modified version of the second component satisfies the dependency of the first modified component upon the second component;

transmitting, by the dependency management system to the source control management system, an approval for committing the first and second modified components; and

committing, by the source control management system, the first modified component and the second modified component.

9. The method of claim 8 , wherein identifying the blocking condition based on the request to commit the first modified component further comprises:

monitoring multiple requests to commit modified versions of the second component.

10. The method of claim 8 , further comprising:

determining an identity of a user transmitting the request to commit the first modified component of the software project; and

transmitting, to the user transmitting the request to commit the first modified component of the software project, an update message upon committing the first modified component and the second modified component.

11. The method of claim 8 , wherein identifying a blocking condition in response to the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an instruction contained within the request to commit the first modified component.

12. The method of claim 8 , wherein identifying a blocking condition based on the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component.

13. The method of claim 12 , wherein identifying a blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component further includes identifying a name of the second component of the software project upon which the dependency exists.

14. The method of claim 8 , wherein the dependency of the first modified component is a dependency upon a particular application programming interface.

15. A non-transitory machine-readable medium having stored thereon machine-readable instructions executable to cause one or more machines to perform operations comprising:

receiving, at a source control management system, a request to commit a first modified component of a software application, the software application comprising a plurality of components including at least a first component and a second component;

transmitting, by the source control management system to a dependency management system, the request to commit the first modified component of the software application;

identifying, by the dependency management system, a blocking condition, wherein the blocking condition is a dependency of the first modified component upon a current version of the second component of the software application, wherein the current version of the second component does not satisfy the dependency;

storing, by the dependency management system in a temporary repository, the first modified component;

subsequently receiving a request to commit a modified version of the second component of the software application;

transmitting, by the source control management system, the request to commit the modified version of the second component of the software application to the dependency management system;

determining, by the dependency management system, that the modified version of the second component satisfies the dependency of the first modified component upon the second component;

transmitting, by the dependency management system to the source control management system, an approval for committing the first and second modified components; and

committing, by the source control management system, the first modified component and the second modified component.

16. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

monitoring multiple requests to commit modified versions of the second component.

17. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

determining an identity of a user transmitting the request to commit the first modified component of the software project; and

transmitting, to the user transmitting the request to commit the first modified component of the software project, an update message upon committing the first modified component and the second modified component.

18. The non-transitory machine-readable medium of claim 15 , wherein identifying a blocking condition in response to the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an instruction contained within the request to commit the first modified component.

19. The non-transitory machine-readable medium of claim 15 , wherein identifying a blocking condition based on the request to commit the first modified component further includes:

identifying the blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component.

20. The non-transitory machine-readable medium of claim 19 , wherein identifying a blocking condition in response to the request to commit the first modified component based upon an analysis of one or more lines of code within the first modified component further includes identifying a name of the second component of the software project upon which the dependency exists.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2015
From: EBAY INC.
To: PAYPAL, INC.
Reel/Frame 036171/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: BLITZSTEIN, JARED
To: EBAY, INC.
Reel/Frame 034698/0913 →