chore: identify version numbers using a git tag

- remove VERSION file
- expose the `GIT_COMMIT`so that we can properly construct the web links
when the user clicks the version number in Settings/About
- some smaller cleanups and warning fixes

Fixes #12349
This commit is contained in:
Lukáš Tinkl 2024-10-29 13:44:24 +01:00
parent ab92672deb
commit bb4881ee5d
No known key found for this signature in database
GPG Key ID: 4ABB993B9382F296
15 changed files with 49 additions and 24 deletions

View File

@ -236,8 +236,7 @@ endif
NIM_PARAMS += --outdir:./bin NIM_PARAMS += --outdir:./bin
# App version # App version
VERSIONFILE=VERSION DESKTOP_VERSION=`git describe --tags`
DESKTOP_VERSION=`cat $(VERSIONFILE)`
STATUSGO_VERSION=`(cd vendor/status-go; git describe --tags --abbrev=0)` STATUSGO_VERSION=`(cd vendor/status-go; git describe --tags --abbrev=0)`
NIM_PARAMS += -d:DESKTOP_VERSION="$(DESKTOP_VERSION)" NIM_PARAMS += -d:DESKTOP_VERSION="$(DESKTOP_VERSION)"
NIM_PARAMS += -d:STATUSGO_VERSION="$(STATUSGO_VERSION)" NIM_PARAMS += -d:STATUSGO_VERSION="$(STATUSGO_VERSION)"

View File

@ -1 +0,0 @@
2.30.90

View File

@ -27,13 +27,16 @@ proc init*(self: Controller) =
self.delegate.versionFetched(args.available, args.version, args.url) self.delegate.versionFetched(args.available, args.version, args.url)
proc getAppVersion*(self: Controller): string = proc getAppVersion*(self: Controller): string =
return self.aboutService.getAppVersion() self.aboutService.getAppVersion()
proc getGitCommit*(self: Controller): string =
self.aboutService.getGitCommit()
proc checkForUpdates*(self: Controller) = proc checkForUpdates*(self: Controller) =
self.aboutService.checkForUpdates() self.aboutService.checkForUpdates()
proc getNodeVersion*(self: Controller): string = proc getNodeVersion*(self: Controller): string =
return self.aboutService.getNodeVersion() self.aboutService.getNodeVersion()
proc getStatusGoVersion*(self: Controller): string = proc getStatusGoVersion*(self: Controller): string =
self.aboutService.getStatusGoVersion() self.aboutService.getStatusGoVersion()

View File

@ -14,6 +14,9 @@ method isLoaded*(self: AccessInterface): bool {.base.} =
method getAppVersion*(self: AccessInterface): string {.base.} = method getAppVersion*(self: AccessInterface): string {.base.} =
raise newException(ValueError, "No implementation available") raise newException(ValueError, "No implementation available")
method getGitCommit*(self: AccessInterface): string {.base.} =
raise newException(ValueError, "No implementation available")
method getNodeVersion*(self: AccessInterface): string {.base.} = method getNodeVersion*(self: AccessInterface): string {.base.} =
raise newException(ValueError, "No implementation available") raise newException(ValueError, "No implementation available")

View File

@ -49,6 +49,9 @@ method viewDidLoad*(self: Module) =
method getAppVersion*(self: Module): string = method getAppVersion*(self: Module): string =
return self.controller.getAppVersion() return self.controller.getAppVersion()
method getGitCommit*(self: Module): string =
return self.controller.getGitCommit()
method getNodeVersion*(self: Module): string = method getNodeVersion*(self: Module): string =
return self.controller.getNodeVersion() return self.controller.getNodeVersion()

View File

@ -21,6 +21,9 @@ QtObject:
proc getCurrentVersion*(self: View): string {.slot.} = proc getCurrentVersion*(self: View): string {.slot.} =
return self.delegate.getAppVersion() return self.delegate.getAppVersion()
proc getGitCommit*(self: View): string {.slot.} =
return self.delegate.getGitCommit()
proc nodeVersion*(self: View): string {.slot.} = proc nodeVersion*(self: View): string {.slot.} =
return self.delegate.getNodeVersion() return self.delegate.getNodeVersion()

View File

@ -47,6 +47,9 @@ QtObject:
proc getAppVersion*(self: Service): string = proc getAppVersion*(self: Service): string =
return APP_VERSION return APP_VERSION
proc getGitCommit*(self: Service): string =
return GIT_COMMIT
proc getNodeVersion*(self: Service): string = proc getNodeVersion*(self: Service): string =
try: try:
return backend.clientVersion().result.getStr return backend.clientVersion().result.getStr

View File

@ -1,3 +1,5 @@
import std/strformat
include env_cli_vars include env_cli_vars
## Added a constant here cause it's easier to check the app how it behaves ## Added a constant here cause it's easier to check the app how it behaves
@ -12,7 +14,7 @@ const STATUSGO_VERSION* {.strdefine.} = "0.0.0"
# This is changed during compilation by executing git command # This is changed during compilation by executing git command
const GIT_COMMIT* {.strdefine.} = "" const GIT_COMMIT* {.strdefine.} = ""
const APP_VERSION* = if defined(production): DESKTOP_VERSION else: fmt("{GIT_COMMIT}") const APP_VERSION* = if defined(production): DESKTOP_VERSION else: fmt"{DESKTOP_VERSION}-{GIT_COMMIT}"
const sep* = when defined(windows): "\\" else: "/" const sep* = when defined(windows): "\\" else: "/"

View File

@ -1,4 +1,4 @@
import os, sequtils, strutils, stew/shims/strformat, chronicles import os, sequtils, strutils, chronicles
import app/global/feature_flags import app/global/feature_flags

View File

@ -30,12 +30,17 @@ SplitView {
function getCurrentVersion() { function getCurrentVersion() {
logs.logEvent("store::getCurrentVersion") logs.logEvent("store::getCurrentVersion")
return isProduction ? "0.13.2" : "45784cf0c" return isProduction ? "0.13.2" : "0.13.2-dev"
}
function getGitCommit() {
logs.logEvent("store::getGitCommit")
return "92b88e8a3e1d48f2c39d1db6e4d577ebbe21f7a9"
} }
function getStatusGoVersion() { function getStatusGoVersion() {
logs.logEvent("store::getStatusGoVersion") logs.logEvent("store::getStatusGoVersion")
return "0.162.9" return "v0.162.9"
} }
function qtRuntimeVersion() { function qtRuntimeVersion() {
@ -44,10 +49,10 @@ SplitView {
function getReleaseNotes() { function getReleaseNotes() {
logs.logEvent("store::getReleaseNotes") logs.logEvent("store::getReleaseNotes")
const link = isProduction ? "https://github.com/status-im/status-desktop/releases/tag/%1" : const link = isProduction ? "https://github.com/status-im/status-desktop/releases/tag/%1".arg(getCurrentVersion()) :
"https://github.com/status-im/status-desktop/commit/%1" "https://github.com/status-im/status-desktop/commit/%1".arg(getGitCommit())
openLink(link.arg(getCurrentVersion())) openLink(link)
} }
function openLink(url) { function openLink(url) {

View File

@ -376,6 +376,10 @@ StatusSectionLayout {
return root.store.getCurrentVersion() return root.store.getCurrentVersion()
} }
function getGitCommit() {
return root.store.getGitCommit()
}
function getStatusGoVersion() { function getStatusGoVersion() {
return root.store.getStatusGoVersion() return root.store.getStatusGoVersion()
} }
@ -385,10 +389,10 @@ StatusSectionLayout {
} }
function getReleaseNotes() { function getReleaseNotes() {
const link = isProduction ? "https://github.com/status-im/status-desktop/releases/tag/%1" : const link = isProduction ? "https://github.com/status-im/status-desktop/releases/tag/%1".arg(getCurrentVersion()) :
"https://github.com/status-im/status-desktop/commit/%1" "https://github.com/status-im/status-desktop/commit/%1".arg(getGitCommit())
openLink(link.arg(getCurrentVersion())) openLink(link)
} }
function openLink(url) { function openLink(url) {

View File

@ -209,7 +209,11 @@ QtObject {
} }
function getCurrentVersion() { function getCurrentVersion() {
return aboutModuleInst.getCurrentVersion() return aboutModuleInst.getCurrentVersion().replace(/^v/, '')
}
function getGitCommit() {
return aboutModuleInst.getGitCommit()
} }
function getStatusGoVersion() { function getStatusGoVersion() {

View File

@ -68,7 +68,7 @@ SettingsContentBase {
font.pixelSize: 22 font.pixelSize: 22
font.bold: true font.bold: true
normalColor: Theme.palette.directColor1 normalColor: Theme.palette.directColor1
text: (root.store.isProduction ? "" : "git:") + root.store.getCurrentVersion() text: root.store.getCurrentVersion()
onClicked: root.store.getReleaseNotes() onClicked: root.store.getReleaseNotes()
} }
@ -84,7 +84,7 @@ SettingsContentBase {
font.pixelSize: 17 font.pixelSize: 17
font.bold: true font.bold: true
normalColor: Theme.palette.directColor1 normalColor: Theme.palette.directColor1
text: root.store.getStatusGoVersion() text: root.store.getStatusGoVersion().replace(/^v/, '')
onClicked: root.store.openLink("https://github.com/status-im/status-go/tree/%1".arg(root.store.getStatusGoVersion())) onClicked: root.store.openLink("https://github.com/status-im/status-go/tree/%1".arg(root.store.getStatusGoVersion()))
} }

View File

@ -40,6 +40,8 @@ OTHER_FILES += $$files("$$PWD/../vendor/SortFilterProxyModel/*.h", true)
OTHER_FILES += $$files("$$PWD/../vendor/nimqml/src/*.nim", true) OTHER_FILES += $$files("$$PWD/../vendor/nimqml/src/*.nim", true)
OTHER_FILES += $$files("$$PWD/../Makefile")
# Additional import path used to resolve QML modules in Qt Creator's code model # Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH = $$PWD/imports \ QML_IMPORT_PATH = $$PWD/imports \
$$PWD/StatusQ \ $$PWD/StatusQ \
@ -49,9 +51,4 @@ QML_IMPORT_PATH = $$PWD/imports \
# Additional import path used to resolve QML modules just for Qt Quick Designer # Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH = $$PWD/imports QML_DESIGNER_IMPORT_PATH = $$PWD/imports
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += resources.qrc StatusQ/src/assets.qrc StatusQ/src/statusq.qrc RESOURCES += resources.qrc StatusQ/src/assets.qrc StatusQ/src/statusq.qrc