Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 02:33
· 74 commits to main since this release
  • Add HostSystem.TryFindExecutable for subprocess-free executable lookup with Windows PATHEXT support and Unix
    execute-permission validation.
  • Add ProcessHelper with privileged-process-aware administrator elevation through Windows runas, Linux pkexec, and
    macOS osascript, synchronous and asynchronous captured stdout/stderr results, and cross-platform process and shell
    helpers with cancellation support. Direct executable launches now use the modern .NET default of
    UseShellExecute=false, and configurable process and shell ProcessStartInfo factories and execution overloads
    expose working-directory, environment, and other native process settings. CreateShellScriptProcessStartInfo runs a
    script file by passing its path as a discrete argument, so a path containing spaces is not word-split by bash -c.
  • Add elevation-denial detection to ProcessHelper so a refused administrator prompt is distinguishable from an
    ordinary command failure: named exit-code constants per platform, IsExitCodeElevationDenied overloads, and
    parameterless Process and ProcessOutput extension methods. A cancelled Windows runas prompt now returns
    WindowsElevationCancelledExitCode instead of the generic -1; other startup failures and timeouts still return
    -1. Updatum reports a denied package installation with a dedicated message.
  • Add Linux PackagingTypes for Flatpak, Debian, RPM, Arch Linux binary, and Snap packages, plus macOS DMG and PKG
    output. Package creation uses the platform-native flatpak-builder, dpkg-deb, rpmbuild, makepkg, snapcraft,
    hdiutil, and pkgbuild tools.
  • Extend Updatum asset selection and installation to Linux Flatpak, Debian, RPM, Arch Linux binary, and Snap packages, plus
    macOS PKG and DMG packages. Flatpak updates preserve the current user/system installation scope, privileged package installs
    use ProcessHelper elevation, and post-install completion or relaunch only continues after a successful installer exit code.
    DMG installation mounts images read-only, always detaches them, and installs an embedded PKG or atomically replaces an
    embedded app bundle with rollback. A DMG runs unprivileged first and only re-runs with the administrator prompt when it
    wraps a PKG or targets a directory the current user cannot write, so instance termination and
    InstallUpdateInjectCustomScript still run exactly once.
  • Update the release workflow to build runtime assets for supported platforms, attach packages and assets to a GitHub
    release, and omit Winget publishing.
  • Replace the original StageKit.Demo console sample with an Avalonia desktop workshop for runtime diagnostics,
    settings, storage utilities, settings-directory access, crash/relaunch report recovery, and verified Updatum downloads
    from sn4k3/UVtools; add live theme selection, profile-directory explorer access, and opt-in update installation;
    retain the console sample as StageKit.DemoCmd.
  • Resolve published executables, bundle launchers, and WiX installer payloads from the main project's AssemblyName,
    independently of product and artifact naming.
  • Rename ApplicationBundleType to ApplicationPackagingType (with Portable,
    DotNetSingleFile, WindowsInstaller, LinuxAppImage, LinuxFlatpak, MacOSAppBundle)
  • Replace EntryApplication.BundleType with PackagingType
  • Add FileUtilities and StringExtensions (quoting helpers) to StageKit.Primitives
  • Add StageKit.Updatum: GitHub release discovery, SHA-256 verification, platform signature verification, and
    cross-platform staged update installation
  • Add Bash ANSI-C and Windows batch value quoting helpers to StageKit.Primitives.StringExtensions; reuse shared
    leaf-name validation from FileUtilities in StageKit.Updatum
  • Add StageKit.Fallout: NUKE-based build pipeline (StageKitBuild) with Windows/macOS/Linux bundle creation, AppImage
    tooling, WiX installer orchestration, and Flatpak support
  • Add WiX installer project template and builds/build/ NUKE build entry point
  • Update solution file, README, CHANGELOG, and all documentation for the above changes
  • Serialize updater operations and keep State/IsBusy active until asynchronous work actually completes.
  • Use isolated temporary workspaces, reject unsafe release-asset names, verify GitHub-native SHA-256 digests with
    sidecars as fallback, and support application-provided platform signature verification.
  • Make portable and single-file update scripts stage replacements and restore backups when commit fails.
  • Honor install cancellation, forceTerminate, and no-relaunch behavior consistently, including bounded Flatpak
    installation that kills timed-out child processes.
  • Dispatch updater property notifications through the configured synchronization context and add a dedicated Updatum
    regression test suite.