Patent ID: 8539475

Claim:
A non-transitory computer-readable storage medium storing program instructions executable by one or more processors to implement: comparing a representation of a first version of an API with a representation of a second version of the API to determine a set of atomic differences between the two versions, wherein said comparing produces a set of atomic differences representing one or more modifications made between the first and second versions of the API; applying a set of a backwards compatibility rules to the set of atomic differences, wherein each of the backwards compatibility rules corresponds to a respective handler, and wherein each handler is configured to determine whether a given modification matches the respective rule represented by that handler, and wherein said applying comprises, for each atomic difference: analyzing the atomic difference to determine one or more of the set of backwards compatibility rules applicable to the atomic difference; and evaluating each applicable backwards compatibility rule for the atomic difference to determine whether the atomic difference represents one or more backwards compatibility violations, wherein said evaluating comprises processing the atomic differences by using the respective handler; and storing an indication of any backwards compatibility violations from said evaluating.