Automatically building software projects
First Claim
Patent Images
1. A system comprising:
- one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising;
receiving, by a source code analysis system, a request to perform an instrumented build of a snapshot of a software project;
initiating, by the source code analysis system, the instrumented build of the snapshot of the software project by issuing one or more build commands on a build system for the snapshot, wherein the build system comprises an operating system;
intercepting, by the source code analysis system, a call from the build system to the operating system, where the call references a file system path;
determining that the file system path does not exist on the build system;
determining whether the file system path is referencing a directory or a file;
in response to determining that the file system path is referencing the directory, bypassing the call by providing an indication to the build system that the call to the file system path was successful despite the directory not existing on the build system; and
in response to determining that the file system path is referencing the file;
searching for one or more source code packages having a filename of the file;
identifying a source code package to install having the filename;
installing the source code package on the build system; and
after installing the source code package on the build system, executing the intercepted call.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for automatically identifying and installing missing packages during an instrumented build. One of the methods includes intercepting, by a source code analysis system, a call from a build system that references a file system path. If the file system path does not exist on the build system, a search is performed to identify a source code package having a filename in the file system path, and the source code package is installed on the build system. After installing the source code package on the build system, the intercepted call is executed.
26 Citations
20 Claims
-
1. A system comprising:
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising; receiving, by a source code analysis system, a request to perform an instrumented build of a snapshot of a software project; initiating, by the source code analysis system, the instrumented build of the snapshot of the software project by issuing one or more build commands on a build system for the snapshot, wherein the build system comprises an operating system; intercepting, by the source code analysis system, a call from the build system to the operating system, where the call references a file system path; determining that the file system path does not exist on the build system; determining whether the file system path is referencing a directory or a file; in response to determining that the file system path is referencing the directory, bypassing the call by providing an indication to the build system that the call to the file system path was successful despite the directory not existing on the build system; and in response to determining that the file system path is referencing the file; searching for one or more source code packages having a filename of the file; identifying a source code package to install having the filename; installing the source code package on the build system; and after installing the source code package on the build system, executing the intercepted call. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A computer-implemented method comprising:
-
receiving, by a source code analysis system, a request to perform an instrumented build of a snapshot of a software project; initiating, by the source code analysis system, the instrumented build of the snapshot of the software project by issuing one or more build commands on a build system for the snapshot, wherein the build system comprises an operating system; intercepting, by the source code analysis system, a call from the build system to the operating system, where the call references a file system path; determining that the file system path does not exist on the build system; in response to the determining that the file system path does not exist on the build system, searching for one or more source code packages having a filename in the file system path; identifying a source code package to install having the filename in the file system path, wherein identifying the source code package to install comprises (i) determining that multiple packages provide the filename in the file system path, (ii) determining which package of the multiple packages has the shortest name, and (iii) selecting a specific package having the shortest name as the source code package to install; installing the source code package on the build system; and after installing the source code package on the build system, executing the intercepted call. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer program product, encoded on one or more hardware storage devices, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
-
receiving, by a source code analysis system, a request to perform an instrumented build of a snapshot of a software project; initiating, by the source code analysis system, the instrumented build of the snapshot of the software project by issuing one or more build commands on a build system for the snapshot, wherein the build system comprises an operating system; intercepting, by the source code analysis system, a call from the build system to the operating system, where the call references a file system path; determining that the file system path does not exist on the build system; in response to the determining that the file system path does not exist on the build system, searching for one or more source code packages having a filename in the file system path; identifying a source code package to install having the filename in the file system path; installing the source code package on the build system; after installing the source code package on the build system, executing the intercepted call; intercepting, by the source code analysis system, a second call from the build system, where the second call references a second file system path; determining that the second file system path is a directory of a specific package; and returning, to the build system, an indication that the intercepted second call succeeded without installing the specific package. - View Dependent Claims (17, 18, 19, 20)
-
Specification