Techniques for maintaining version compatibility between a first module
and one or more interacting modules that interact with the first module through
an interface. Stored mapping maps instances of a data structure describing the
interface at corresponding release times with corresponding version numbers for
the first module. A second version number is automatically developed for a second
module of the interacting modules based on the mapping. Compatibility is determined
based on a first version number for the first module and the second version number
for the second module. These techniques allow the developer of the central module
to provide the developers of the interacting modules with a tool to automatically
assign version numbers to the interacting module being developed. Automatic assignment
of version numbers avoids the tedium and errors associated with manual methods.
Furthermore, the automated methods not only ensure compatibility but also discover
compatibility with the earliest core module.