1. A process of programming and compiling computer-executable code, the process comprising: receiving, during a computer programming process for a software program, a specification of a software module having a defined functionality for use by the software program, wherein the software module is stored in a central repository having different versions of the software module; compiling the software program, the compilation initiating steps comprising filtering versions of the software module that do not meet the specification, wherein the specification corresponds to more than one version of the software module; selecting, from versions that have not been filtered out, a version of the software module, wherein the selection is based on one or more predetermined rules; and returning the selected version of the software module for local storage with the software program.