From cfaf7186bda346445e0c1e0bd706eefe826b9323 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 22 May 2018 16:31:37 -0400 Subject: [PATCH] Support building and publishing pre-release docs --- doc/source/conf.versioning.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/doc/source/conf.versioning.py b/doc/source/conf.versioning.py index 2bcf430855f..65a85d7fd2d 100644 --- a/doc/source/conf.versioning.py +++ b/doc/source/conf.versioning.py @@ -12,12 +12,11 @@ from subprocess import check_output TARGET_GIT_BRANCH = os.environ.get('TARGET_GIT_BRANCH', 'dev') # noqa: F821 # Version message templates -OLD_BANNER = """This document is for an old release of Galaxy. You can alternatively view this -page in the latest release if it exists or view the top of the latest release's -documentation.""" -DEV_BANNER = """This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top -of the latest release's documentation.""" +OLD_BANNER = """This document is for an old release of Galaxy.""" +DEV_BANNER = """This document is for an in-development version of Galaxy.""" +PRE_BANNER = """This document is for a pre-release version of Galaxy.""" +BANNER_APPEND = """ You can alternatively view this page in the latest release if it +exists or view the top of the latest release's documentation.""" # Minimum version for linking to docs MIN_DOC_VERSION = LooseVersion('17.05') @@ -38,6 +37,11 @@ simpleversioning_versions = [ # Used for determining the latest stable release so the banner can be added to older releases. _stable = None +_target_ver = None +_pre_release = False +if TARGET_GIT_BRANCH.startswith('release_'): + _target_ver = TARGET_GIT_BRANCH[len('release_'):] + # Use tags to determine versions - a stable version will have a branch before it's released, but not a tag. for _tag in reversed(check_output(('git', 'tag')).splitlines()): if _tag.startswith('v') and _tag.count('.') == 1: @@ -45,6 +49,12 @@ for _tag in reversed(check_output(('git', 'tag')).splitlines()): _ver = _tag[1:] if not _stable: _stable = _ver + if _target_ver and LooseVersion(_target_ver) > LooseVersion(_ver): + # Pre-release + simpleversioning_versions.append( + {'id': TARGET_GIT_BRANCH, 'name': _target_ver} + ) + _pre_release = True if LooseVersion(_ver) >= MIN_DOC_VERSION: simpleversioning_versions.append( {'id': 'release_%s' % _ver, 'name': _ver} @@ -58,7 +68,10 @@ if TARGET_GIT_BRANCH.startswith('release_'): # The current stable release will go here but fail the next conditional, avoiding either banner. if TARGET_GIT_BRANCH != 'release_%s' % _stable: simpleversioning_show_banner = True - simpleversioning_banner_message = OLD_BANNER + if _pre_release: + simpleversioning_banner_message = PRE_BANNER + BANNER_APPEND + else: + simpleversioning_banner_message = OLD_BANNER + BANNER_APPEND elif TARGET_GIT_BRANCH != 'master': simpleversioning_show_banner = True - simpleversioning_banner_message = DEV_BANNER + simpleversioning_banner_message = DEV_BANNER + BANNER_APPEND