__version__ = '3.0.0-rc.11'
__frontend_version__ = '^0.1.1'


def stable_semver():
    """
    Get the stable portion of the semantic version string (the first three
    numbers), without any of the trailing labels

    '3.0.0-rc.11' -> '3.0.0'
    """

    return __version__.split('-')[0]

__version__ = '3.0.0rc11'
__frontend_version__ = '^0.1.1'


def stable_semver():
    """
    Get the stable portion of the semantic version string (the first three
    numbers), without any of the trailing labels

    '3.0.0rc11' -> '3.0.0'
    """
    from distutils.version import LooseVersion
    version_components = LooseVersion(__version__).version
    stable_ver_str = '.'.join(str(s) for s in version_components[0:3])
    return stable_ver_str

Revert version string back to 3.0.0rc11 and use LooseVersion to extract stable component.