1. A method of customizing base software product, comprising: obtaining a set of conflicting customizations to be made to a same element of the base software product; accessing dependency information associated with each of the conflicting customizations in the set, the dependency information identifying a product upon which the associated conflicting customization is based; generating a dependency graph based on the dependency information, the dependency graph identifying dependencies between conflicting customizations in the set; removing any other conflicting customizations from the set that are on a dependency path between a first conflicting customization and the base software product in the dependency graph; and applying one of the set of conflicting customizations based on the dependency information.