7 Commits

Author SHA1 Message Date
didirus a41bbb01aa Merge pull request 'Beta' (#30) from beta into release
Reviewed-on: #30
2026-06-20 05:06:10 +00:00
didirus c3ca512395 fix(app-frontend): compare launcher versions numerically 2026-06-20 00:43:55 +03:00
didirus d83f839ba4 Merge pull request 'Remove unnecessary workflows' (#23) from beta into release
Reviewed-on: #23
2025-11-02 10:08:25 +03:00
didirus c1d7d66ab0 Merge pull request 'Update README markdown language files' (#22) from beta into release
Reviewed-on: #22
2025-11-02 10:06:13 +03:00
didirus 78d2652b08 Merge pull request 'Merge beta into release' (#21) from beta into release
AstralRinth App build / Build (x86_64-unknown-linux-gnu, ubuntu-latest) (push) Successful in 36m46s
AstralRinth App build / Build (x86_64-pc-windows-msvc, windows-latest) (push) Has been cancelled
Reviewed-on: #21
2025-11-01 16:04:23 +03:00
didirus e3065c2dfb Merge pull request 'beta' (#14) from beta into release
Reviewed-on: #14
2025-08-17 00:13:38 +03:00
didirus f54f09becf Merge pull request 'beta' (#12) from beta into release
Reviewed-on: #12
2025-07-26 12:49:02 +03:00
2 changed files with 50 additions and 4 deletions
@@ -58,18 +58,33 @@ export async function fetchRemote(): Promise<void> {
latestLauncherRelease.value = remoteData
if (systems.includes(currentOS.value as (typeof systems)[number])) {
const localVersion = normalizeVersion(await getVersion())
const rawLocalVersion = await getVersion()
const localVersion = normalizeVersion(rawLocalVersion)
const remoteVersion = normalizeVersion(remoteData.tag_name)
isUpdateAvailable.value = remoteVersion !== localVersion
const versionComparison = compareVersions(remoteVersion, localVersion)
isUpdateAvailable.value = versionComparison > 0
if (isDeveloper) {
console.debug('Raw local version is', rawLocalVersion)
console.debug('Normalized local version is', localVersion)
console.debug('Raw remote version is', remoteData.tag_name)
console.debug('Normalized remote version is', remoteVersion)
console.debug('Local version parts are', parseVersionParts(localVersion))
console.debug('Remote version parts are', parseVersionParts(remoteVersion))
console.debug('Version comparison result is', versionComparison)
}
} else {
isUpdateAvailable.value = false
if (isDeveloper) {
console.debug('Skipped update comparison for unsupported OS', currentOS.value)
}
}
if (isDeveloper) {
console.debug('Update available state is', isUpdateAvailable.value)
console.debug('Remote version is', remoteData.tag_name)
console.debug('Remote title is', remoteData.name)
console.debug('Local version is', await getVersion())
console.debug('Operating System is', currentOS.value)
}
} catch (error) {
@@ -146,3 +161,34 @@ function resolveOperationalSystemExtension(): string[] {
function normalizeVersion(version: string): string {
return version.trim().replace(/^v/i, '')
}
function compareVersions(left: string, right: string): number {
const leftParts = parseVersionParts(left)
const rightParts = parseVersionParts(right)
const maxLength = Math.max(leftParts.length, rightParts.length)
for (let index = 0; index < maxLength; index += 1) {
const leftPart = leftParts[index] ?? 0
const rightPart = rightParts[index] ?? 0
if (leftPart !== rightPart) {
if (isDeveloper) {
console.debug('Version parts differ at index', index, leftPart, rightPart)
}
return leftPart - rightPart
}
}
if (isDeveloper) {
console.debug('Version parts are equal', leftParts, rightParts)
}
return 0
}
function parseVersionParts(version: string): number[] {
return normalizeVersion(version)
.split(/[.-]/)
.map((part) => Number.parseInt(part, 10))
.filter((part) => !Number.isNaN(part))
}
+1 -1
View File
@@ -63,7 +63,7 @@
]
},
"productName": "AstralRinth App",
"version": "0.14.701",
"version": "0.14.702",
"mainBinaryName": "AstralRinth App",
"identifier": "AstralRinthApp",
"plugins": {