utils/release/release_utils library
Release notes, auto-updater, semantic versioning, and user management utilities.
Ported from:
- releaseNotes.ts (360 LOC) -- changelog fetching, parsing, display
- autoUpdater.ts (561 LOC) -- version checking, lock management, install
- semver.ts (59 LOC) -- semantic version comparison
- user.ts (194 LOC) -- user data and email resolution
Classes
- AutoUpdaterController
- Controller for auto-update functionality.
- AutoUpdaterResult
- Result of an auto-update operation.
- CoreUserData
- Core user data used as base for all analytics providers.
- GitHubActionsMetadata
- GitHub Actions metadata when running in CI.
- MaxVersionConfig
- Configuration for maximum allowed version (server-side kill switch).
- NpmDistTags
- npm dist-tags (latest and stable versions).
- OAuthAccountInfo
- OAuth account information.
- ReleaseNotesController
- Controller for release notes management.
- ReleaseNotesResult
- Result of checking for release notes.
- SemVer
- Parsed semantic version for comparison.
- UserController
- Controller for user data and email resolution.
Enums
- AutoUpdateInstallStatus
- Status of an installation operation.
- ReleaseChannel
- Release channel for version management.
Constants
- changelogUrl → const String
- URL for the public changelog.
Functions
-
semverCoerce(
String version) → String? - Coerce a version string to a clean SemVer (strip build metadata).
-
semverGt(
String a, String b) → bool -
Returns true if version
ais greater than versionb. -
semverGte(
String a, String b) → bool -
Returns true if version
ais greater than or equal to versionb. -
semverLt(
String a, String b) → bool -
Returns true if version
ais less than versionb. -
semverLte(
String a, String b) → bool -
Returns true if version
ais less than or equal to versionb. -
semverOrder(
String a, String b) → int - Returns the comparison order: -1, 0, or 1.