Skip to content

installer: split required vs optional binaries - #2

Open
amd-mkarvir wants to merge 2 commits into
powderluv:mainfrom
amd-mkarvir:fix/installer-required-binaries
Open

installer: split required vs optional binaries#2
amd-mkarvir wants to merge 2 commits into
powderluv:mainfrom
amd-mkarvir:fix/installer-required-binaries

Conversation

@amd-mkarvir

Copy link
Copy Markdown

Summary

Splits the installer's binary check into required vs optional sets so that a bundle missing a non-essential binary (such as rocm-codex) no longer aborts the install.

Also clarifies in the README that rocm-codex is optional rather than implying it ships in every bundle.

Motivation

Currently the installer requires all four binaries (rocm, rocmd, rocm-engine-pytorch, rocm-codex) to be present in the release tarball. If any is missing, the installer fails with no files installed.

Recent release tarballs have shipped without rocm-codex (documented as experimental). This blocks new users from installing the CLI at all even though the core rocm/rocmd functionality is fully present in the bundle.

Reproduced on a fresh MI300X devcloud node

$ curl -fsSL https://raw.githubusercontent.com/powderluv/rocm-cli/main/install.sh | sh
rocm-cli installer
repo: powderluv/rocm-cli
channel: release
...
rocm-cli installer: bundle did not contain bin/rocm-codex
$ rocm doctor
Command 'rocm' not found

Same outcome with the nightly channel.

Change

install.sh:

  • Define REQUIRED_BINS="rocm rocmd" — installer fails fast if either is missing
  • Define OPTIONAL_BINS="rocm-engine-pytorch rocm-codex" — installer warns to stderr if missing but proceeds
  • Pre-existing copy loop already handles whatever is actually present in ${bundle_dir}/bin/*, so no behavior change for present binaries

README.md:

  • Update the "vendored Codex TUI scaffold" line to reflect that rocm-codex is optional

Rationale for the split

  • rocm — the user-facing CLI entry point. Required.
  • rocmd — the supervisor daemon. Required (managed services, automations, MCP server all depend on it).
  • rocm-engine-pytorch — first-party serving engine. Useful but not required to run rocm doctor, rocm install, or non-serving flows.
  • rocm-codex — TUI, marked experimental in code. Codex TUI is opt-in.

Testing Done

Verified end-to-end on a fresh MI300X devcloud node

Closes the install regression where a missing rocm-codex binary in the
release tarball caused install.sh to abort before placing anything in
INSTALL_DIR. rocm and rocmd are now required; rocm-codex and engine
plugins are optional and emit a warning when missing.
@amd-mkarvir

Copy link
Copy Markdown
Author

@powderluv could you take a look when you have a chance? Thank you!

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.

1 participant