Skip to content

feat(installer): add one-command installer flow and release smoke checks#123

Merged
senamakel merged 3 commits intotinyhumansai:mainfrom
oxoxDev:feat/global-installer
Mar 31, 2026
Merged

feat(installer): add one-command installer flow and release smoke checks#123
senamakel merged 3 commits intotinyhumansai:mainfrom
oxoxDev:feat/global-installer

Conversation

@oxoxDev
Copy link
Copy Markdown
Contributor

@oxoxDev oxoxDev commented Mar 31, 2026

Summary

  • Add production installer script for macOS/Linux at scripts/install.sh with platform detection, latest release resolution, checksum verification, and local setup behavior.
  • Add Windows PowerShell installer at scripts/install.ps1 for x64 latest-release installation with digest verification and per-user install behavior.
  • Enable Windows artifacts in release workflow and add required-asset validation before publishing release.
  • Add cross-platform installer smoke workflow (.github/workflows/installer-smoke.yml) that dry-runs installers on macOS, Linux, and Windows.
  • Update README and BUILDING docs to make the one-command installer the primary install path and document setup outcomes.

Problem

  • Installing OpenHuman required manual release artifact selection, which is error-prone and increases support burden.
  • The repo lacked a complete one-command local setup path and release-level checks to ensure installer compatibility across platforms.

Solution

  • Implemented two installer entrypoints optimized for native terminal environments:
    • curl .../install.sh | bash for macOS/Linux
    • irm .../install.ps1 | iex for Windows
  • Installer logic resolves latest stable release metadata, chooses platform-specific artifacts, verifies integrity where digest metadata exists, and installs in user-local destinations with clear post-install guidance.
  • Release automation now includes Windows build target and a publish-time guard that fails if required installer assets are missing.
  • Added CI smoke coverage for installer dry-run logic to catch regressions before merge.

Submission Checklist

  • Unit tests — Vitest (app/) and/or cargo test (core) for logic you add or change
  • E2E / integration — Where behavior is user-visible or crosses UI → Tauri → sidecar → JSON-RPC; use existing harnesses (app/test/e2e, mock backend, tests/json_rpc_e2e.rs as appropriate)
  • N/A — Changes are shell/PowerShell installer scripts, CI workflow wiring, and docs updates; validation was done via installer dry-runs and workflow YAML parsing.
  • Doc comments/// / //! (Rust), JSDoc or brief file/module headers (TS) on public APIs and non-obvious modules
  • Inline comments — Added where logic or platform edge cases are non-obvious in workflow/script sections.

(Any feature related checklist can go in here)

Impact

  • Runtime/platform impact: desktop distribution/install path across macOS, Linux, and Windows.
  • Improves first-run UX and reduces install mistakes via one-command setup and clearer failure messaging.
  • Release safety improved with required-asset gating and installer smoke checks.
  • No core runtime/business-logic migration required.

Related

oxoxDev added 3 commits March 31, 2026 19:54
Add production installers with platform detection, latest-release resolution, digest verification, and local install flows.
Restore windows target in release matrix, validate required installer assets, and add cross-platform installer dry-run CI.
Make curl installer the primary command, keep Windows as secondary guidance, and describe local setup outcomes.
@graycyrus graycyrus linked an issue Mar 31, 2026 that may be closed by this pull request
5 tasks
@senamakel senamakel merged commit c46adfa into tinyhumansai:main Mar 31, 2026
7 of 8 checks passed
senamakel added a commit to senamakel/openhuman that referenced this pull request Apr 23, 2026
Two sides of the same problem:

1) PR template told authors to list `Issue(s): tinyhumansai#123`, which GitHub only
   treats as a back-reference — not a closing directive. Updated to
   prompt for `Closes tinyhumansai#123` / `Fixes tinyhumansai#123` / `Resolves tinyhumansai#123` (the
   keywords GitHub scans when populating closingIssuesReferences).

2) merge.sh now emits one `Closes #N` line per entry in
   closingIssuesReferences, placed between the LLM summary and the
   Co-authored-by block. Previously the summary prompt told the model
   to omit issue numbers, so any closing keywords from the PR body got
   stripped and the squash commit landed without them. Also strip any
   stray closing lines the LLM or PR body may still produce so we don't
   emit duplicates, and because GitHub's regex only closes the first
   ref per keyword (`Closes #1, #2` only closes #1).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Add cross-platform global installer for latest OpenHuman release

2 participants