Skip to content

Test brew/pipx/uv tool installs from the branch in CI#42

Merged
alexkroman merged 2 commits into
mainfrom
ci-test-install-paths
Jun 8, 2026
Merged

Test brew/pipx/uv tool installs from the branch in CI#42
alexkroman merged 2 commits into
mainfrom
ci-test-install-paths

Conversation

@alexkroman

Copy link
Copy Markdown
Collaborator

Summary

Restructures the README install order and adds real CI coverage for every documented install path, built from the branch's own code rather than a release tag or PyPI.

README

  • Homebrew (recommended) is now first, using brew install --HEAD aai so it works from the private, pre-release repo today (git clone uses your existing GitHub creds). Note explains dropping --HEAD once v0.1.0 is tagged.
  • pipx / uv next (uv tool install added alongside pipx install, both via the git URL — never the squatted assemblyai-cli PyPI name).
  • curl | sh one-liner demoted to last.

CI — three install paths, all from the branch

Path How
pipx install already covered — install.sh's pipx branch is pipx install <branch wheel>
uv tool install new test_install_via_uv_tool (hermetic UV_TOOL_* home, asserts aai version); macOS matrix widened -k pipx-k "pipx or uv_tool"
brew install new formula-install job (macOS only): repoints the formula at a git archive tarball of the CI checkout with a computed shasum, installs via a throwaway --no-git tap, runs aai version + brew test

All paths install the locally-built branch artifact (wheel / source tarball), so they prove the PR's code installs and runs, work while the repo is private, and match the existing install_script design. The brew job repoints around the placeholder sha256 that previously deferred real installs to release time, and exercises the formula's 50+ resource list — the part most likely to drift from pyproject.toml/uv.lock.

Also adds a head spec to the formula so brew install --HEAD aai works pre-release.

Verification

  • uv tool + pipx smoke tests pass locally; ruff + markdownlint clean; brew style clean (incl. new head line)
  • ✅ Formula-pin transform verified: only stable url/sha256 change (all resources intact), brew parses it and detects stable 0.1.0
  • ✅ Workflow YAML clean (actionlint); heredoc Python lands at column 0
  • ⚠️ test_install_via_pip_user fails locally on macOS (PEP 668) — pre-existing, runs on Linux only in CI by design
  • ⏳ The real brew install source build (~10–15 min) is proven only by the new macOS CI job

🤖 Generated with Claude Code

alexkroman-assembly and others added 2 commits June 8, 2026 09:55
Lead the README with Homebrew (recommended) via `--HEAD` (works from the
private repo today), then pipx and `uv tool install`, demoting the curl|sh
one-liner to last.

Back the documented install paths with real CI coverage built from the
branch's own code:
- uv tool: new `test_install_via_uv_tool` installs the branch wheel into a
  hermetic UV_TOOL_* home; the existing macOS matrix widens to `pipx or
  uv_tool`. pipx is already exercised by install.sh's `pipx install <wheel>`
  branch.
- brew: new macOS-only `formula-install` job repoints the formula at a
  `git archive` tarball of the CI checkout with a computed sha256, installs it
  through a throwaway `--no-git` tap, and runs `aai version` + `brew test`.
  This sidesteps the placeholder sha that blocked real installs until the
  v0.1.0 tag, and exercises the formula's resource list (the part most likely
  to drift from pyproject/uv.lock).

Also add a `head` spec to the formula so `brew install --HEAD aai` works
pre-release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the README install-order conflict in favor of the branch's
restructure (Homebrew-recommended first, pipx/uv, then the curl one-liner).

Drop the invalid `--formula` flag from `brew test` in the formula-install
CI job — `brew test` doesn't accept it (only `brew install` does), which is
what failed the "brew install (real, macOS)" job after the install itself
succeeded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@alexkroman alexkroman merged commit 1aad617 into main Jun 8, 2026
11 checks passed
@alexkroman alexkroman deleted the ci-test-install-paths branch June 8, 2026 17:55
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.

2 participants