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 a is greater than version b.
semverGte(String a, String b) bool
Returns true if version a is greater than or equal to version b.
semverLt(String a, String b) bool
Returns true if version a is less than version b.
semverLte(String a, String b) bool
Returns true if version a is less than or equal to version b.
semverOrder(String a, String b) int
Returns the comparison order: -1, 0, or 1.