Efficient detection of architecture related issues during the porting process

US9870223B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9870223-B2
Application numberUS-201614990576-A
CountryUS
Kind codeB2
Filing dateJan 7, 2016
Priority dateJan 7, 2016
Publication dateJan 16, 2018
Grant dateJan 16, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems, methods, and computer program products to perform an operation comprising identifying a first commit of a plurality of commits for a software project, wherein a source code of the first commit is executable in a first system architecture, computing a score for each commit in a first set of the plurality of commits, wherein each score reflects a likelihood of success in porting the source code of the respective commit from the first system architecture to a second system architecture, wherein a version of each commit in the first set of commits is between a version of the first commit and a current version of the software project, identifying one or more of the first set of commits based on the scores for each commit, and building the source code of the one or more of the first set of commits for execution on the second system architecture.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: identifying, by operation of a computer processor based on a search granularity, a source code of a first commit of a plurality of commits for a software project; successfully building the source code of the first commit for a first system architecture and a second system architecture; determining, based on a set of tests run against the built source code of the first commit for the first and second system architectures, that the first commit is a latest working build for the first and second system architectures, wherein a respective number of failures incurred by running the set of tests does not exceed a failure threshold; computing a score for each commit in a first set of the plurality of commits, wherein each score reflects a likelihood of success in porting the source code of the respective commit from the first system architecture to the second system architecture, wherein a version of each commit in the first set of commits is between a version of the first commit and a current version of the software project, wherein a commit status table stores, for each commit in the first set of commits: (i) the score, and (ii) a portion of the source code of the commit; identifying a second commit of the first set of commits based on the scores for each commit; patching the source code of the first commit and the source code of the second commit; building the patched source code of the first and second commits for execution on the second system architecture; determining that the patched source code did not build successfully for execution on the second system architecture based on an error at a first line of the patched source code; and outputting for display: (i) an indication that the patched source code did not build successfully, and (ii) the first line of the patched source code. 2. The method of claim 1 , further comprising: prior to identifying the first commit, receiving a request to port the software project from the first system architecture to the second system architecture; and subsequent to determining that the patched source code did not build successfully, storing an indication that the patched source code did not build successfully. 3. The method of claim 2 , wherein each score is computed based on at least one attribute of the source code of each commit, wherein the score is reduced upon detecting, in respective instances, the presence of each of the attributes comprising: (i) a system call in the source code, (ii) a configuration change to the source code, (iii) a build option, (iv) whether the source code is specific to the first system architecture, and (v) whether the source code is known to call native code in the first system architecture, wherein the score is increased upon detecting, in respective instances, each of the attributes comprising: (i) whether the source code is specific to the second system architecture, and (ii) whether the source code is known to call native code in the second system architecture. 4. The method of claim 3 , wherein the source code of the first commit is identified in a source code repository, the method further comprising: running the set of tests on the builds of the source code of the first commit for the first and second system architectures; and determining that the respective numbers of failures incurred by running the set of tests does not exceed a failure threshold. 5. The method of claim 4 , wherein the first system architecture is different from the second system architecture, wherein the second commit is identified based on determining the score of the second commit exceeds a rank threshold. 6. The method of claim 5 , wherein the commit status table further stores, for each commit in the first set of commits: (i) a respective commit identifier, and (ii) an indication of a respective status of the commit. 7. A system, comprising: one or more processors; and a memory containing a program, which when executed by the processors, performs an operation comprising: identifying, based on a search granularity, a source code of a first commit of a plurality of commits for a software project; successfully building the source code of the first commit for a first system architecture and a second system architecture; determining, based on a set of tests run against the built source code of the first commit for the first and second system architectures, that the first commit is a latest working build for the first and second system architectures, wherein a respective number of failures incurred by running the set of tests does not exceed a failure threshold; computing a score for each commit in a first set of the plurality of commits, wherein each score reflects a likelihood of success in porting the source code of the respective commit from the first system architecture to the second system architecture, wherein a version of each commit in the first set of commits is between a version of the first commit and a current version of the software project, wherein a commit status table stores, for each commit in the first set of commits: (i) the score, and (ii) a portion of the source code of the commit; identifying a second commit of the first set of commits based on the scores for each commit; patching the source code of the first commit and the source code of the second commit; building the patched source code of the first and second commits for execution on the second system architecture; determining that the patched source code did not build successfully for execution on the second system architecture based on an error at a first line of the patched source code; and outputting for display: (i) an indication that the patched source code did not build successfully, and (ii) the first line of the patched source code. 8. The system of claim 7 , the operation further comprising: prior to identifying the first commit, receiving a request to port the software project from the first system architecture to the second system architecture; and subsequent to determining that the patched source code did not build successfully, storing an indication that the patched source code did not build successfully. 9. The system of claim 8 , wherein each score is computed based on at least one attribute of the source code of each commit, wherein the score is reduced upon detecting, in respective instances, the presence of each of the attributes comprising: (i) a system call in the source code, (ii) a configuration change to the source code, (iii) a build option, (iv) whether the source code is specific to the first system architecture, and (v) whether the source code is known to call native code in the first system architecture, wherein the score is increased upon detecting, in respective instances, each of the attributes comprising: (i) whether the source code is specific to the second system architecture, and (ii) whether the source code is known to call native code in the second system architecture. 10. The system of claim 9 , wherein the source code of the first commit is identified in a source code repository, the operation further comprising: running the set of tests on the builds of the source code of the first commit for the first and second system architectures; and determining that the respective numbers of failures incurred by running the set of tests does not exceed a failure threshold. 11. The system of claim 10 , wherein the first system architecture is different from the second system architecture, wherein the second commit is identified based on determining the score of the second commit exceeds a rank threshold. 12. The system of claim 11 , wherein the commit sta

Assignees

Inventors

Classifications

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • G06F8/76Primary

    Adapting program code to run in a different environment; Porting · CPC title

  • Software reuse · CPC title

  • for test results analysis · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9870223B2 cover?
Systems, methods, and computer program products to perform an operation comprising identifying a first commit of a plurality of commits for a software project, wherein a source code of the first commit is executable in a first system architecture, computing a score for each commit in a first set of the plurality of commits, wherein each score reflects a likelihood of success in porting the sour…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/76. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 16 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).