From a48b5deb29345fec55d0440e12163ff1398aa253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Tue, 2 Sep 2014 12:06:02 +0200 Subject: [PATCH] Versioneer now also returns and persists the branch from which OctoPrint was installed Changed version output accordingly to now display "{version} ({branch} branch)" if branch information is available (which should be the case if installation was performed from git). --- src/octoprint/_version.py | 11 ++++++++-- src/octoprint/server/__init__.py | 12 +++++++---- src/octoprint/server/util/sockjs.py | 2 +- src/octoprint/static/js/app/dataupdater.js | 3 ++- src/octoprint/templates/index.jinja2 | 3 ++- versioneer.py | 25 ++++++++++++++++++---- 6 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/octoprint/_version.py b/src/octoprint/_version.py index 52aefd49..3808a4f8 100644 --- a/src/octoprint/_version.py +++ b/src/octoprint/_version.py @@ -166,7 +166,7 @@ def versions_from_lookup(lookup, root, verbose=False): if dirty: version += "-dirty" full += "-dirty" - return {"version": version, "full": full} + return {"version": version, "full": full, "branch": current_branch} return {} @@ -195,7 +195,14 @@ def versions_from_vcs(tag_prefix, root, verbose=False): full = stdout.strip() if tag.endswith("-dirty"): full += "-dirty" - return {"version": tag, "full": full} + + stdout = run_command(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], + cwd=root) + if stdout is None: + branch = None + else: + branch = stdout.strip() + return {"version": tag, "full": full, "branch": branch} def versions_from_parentdir(parentdir_prefix, root, verbose=False): diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 108fa49c..94cc20e7 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -49,7 +49,12 @@ from . import util UI_API_KEY = ''.join('%02X' % ord(z) for z in uuid.uuid4().bytes) -VERSION = octoprint._version.get_versions()['version'] + +versions = octoprint._version.get_versions() +VERSION = versions['version'] +BRANCH = versions['branch'] if 'branch' in versions else None +DISPLAY_VERSION = "%s (%s branch)" % (VERSION, BRANCH) if BRANCH else VERSION +del versions def get_available_locale_identifiers(locales): @@ -95,6 +100,7 @@ def index(): firstRun=settings().getBoolean(["server", "firstRun"]) and (userManager is None or not userManager.hasBeenCustomized()), debug=debug, version=VERSION, + display_version=DISPLAY_VERSION, stylesheet=settings().get(["devel", "stylesheet"]), gcodeMobileThreshold=settings().get(["gcodeViewer", "mobileSizeThreshold"]), gcodeThreshold=settings().get(["gcodeViewer", "sizeThreshold"]), @@ -163,9 +169,7 @@ class Server(): self._initLogging(self._debug, self._logConf) logger = logging.getLogger(__name__) - logger.info("Starting OctoPrint (%s)" % VERSION) - - logger.info("Starting OctoPrint (%s)" % VERSION) + logger.info("Starting OctoPrint %s" % DISPLAY_VERSION) eventManager = events.eventManager() gcodeManager = gcodefiles.GcodeManager() diff --git a/src/octoprint/server/util/sockjs.py b/src/octoprint/server/util/sockjs.py index bbd96863..8f4a49a9 100644 --- a/src/octoprint/server/util/sockjs.py +++ b/src/octoprint/server/util/sockjs.py @@ -47,7 +47,7 @@ class PrinterStateConnection(sockjs.tornado.SockJSConnection): self._logger.info("New connection from client: %s" % remoteAddress) # connected => update the API key, might be necessary if the client was left open while the server restarted - self._emit("connected", {"apikey": octoprint.server.UI_API_KEY, "version": octoprint.server.VERSION}) + self._emit("connected", {"apikey": octoprint.server.UI_API_KEY, "version": octoprint.server.VERSION, "display_version": octoprint.server.DISPLAY_VERSION}) self._printer.registerCallback(self) self._gcodeManager.registerCallback(self) diff --git a/src/octoprint/static/js/app/dataupdater.js b/src/octoprint/static/js/app/dataupdater.js index 3f397a2c..e6db9b23 100644 --- a/src/octoprint/static/js/app/dataupdater.js +++ b/src/octoprint/static/js/app/dataupdater.js @@ -71,7 +71,8 @@ function DataUpdater(loginStateViewModel, connectionViewModel, printerStateViewM }); VERSION = data["version"]; - $("span.version").text(VERSION); + DISPLAY_VERSION = data["display_version"]; + $("span.version").text(DISPLAY_VERSION); if ($("#offline_overlay").is(":visible")) { $("#offline_overlay").hide(); diff --git a/src/octoprint/templates/index.jinja2 b/src/octoprint/templates/index.jinja2 index c05e150d..74178c15 100644 --- a/src/octoprint/templates/index.jinja2 +++ b/src/octoprint/templates/index.jinja2 @@ -42,6 +42,7 @@ var UI_API_KEY = "{{ uiApiKey }}"; var VERSION = "{{ version }}"; + var DISPLAY_VERSION = "{{ display_version }}"; var LOCALE = "{{ g.locale }}"; @@ -589,7 +590,7 @@