Skip to content

phpup 2.5.0 (Windows)

Latest

Choose a tag to compare

@DaFa66 DaFa66 released this 22 Oct 11:01
· 18 commits to main since this release

phpup 2.5.0 (Windows)

phpup.ps1 2.5.0. A feature release that adds a machine-readable CLI, so a GUI, tray app or
CI job can drive phpup without the interactive dashboard.

Contract: docs/CLI.md.

Install

irm https://raw.githubusercontent.com/DaFa66/phpup/HEAD/phpup-boot.ps1 | iex

Nothing changes if you already run phpup: no arguments behaves exactly as before and the
dashboard is untouched.

Added

  • status, start, stop, restart, version, help verbs, with --json / -Json
    emitting a stable schema on stdout
  • --fast for polling, and --watch N: one long-lived process emitting an NDJSON status
    line every N seconds. A fresh PowerShell process costs about 0.85s, so spawning per tick
    would hold roughly 40% of a core at a 2s interval; one process with lazy probes costs about
    237ms a tick
  • --quiet, plus documented exit codes: 0 ok, 1 failed, 2 usage, 3 not installed,
    4 elevation required, 5 port conflict. A caller can relaunch elevated or name the foreign
    process instead of parsing English
  • services.items[] in the payload: per-service {name, registered, enabled}
  • Version shown in the dashboard banner wordmark, beside the logo

Fixed

  • Windows 11 reported as "Windows 10": the registry still stores
    ProductName = "Windows 10 Pro" on Windows 11, so the build number now decides (22000 and
    above is 11)
  • platform.distro was null in --fast and kept its "Windows " prefix in full mode
  • status and start could take 4 to 8 seconds before doing anything:
    Get-NetTCPConnection measured 3.8s cold on every fresh process, replaced with
    System.Net.NetworkInformation (~60ms), with the netstat parse kept as a fallback
  • Get-Process -Name replaced with .NET lookups: Windows PowerShell 5.1 writes an
    OutOfMemoryException stack trace to the error stream when the name matches nothing, which
    polluted redirected stderr
  • Unreadable PIDs when unelevated: service mode now asks the SCM (sc queryex), the fast
    path uses the process table, which needs no elevation
  • $DOWNLOAD_CACHE ignored a custom install path and pointed at C:\phpup regardless

Desktop panel (separate release)

The Rust + egui control panel that reads this payload is published on its own chain, as
panel 0.1.0 beta, with a
zip and install.ps1. It is not bundled here: the script is the single artefact for the stack,
the panel is optional.

Upgrading

u

u updates packages and brings the stack up. If the stack does not come up it now says so,
instead of claiming UPDATE COMPLETE!.