Wire the desktop app onto the pm store for real distribution: - MSIX bundle: electron-builder config, appx assets, manifest, copilot key + deep-link routing, App Installer + Windows Store variant (sign only the msix; inner binaries covered by the package block map) - Rust CLI shim (apps/desktop/shim) — bundled builds run from the store python + shim, never the venv; payload symlinks relativized so the relocatable venv survives relocation - Cloudflare R2 release pipeline: publish binaries + update feeds, nightly channels/tags, stamp-first version resolution - Update system: gate, uninstall steward, boot bootstrap, release channels, update receipts - install.ps1 reduced to a 361-line stage-protocol bootstrapper (heavy deps are pm's job); darwin updater + update-channel mirror ripped - doctor: main's re-landed TCC anchor kept, termux branches removed Rebuilt from ethie/pm onto the pm-store stack. 22 hot files hand-merged; uv.lock + package-lock.json keep main's newer dep tree; test_engines reads the pm/lock.json pin; lazy_deps.py deleted (all 222 importers migrated to pm in the foundation commit).
23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
|
|
def test_windows_native_install_path_docs_match_installer() -> None:
|
|
doc = Path("website/docs/user-guide/windows-native.md").read_text()
|
|
install = Path("scripts/install.ps1").read_text()
|
|
|
|
# The launchers live in the managed binary dir OUTSIDE the git checkout
|
|
# (HERMES_HOME\bin, next to the managed uv) — NOT the whole venv\Scripts
|
|
# (which would shadow the user's python, #83797) and NOT a dir inside
|
|
# the checkout (which `hermes update`'s autostash swept off disk).
|
|
assert "%LOCALAPPDATA%\\hermes\\bin" in doc
|
|
assert (
|
|
"Get-Command hermes # should print "
|
|
"C:\\Users\\<you>\\AppData\\Local\\hermes\\bin\\hermes.exe"
|
|
) in doc
|
|
# Installer exposes $HermesHome\bin, and must copy the launchers into it.
|
|
assert 'Join-Path $HermesHome "bin"' in install
|
|
assert "hermes.exe" in install and "hermes-acp.exe" in install
|
|
# Guard against regressions to either legacy layout.
|
|
assert '$hermesBin = "$InstallDir\\venv\\Scripts"' not in install
|
|
assert '$hermesBin = "$InstallDir\\bin"' not in install
|