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.