def get_package_version(quay_org, repo, version=None):
    """Returns version of new release.
    If version is passed, it will be validated
    If no version is passed then quay repo is queried for versions and latest
    version is incremented by 1 on major position.

    :param QuayOrganization quay_org: Quay organization object
    :param str repo: repository name
    :param str|None version:
    :rtype: str
    :return: version to be used as release
    """
    if version is None:
        try:
            latest_ver = quay_org.get_latest_release_version(repo)
        except QuayPackageNotFound as e:
            version = current_app.config['DEFAULT_RELEASE_VERSION']
            logger.info("Using default release %s, reason: %s", version, e)
        else:
            latest_ver.increment()
            version = str(latest_ver)
    else:
        try:
            ReleaseVersion.validate_version(version)
        except ValueError as e:
            raise OMPSInvalidVersionFormat(str(e))
    return version
def _get_package_version(quay_org, repo, version=None):
    if version is None:
        try:
            latest_ver = quay_org.get_latest_release_version(repo)
        except QuayPackageNotFound:
            version = current_app.config['DEFAULT_RELEASE_VERSION']
        else:
            latest_ver.increment()
            version = str(latest_ver)
    else:
        try:
            ReleaseVersion.validate_version(version)
        except ValueError as e:
            raise OMPSInvalidVersionFormat(str(e))
    return version