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.
This commit is contained in:
Ismael Arias 2022-01-09 13:49:41 +01:00 committed by GitHub
parent 7b7e82b2b1
commit 5e503f89c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 11 deletions

View File

@ -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()

View File

@ -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",

View File

@ -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