1. A method of provisioning software, comprising: providing a repository that contains files available for provisioning; associating at least one tag with respective ones of at least a subset of the files, the tags describing the at least a subset of the files including providing a tag description file that defines the at least one tag having at least one rule associated therewith that identifies which of the files the at least one tag applies to and associating the at least one tag with respective ones of the at least a subset of the files based on the tag description file; and using a tag handler to process at least one detected change affecting at least one of the files having a tag associated therewith, wherein the at least one detected change includes at least one of (a) an installation of or an update to the tag description file or the tag handler; and (b) a pending removal of the tag description file or the tag handler.