1. A method of generating a tool for merging customizations made to a first version of a software artifact when migrating to a second version of the software artifact, the method comprising: instantiating a mapping information element in a first data store for each top-level data element in a first code set for the first version that does not have a complementary data element in a second code set for the second version; requesting merge instructions for each top-level data element in the first code set for which merge instructions are not provided in the corresponding mapping information element for the top-level data element; receiving merge instructions for each top-level data element in the first code set for which merge instructions are not provided; determining whether the merge instructions for each top-level data element in the first code set for which merge instructions are provided require that customizations made to the top-level data element be merged into the second code set; determining whether the merge instructions for each top-level data element in the first code set that requires customizations made to the top-level data element to be merged are valid; requesting merge instructions for each top-level data element in the first code set for which the merge instructions are not determined to be valid; receiving merge instructions for each top-level data element in the first code set for which the merge instructions are not determined to be valid; and storing the merge instructions received for each top-level data element in the first code set in the corresponding mapping information element in the first data store.