<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _newer_tags_get(current_highest, versions):
 """ Returns versions from versions which are greater than than the highest version in each major. If a newer major is present in versions which is not present on current_highest, an exception will be raised. @param current_highest: as returned by VersionsFile.highest_version_major() @param versions: a list of versions. @return: a list of versions. @raise MissingMajorException: A new version from a newer major branch is exists, but will not be downloaded due to it not being in majors. """

    newer = []
    for major in current_highest:
        highest_version = current_highest[major]
        for version in versions:
            version = version.lstrip('v')
            if version.startswith(major) and version_gt(version,
                    highest_version):
                newer.append(version)

    _check_newer_major(current_highest, versions)

    return newer