You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/RELEASING.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,27 @@ git push origin vX.Y.Z-alpha.1
27
27
28
28
The stable MSIX package identity is `OpenClaw.Companion`. Alpha-tagged MSIX packages are patched during CI to use `OpenClaw.Companion.Alpha`, which lets testers install the signed alpha package without upgrading a stable MSIX install.
29
29
30
+
## Alpha update testing
31
+
32
+
Normal update checks stay on stable releases. To test alpha release updates from a local Release build, isolate the run and opt into the alpha update channel before launching:
`OPENCLAW_UPDATE_CHANNEL=alpha` enables pre-release checks and release-list fetching. The in-app updater downloads ZIP assets only; MSIX alpha packages are installed or sideloaded separately under the `OpenClaw.Companion.Alpha` identity.
41
+
42
+
To force a local lower-version baseline against an already-published alpha, build the Release output with an explicit older version, then launch that output:
Copy file name to clipboardExpand all lines: docs/VERSIONING.md
+13-11Lines changed: 13 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,20 +6,20 @@ This project uses GitVersion for automatic semantic versioning based on git tags
6
6
7
7
### Version Properties in .csproj
8
8
9
-
The project file (`OpenClaw.Tray.WinUI.csproj`) defines only the `<Version>` property:
9
+
The project file (`OpenClaw.Tray.WinUI.csproj`) defines only the `<Version>` property. CI release builds override this value from the pushed tag; the checked-in value is the local-development fallback:
10
10
11
11
```xml
12
-
<Version>0.3.0</Version>
12
+
<Version>0.6.0-alpha.1</Version>
13
13
```
14
14
15
15
Other version-related properties (`FileVersion` and `AssemblyVersion`) are **not** explicitly set in the csproj files. This is intentional.
16
16
17
17
### Automatic Version Derivation
18
18
19
19
When only `<Version>` is set in a .NET project:
20
-
-**AssemblyVersion**: Automatically set to the numeric part of `Version` (e.g., `0.3.0` →`0.3.0.0`)
21
-
-**FileVersion**: Automatically set to the numeric part of `Version` (e.g., `0.3.0` →`0.3.0.0`)
22
-
-**InformationalVersion**: Set to the full `Version` value including suffixes (e.g., `0.3.0-beta.1`)
20
+
-**AssemblyVersion**: Automatically set to the numeric part of `Version` (e.g., `0.6.0-alpha.1` ->`0.6.0.0`)
21
+
-**FileVersion**: Automatically set to the numeric part of `Version` (e.g., `0.6.0-alpha.1` ->`0.6.0.0`)
22
+
-**InformationalVersion**: Set to the full `Version` value including suffixes (e.g., `0.6.0-alpha.1`)
23
23
24
24
This ensures all version properties stay in sync automatically.
25
25
@@ -31,7 +31,7 @@ During CI builds (`.github/workflows/ci.yml`), GitVersion determines the semanti
This `-p:Version=...` argument overrides the `<Version>` property in the csproj, and consequently also sets `FileVersion`and `AssemblyVersion` to match.
34
+
This `-p:Version=...` argument overrides the `<Version>` property in the csproj, and consequently also sets `FileVersion`, `AssemblyVersion`, and `InformationalVersion` from the release tag.
35
35
36
36
### Auto-Updater Version Detection
37
37
@@ -41,7 +41,9 @@ The Updatum auto-updater determines the current application version by reading t
41
41
Assembly.GetExecutingAssembly().GetName().Version
42
42
```
43
43
44
-
This is why it's critical that `AssemblyVersion` (and `FileVersion`) match the semantic version - otherwise, the updater will get confused and keep offering the same update repeatedly.
44
+
This is why it's critical that `AssemblyVersion` (and `FileVersion`) match the numeric release version - otherwise, the updater will get confused and keep offering the same update repeatedly. Pre-release labels are preserved in `InformationalVersion` for display and diagnostics, but the updater's comparison is numeric.
45
+
46
+
Stable update checks use GitHub's latest release endpoint and ignore pre-releases. Alpha testing is opt-in: set `OPENCLAW_UPDATE_CHANNEL=alpha` before launching a Release build. That enables Updatum pre-release checks and makes it fetch the release list instead of only the latest stable release. The updater is also constrained to `.zip` release assets, because the portable ZIP payloads are the assets intended for in-app replacement; MSIX packages are installed/sideloaded separately.
45
47
46
48
## Historical Issue
47
49
@@ -79,17 +81,17 @@ By removing the hardcoded `FileVersion` and `AssemblyVersion` properties, they n
79
81
80
82
`src/OpenClaw.Shared/AppVersionInfo.cs` exposes:
81
83
82
-
-`AppVersionInfo.Version`→ bare string, e.g. `"0.4.7"`
83
-
-`AppVersionInfo.DisplayVersion`→`"v"` prefix, e.g. `"v0.4.7"`
84
+
-`AppVersionInfo.Version`-> bare string, e.g. `"0.6.0-alpha.1"`
85
+
-`AppVersionInfo.DisplayVersion`->`"v"` prefix, e.g. `"v0.6.0-alpha.1"`
84
86
85
87
It resolves the version by:
86
88
87
89
1. Looking for the `OpenClaw.Tray.WinUI` assembly in the current `AppDomain` (so `dotnet test` and CLI siblings
88
90
still report the tray's version rather than the testhost / dotnet host).
89
91
2. Falling back to `Assembly.GetEntryAssembly()`, then to the Shared assembly.
90
92
3. Reading `AssemblyInformationalVersionAttribute` (preferred) or `AssemblyVersion`.
91
-
4. Stripping SourceLink build metadata (`+abc123`) **and** the SemVer pre-release suffix (`-beta.1`) so the
92
-
displayed value matches what Updatum compares (Updatum reads the numeric `AssemblyVersion` only).
93
+
4. Stripping SourceLink build metadata (`+abc123`) while preserving SemVer pre-release suffixes (`-alpha.1`) so
94
+
alpha builds are visibly identifiable in About, diagnostics, handshakes, and update-check status.
93
95
94
96
For tests that need a deterministic value regardless of host process, set the `internal` test hook:
0 commit comments