1. A method, comprising: at a computer system, obtaining: a set of source code modules to be used in a software program; and an ordering between one or more older versions of a programming language and one or more newer versions of the programming language, wherein one or more versions of the programming language are to be used while compiling the source code modules; and for each source code module from the set of source code modules: selecting a version of the programming language from a set of versions of the programming language by using the ordering, wherein the selected version of the programming language is compatible with the source code module, and wherein the selecting the version of the programming language that is compatible with the source code module involves: attempting to compile the source code module using a first version of the programming language in the ordering, responsive to the source code module compiling successfully with the first version of the programming language, selecting the first version of the programming language, and responsive to the source code module not compiling successfully with the first version of the programming language, attempting to compile the source code module using a second version of the programming language following the first version of the programming language in the ordering; and compiling the source code module with the selected version of the programming language.