From 9c6482b5ebcd0e7b5d8016ea8f0e8074c56a20fd Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 28 May 2019 15:12:12 -0400 Subject: [PATCH] packages/ - Allow dev releases (sort of) --- .ci/flake8_blacklist.txt | 4 ++ packages/build_scripts/commit_version.py | 28 +++++----- packages/build_scripts/new_version.py | 56 ++++++++++++------- .../print_version_for_release.py | 17 +++--- packages/package.Makefile | 7 ++- 5 files changed, 68 insertions(+), 44 deletions(-) diff --git a/.ci/flake8_blacklist.txt b/.ci/flake8_blacklist.txt index 33db66f40a0..26ece30af32 100644 --- a/.ci/flake8_blacklist.txt +++ b/.ci/flake8_blacklist.txt @@ -2,6 +2,10 @@ .tox .venv .venv3 +packages/*/.venv +packages/*/build +packages/*/dist +packages/venv node_modules database doc/build diff --git a/packages/build_scripts/commit_version.py b/packages/build_scripts/commit_version.py index 99787f57237..af5df92e416 100644 --- a/packages/build_scripts/commit_version.py +++ b/packages/build_scripts/commit_version.py @@ -7,27 +7,29 @@ import subprocess import sys -PROJECT_DIRECTORY = os.path.join(os.path.dirname(__file__), "..") +DEV_RELEASE = os.environ.get("DEV_RELEASE", None) == "1" +PROJECT_DIRECTORY = os.getcwd() PROJECT_DIRECTORY_NAME = os.path.basename(os.path.abspath(PROJECT_DIRECTORY)) -PROJECT_MODULE_FILENAME = "galaxy_%s.py" % PROJECT_DIRECTORY_NAME +PROJECT_MODULE_FILENAME = "project_galaxy_%s.py" % PROJECT_DIRECTORY_NAME PROJECT_NAME = PROJECT_DIRECTORY_NAME.replace("_", "-") def main(argv): source_dir = argv[1] version = argv[2] - history_path = os.path.join(PROJECT_DIRECTORY, "HISTORY.rst") - history = open(history_path, "r").read() - today = datetime.datetime.today() - today_str = today.strftime('%Y-%m-%d') - history = history.replace(".dev0", " (%s)" % today_str) - open(history_path, "w").write(history) mod_path = os.path.join(PROJECT_DIRECTORY, source_dir, PROJECT_MODULE_FILENAME) - mod = open(mod_path, "r").read() - mod = re.sub("__version__ = '[\d\.]*\.dev0'", - "__version__ = '%s'" % version, - mod) - mod = open(mod_path, "w").write(mod) + if not DEV_RELEASE: + history_path = os.path.join(PROJECT_DIRECTORY, "HISTORY.rst") + history = open(history_path, "r").read() + today = datetime.datetime.today() + today_str = today.strftime('%Y-%m-%d') + history = history.replace(".dev0", " (%s)" % today_str) + open(history_path, "w").write(history) + mod = open(mod_path, "r").read() + mod = re.sub("__version__ = '[\d\.]*\.dev0'", + "__version__ = '%s'" % version, + mod) + mod = open(mod_path, "w").write(mod) tag = "galaxy-%s-%s" % (PROJECT_NAME, version) shell(["git", "commit", "-m", "Version %s of %s (tag %s)." % (version, PROJECT_NAME, tag), "HISTORY.rst", mod_path]) diff --git a/packages/build_scripts/new_version.py b/packages/build_scripts/new_version.py index 13cd66cd088..f12605c4b54 100644 --- a/packages/build_scripts/new_version.py +++ b/packages/build_scripts/new_version.py @@ -7,41 +7,55 @@ import sys from distutils.version import StrictVersion -PROJECT_DIRECTORY = os.path.join(os.path.dirname(__file__), "..") +DEV_RELEASE = os.environ.get("DEV_RELEASE", None) == "1" +PROJECT_DIRECTORY = os.getcwd() PROJECT_DIRECTORY_NAME = os.path.basename(os.path.abspath(PROJECT_DIRECTORY)) -PROJECT_MODULE_FILENAME = "galaxy_%s.py" % PROJECT_DIRECTORY_NAME +PROJECT_MODULE_FILENAME = "project_galaxy_%s.py" % PROJECT_DIRECTORY_NAME PROJECT_NAME = PROJECT_DIRECTORY_NAME.replace("_", "-") def main(argv): source_dir = argv[1] - old_version = StrictVersion(argv[2]) - old_version_tuple = old_version.version - new_version_tuple = list(old_version_tuple) - new_version_tuple[1] = old_version_tuple[1] + 1 - new_version_tuple[2] = 0 - new_version = ".".join(map(str, new_version_tuple)) + version = argv[2] + if not DEV_RELEASE: + old_version = StrictVersion(version) + old_version_tuple = old_version.version + new_version_tuple = list(old_version_tuple) + new_version_tuple[1] = old_version_tuple[1] + 1 + new_version_tuple[2] = 0 + new_version = ".".join(map(str, new_version_tuple)) + new_dev_version = 0 + else: + dev_version = re.compile(r'dev([\d]+)').search(version).group(1) + new_dev_version = int(dev_version) + 1 + new_version = version.replace("dev%s" % dev_version, "dev%s" % new_dev_version) history_path = os.path.join(PROJECT_DIRECTORY, "HISTORY.rst") - history = open(history_path, "r").read() + if not DEV_RELEASE: + history = open(history_path, "r").read() - def extend(from_str, line): - from_str += "\n" - return history.replace(from_str, from_str + line + "\n" ) + def extend(from_str, line): + from_str += "\n" + return history.replace(from_str, from_str + line + "\n") - history = extend(".. to_doc", """ ---------------------- -%s.dev0 ---------------------- + history = extend(".. to_doc", """ + --------------------- + %s.dev0 + --------------------- - """ % new_version) - open(history_path, "w").write(history) +""" % new_version) + open(history_path, "w").write(history) mod_path = os.path.join(PROJECT_DIRECTORY, source_dir, PROJECT_MODULE_FILENAME) mod = open(mod_path, "r").read() - mod = re.sub("__version__ = '[\d\.]+'", - "__version__ = '%s.dev0'" % new_version, - mod, 1) + if not DEV_RELEASE: + mod = re.sub("__version__ = '[\d\.]+'", + "__version__ = '%s.dev0'" % new_version, + mod, 1) + else: + mod = re.sub("dev%s" % dev_version, + "dev%s" % new_dev_version, + mod, 1) mod = open(mod_path, "w").write(mod) shell(["git", "commit", "-m", "Starting work on %s %s" % (PROJECT_NAME, new_version), "HISTORY.rst", mod_path]) diff --git a/packages/build_scripts/print_version_for_release.py b/packages/build_scripts/print_version_for_release.py index 2c4f31d43ff..7fa53f94b53 100644 --- a/packages/build_scripts/print_version_for_release.py +++ b/packages/build_scripts/print_version_for_release.py @@ -1,24 +1,27 @@ from __future__ import print_function import ast -import re import os +import re import sys from distutils.version import LooseVersion -PROJECT_DIRECTORY = os.path.join(os.path.dirname(__file__), "..") +DEV_RELEASE = os.environ.get("DEV_RELEASE", None) == "1" +PROJECT_DIRECTORY = os.getcwd() PROJECT_DIRECTORY_NAME = os.path.basename(os.path.abspath(PROJECT_DIRECTORY)) -PROJECT_MODULE_FILENAME = "galaxy_%s.py" % PROJECT_DIRECTORY_NAME +PROJECT_MODULE_FILENAME = "project_galaxy_%s.py" % PROJECT_DIRECTORY_NAME source_dir = sys.argv[1] PROJECT_MODULE_PATH = os.path.join(PROJECT_DIRECTORY, source_dir, PROJECT_MODULE_FILENAME) _version_re = re.compile(r'__version__\s+=\s+(.*)') - with open(PROJECT_MODULE_PATH, 'rb') as f: version = str(ast.literal_eval(_version_re.search( f.read().decode('utf-8')).group(1))) -# Strip .devN -version_tuple = LooseVersion(version).version[0:3] -print(".".join(map(str, version_tuple))) +if not DEV_RELEASE: + # Strip .devN + version_tuple = LooseVersion(version).version[0:3] + print(".".join(map(str, version_tuple))) +else: + print(version) diff --git a/packages/package.Makefile b/packages/package.Makefile index 89b7e1798cd..89536ddea59 100644 --- a/packages/package.Makefile +++ b/packages/package.Makefile @@ -7,7 +7,8 @@ IN_VENV=if [ -f $(VENV)/bin/activate ]; then . $(VENV)/bin/activate; fi; UPSTREAM?=galaxyproject SOURCE_DIR?=galaxy BUILD_SCRIPTS_DIR=scripts -VERSION?=$(shell python $(BUILD_SCRIPTS_DIR)/print_version_for_release.py $(SOURCE_DIR)) +DEV_RELEASE?=0 +VERSION?=$(shell DEV_RELEASE=$(DEV_RELEASE) python $(BUILD_SCRIPTS_DIR)/print_version_for_release.py $(SOURCE_DIR) $(DEV_RELEASE)) PROJECT_NAME?="galaxy-$(shell basename $(CURDIR))" PROJECT_NAME:=$(subst _,-,$(PROJECT_NAME)) TEST_DIR?=test @@ -74,10 +75,10 @@ _release-artifacts: release-artifacts: release-test-artifacts _release-artifacts commit-version: - $(IN_VENV) python $(BUILD_SCRIPTS_DIR)/commit_version.py $(SOURCE_DIR) $(VERSION) + $(IN_VENV) DEV_RELEASE=$(DEV_RELEASE) python $(BUILD_SCRIPTS_DIR)/commit_version.py $(SOURCE_DIR) $(VERSION) new-version: - $(IN_VENV) python $(BUILD_SCRIPTS_DIR)/new_version.py $(SOURCE_DIR) $(VERSION) + $(IN_VENV) DEV_RELEASE=$(DEV_RELEASE) python $(BUILD_SCRIPTS_DIR)/new_version.py $(SOURCE_DIR) $(VERSION) release-local: commit-version release-artifacts new-version