1. A computer executed method of determining compatible versions of dependent entities of a root entity having a specified version in a computer system, the method comprising: building a directed graph comprising the dependent entities; dividing the directed graph into multiple levels; dividing each level into one or more isolated subsets; determining compatible versions for entities in upper levels of the directed graph before determining compatible versions for entities in lower levels of the directed graph.