From 5e503f89c2639985dcadfbc6d37841e0e64d0ddf Mon Sep 17 00:00:00 2001 From: Ismael Arias <33121576+ariasmn@users.noreply.github.com> Date: Sun, 9 Jan 2022 13:49:41 +0100 Subject: [PATCH] Fixed the --version command when installed from source (#347) * Fixed the --version command when installed from source (#344) The command only worked when running it inside the git repository. Now, it works from everywhere, and the version is constructed using the latest git tag and the SHA of the latest commit, which may help with further debugging in future issues. * Improving version output. Renaming version_config to setuptools_git_versioning to be compliant with new plugin version. Formatted the version when a git hash is present for a better readability. The version is set in the setup.py file. This will be used for the tar.gz releases. Snap version is also retrieved from setup.py too, so we avoid code repetition. --- auto_cpufreq/core.py | 23 ++++++++++++++--------- setup.py | 10 +++++++++- snap/snapcraft.yaml | 5 ++++- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py index 20896dc..75e8a7d 100644 --- a/auto_cpufreq/core.py +++ b/auto_cpufreq/core.py @@ -12,6 +12,7 @@ import time import click import warnings import configparser +import pkg_resources from math import isclose from pathlib import Path from shutil import which @@ -111,7 +112,7 @@ except PermissionError: # display running version of auto-cpufreq def app_version(): - print("auto-cpufreq version:") + print("auto-cpufreq version: ", end="") # snap package if os.getenv("PKG_MARKER") == "SNAP": @@ -120,23 +121,27 @@ def app_version(): elif dist_name in ["arch", "manjaro", "garuda"]: aur_pkg_check = call("pacman -Qs auto-cpufreq > /dev/null", shell=True) if aur_pkg_check == 1: - print( - "Git commit:", - check_output(["git", "describe", "--always"]).strip().decode(), - ) + print(get_formatted_version()) else: print(getoutput("pacman -Qi auto-cpufreq | grep Version")) else: # source code (auto-cpufreq-installer) try: - print( - "Git commit:", - check_output(["git", "describe", "--always"]).strip().decode(), - ) + print(get_formatted_version()) except Exception as e: print(repr(e)) pass +# return formatted version for a better readability +def get_formatted_version(): + literal_version = pkg_resources.require("auto-cpufreq")[0].version + splitted_version = literal_version.split("+") + formatted_version = splitted_version[0] + + if len(splitted_version) > 1: + formatted_version += " (git: " + splitted_version[1] + ")" + + return formatted_version def app_res_use(): p = psutil.Process() diff --git a/setup.py b/setup.py index 6c542b6..f9afd3e 100644 --- a/setup.py +++ b/setup.py @@ -12,10 +12,18 @@ def read(name): with open(os.path.join(this, name)) as f: return f.read() +# Used for the tar.gz/snap releases +VERSION = "1.9.0" setup( name="auto-cpufreq", - version="1.0", + setuptools_git_versioning={ + "starting_version": VERSION, + "template": "{tag}+{sha}", + "dev_template": "{tag}+{sha}", + "dirty_template": "{tag}+{sha}.post{ccount}.dirty" + }, + setup_requires=["setuptools-git-versioning"], description="Automatic CPU speed & power optimizer for Linux", long_description=readme, author="Adnan Hodzic", diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index b0331bd..f5c0492 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,5 @@ name: auto-cpufreq base: core20 -version: '1.9.1' summary: Automatic CPU speed & power optimizer for Linux description: | Automatic CPU speed & power optimizer for Linux based on active @@ -11,6 +10,7 @@ description: | license: LGPL-3.0 grade: stable confinement: strict +adopt-info: auto-cpufreq compression: lzo @@ -27,6 +27,9 @@ parts: - coreutils - dmidecode source: . + override-pull: | + snapcraftctl pull + snapcraftctl set-version `grep ^VERSION $SNAPCRAFT_PART_SRC/setup.py | sed 's/.*"\(.*\)"/\1/'` deploy-scripts: plugin: dump