mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
feat(release): unify cross-platform versioning
This commit is contained in:
@@ -24,8 +24,10 @@ after the first release. The manifest display name uses the exact reserved Store
|
||||
name; the product's in-app branding and launcher remain `VniDrop`.
|
||||
|
||||
The initial package targets Windows Desktop x64, Windows 10 version 2004
|
||||
(build 19041) or later. The fourth MSIX version component is reserved by the
|
||||
Store, so app version 1.2.3 becomes package version 1.2.3.0.
|
||||
(build 19041) or later. The product version comes from `version.properties`.
|
||||
Because MSIX requires a non-zero major and reserves the fourth component, the
|
||||
package version adds `WINDOWS_VERSION_EPOCH` to the product major. With epoch
|
||||
`1`, product version `0.2.0` becomes package version `1.2.0.0`.
|
||||
|
||||
## GitHub Actions
|
||||
|
||||
@@ -87,9 +89,9 @@ The Store ID is a non-secret variable.
|
||||
From the repository root:
|
||||
|
||||
~~~powershell
|
||||
.\gradlew.bat :shared:jvmTest :desktopApp:createReleaseDistributable -Pvnidrop.version=1.0.0 -Pvnidrop.desktop.rustVariant=release -Pvnidrop.diagnostics.included=false --no-daemon --no-configuration-cache --stacktrace
|
||||
.\gradlew.bat :shared:jvmTest :desktopApp:createReleaseDistributable -Pvnidrop.desktop.rustVariant=release -Pvnidrop.diagnostics.included=false --no-daemon --no-configuration-cache --stacktrace
|
||||
|
||||
.\packaging\windows\build-msix.ps1 -Version 1.0.0 -AppImage .\desktopApp\build\compose\binaries\main-release\app\VniDrop -OutputDirectory .\build\release\windows
|
||||
.\packaging\windows\build-msix.ps1 -AppImage .\desktopApp\build\compose\binaries\main-release\app\VniDrop -OutputDirectory .\build\release\windows
|
||||
~~~
|
||||
|
||||
The packaging script requires Windows SDK 10.0.26100.0. It uses MakePri to
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Version,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[string] $AppImage,
|
||||
|
||||
@@ -87,16 +84,11 @@ if ([System.Environment]::OSVersion.Platform -ne [System.PlatformID]::Win32NT) {
|
||||
throw "MSIX packaging must run on Windows"
|
||||
}
|
||||
|
||||
$versionParts = $Version.Split(".")
|
||||
Assert-Condition ($versionParts.Count -eq 3) "Version must use MAJOR.MINOR.PATCH"
|
||||
for ($index = 0; $index -lt $versionParts.Count; $index++) {
|
||||
$part = $versionParts[$index]
|
||||
$number = 0
|
||||
Assert-Condition ([int]::TryParse($part, [ref] $number)) "Version components must be integers"
|
||||
Assert-Condition ($number.ToString() -eq $part) "Version components must not contain leading zeroes"
|
||||
Assert-Condition ($number -ge $(if ($index -eq 0) { 1 } else { 0 }) -and $number -le 65535) "Version components must be between 0 and 65535, with a non-zero major"
|
||||
}
|
||||
$packageVersion = "$Version.0"
|
||||
$versionResolver = Join-Path $PSScriptRoot "..\version\resolve-version.ps1"
|
||||
$versionInfoJson = & $versionResolver -Field Json -VerifyTag
|
||||
$versionInfo = $versionInfoJson | ConvertFrom-Json
|
||||
$Version = [string] $versionInfo.productVersion
|
||||
$packageVersion = [string] $versionInfo.windowsPackageVersion
|
||||
|
||||
$appImagePath = (Resolve-Path -LiteralPath $AppImage).Path
|
||||
Assert-Condition (Test-Path -LiteralPath $appImagePath -PathType Container) "App image not found: $AppImage"
|
||||
|
||||
Reference in New Issue
Block a user