Return difference between existing sdists and available tags.

def missing_tags(self, existing_sdists=None):
        """Return difference between existing sdists and available tags."""
        if existing_sdists is None:
            existing_sdists = []
        logger.debug("Existing sdists: %s", existing_sdists)
        if self._missing_tags is None:
            missing = []
            existing_sdists = sorted_versions(set(existing_sdists))
            available = set(self.wrapper.vcs.available_tags())
            available_tags = sorted_versions(available)
            available_tags.reverse()
            for tag in available_tags:
                if tag.is_prerelease:
                    logger.warn("Pre-release marker in tag: %s, ignoring", tag)
                    continue
                if tag in existing_sdists:
                    logger.debug(
                        "Tag %s is already available, not looking further",
                        tag)
                    break
                else:
                    missing.append(tag)
                    logger.debug("Tag %s is missing", tag)
            missing.reverse()
            # Convert back to proper strings:
            mapping = {}
            for tag in available:
                mapping[parse_version(tag)] = tag
            self._missing_tags = [mapping[tag] for tag in missing]
        logger.debug("Missing sdists: %s", self._missing_tags)
        return self._missing_tags