1. A method of assembling an update for a software release, comprising: employing at least one processor for: (a1) defining classes of software components, each class comprising a plurality of instances, each instance having a plurality of versions of the software components; (a2) assigning, to each version of a software component of each instance of each class, one or more time stamps; (a3) assigning, to each version of a software component of each instance of each class, one or more indicators identifying a release status of said each version; (a4) defining rules for processing said time stamps and said indicators; (a5) selecting a single version of a software component of each instance of each class based on processing of said time stamps and said indicators according to one or more of the rules; and (a6) assembling selected versions of software components into the update of the software release.