1. A method, comprising: receiving a plurality of binary libraries sufficient for building a software project without receiving source code for the plurality of binary libraries; receiving a request from a user to modify source code for a first library of the plurality of binary libraries; in response to receiving the request, retrieving the source code for the first library; presenting the source code for the first library to the user; receiving modified source code for the first library; determining, by a processor, that the modified source code necessitates a modification to a second library of the plurality of binary libraries; notifying the user that the modified source code necessitates the modification to the second library, the notifying of the user occurring while the user is modifying the source code; in response to the determination, retrieving source code for the second library; compiling the modified source code to produce compiled modified code; building a revised version of the software project using the compiled modified code and the plurality of binary libraries; testing the revised version of the software project; if the testing identifies a failure, informing the user of the failure; and if the testing does not identify a failure, identifying the plurality of binary libraries and the compiled modified code with a code version identifier associated with the revised version of the software project.