'Apply tags to myself that are implied by my metadata.
You don\'t need to call save on the question after this.'

def auto_tag(self):

    to_add = (self.product_config.get('tags', []) + self.category_config.get('tags', []))
    version = self.metadata.get('ff_version', '')
    version = re.split('[a-b]', version)[0]
    dev_releases = product_details.firefox_history_development_releases
    if ((version in dev_releases) or (version in product_details.firefox_history_stability_releases) or (version in product_details.firefox_history_major_releases)):
        to_add.append(('Firefox    %s' % version))
        tenths = _tenths_version(version)
        if tenths:
            to_add.append(('Firefox    %s' % tenths))
    elif _has_beta(version, dev_releases):
        to_add.append(('Firefox    %s' % version))
        to_add.append('beta')
    self.tags.add(*to_add)
    os = self.metadata.get('os')
    if os:
        try:
            add_existing_tag(os, self.tags)
        except Tag.DoesNotExist:
            pass
