Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
31d9e83
feat(install): make the ROCm compiler toolchain opt-in
rominf Aug 3, 2026
f7c20eb
fix(install): name only the extras the install asked for
rominf Aug 12, 2026
a354fb0
test(e2e): prove runtime-only SDK serves with vLLM
rominf Aug 18, 2026
18a1992
fix(install): close the remaining --devel non-blocking gaps
rominf Aug 20, 2026
979295c
test(install): narrow the manifest devel test to what it proves
rominf Aug 20, 2026
d5e36e3
fix(install): reconcile --devel with the ROCm 10 layout landed on main
rominf Sep 17, 2026
ede904f
test(install): guard the seam --devel travels through
rominf Sep 17, 2026
e784b2d
refactor(install): drop the extras helper main superseded
rominf Sep 17, 2026
098d599
test(e2e): prove the toolchain default on a lane that runs per PR
rominf Sep 17, 2026
1d6b2d6
style(scripts): drop the blank line left by removing the spec constant
rominf Sep 17, 2026
bd02e0d
test(e2e): move the --devel preview to the nightly lane
rominf Sep 17, 2026
07c4df3
fix(install): resolve versions against the extras that were asked for
rominf Sep 22, 2026
3f249ab
test(install): pin what version resolution asks uv for
rominf Sep 22, 2026
ef1b527
Revert "test(e2e): move the --devel preview to the nightly lane"
rominf Sep 22, 2026
c9207a1
fix(storage): keep the toolchain out of the runtime-only prune bucket
rominf Sep 23, 2026
a36821a
feat(examine): report whether the active runtime has the toolchain
rominf Sep 23, 2026
92f363f
docs: say that --devel creates a second runtime, not a bigger one
rominf Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/e2e-selfhosted.yml
Original file line number Diff line number Diff line change
Expand Up @@ -294,8 +294,9 @@ jobs:
export E2E_SHARED_UV_CACHE_DIR="$runner_root/uv-cache"
# Share ONE installed managed runtime across the serve/chat scenarios so
# `rocm install sdk` runs once per runner, not once per scenario (the
# per-scenario install count — each a multi-GiB TheRock SDK whose probe
# unpacks an ~8.8 GiB devel tarball — is what blew the time cap). The
# per-scenario install count — each a multi-GiB TheRock SDK, plus an
# additional ~8.8 GiB compiler/headers tarball on any scenario passing
# `--devel` — is what blew the time cap). The
# "a managed runtime is active" precondition symlinks each scenario's
# data/runtimes here (see use_shared_runtimes); clean-slate scenarios
# stay isolated. Persisted across runs on RUNNER_WORKSPACE and refreshed
Expand Down
37 changes: 29 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ sometimes because it also needs sudo or a reboot).
```
rocm install sdk [--channel release|nightly] [--format wheel|tarball]
[--version x.y.z | --build-date YYYY-MM-DD]
[--family gfx110X-all] [--prefix PATH] [--dry-run]
[--family gfx110X-all] [--prefix PATH] [--devel] [--dry-run]
[--approve-replacing-active-default] [--yes]

rocm install driver [--dkms] [--yes] [--dry-run] [--reconcile]
Expand All @@ -310,7 +310,18 @@ rocm update [--apply] [--runtime KEY] [--activate] [--dry-run]
```

`install sdk` downloads TheRock ROCm wheels into a Python environment managed
by rocm-cli. An install with no active default runtime never prompts, but once a
by rocm-cli; pass `--devel` to also install the compiler and headers needed to
build GPU code, roughly doubling the download. `--devel` is not an addition to
an existing runtime: a runtime is identified by the packages it was installed
from, so running `rocm install sdk` and later `rocm install sdk --devel` at the
same version leaves you with **two** side-by-side runtimes — the second is a
fresh full install, not a toolchain bolted onto the first — and the second one
becomes active. `rocm runtimes list` marks each one `toolchain=included` or
`toolchain=excluded`, `rocm examine` reports the active runtime's as
`active_runtime_toolchain`, and `rocm storage remove-old-installs` counts the
two kinds separately so neither evicts the other. To reclaim the space, uninstall
the one you do not want with `rocm runtimes uninstall <runtime-key>`.
An install with no active default runtime never prompts, but once a
managed runtime is the active default every `install sdk` asks first, because
the new install takes over as the active default. That gate is not scoped to the
family or channel you are installing: a `--family` or `--channel` you have never
Expand Down Expand Up @@ -381,6 +392,13 @@ rocm runtimes adopt --python <path> [--root <path>] [--runtime-id ID]
[--runtime-key KEY] [--channel LABEL] [--replace]
```

`list` shows each runtime's version, GPU family, mode, and whether it carries
the compiler toolchain (`toolchain=included|excluded`). Runtimes are told apart
by the packages they were installed from, not by version alone, so one version
can appear more than once: a `--devel` install and a plain one of the same
version are two separate runtimes, as are two installs that resolved different
GPU device payloads.

`uninstall` prompts for confirmation unless `--yes` is passed; outside an
interactive terminal `--yes` is required. `--dry-run` prints the plan and
exits without prompting or making changes.
Expand All @@ -402,12 +420,15 @@ rocm storage remove-downloads [--dry-run] [--yes]
```

`remove-old-installs` keeps the two most recent installs for each channel,
format, and GPU family, and never touches the install in use, the rollback
target, or a folder rocm-cli did not create. "Most recent" means most recently
installed rather than highest version, so after a deliberate downgrade the
older version counts as the newer install. Because the count applies per
channel, format, and GPU family, a machine that has tried several channels
keeps `--keep` installs for each of them. Anything it declines to remove is
format, GPU family, and toolchain choice, and never touches the install in use,
the rollback target, or a folder rocm-cli did not create. "Most recent" means
most recently installed rather than highest version, so after a deliberate
downgrade the older version counts as the newer install. Because the count
applies per channel, format, GPU family, and toolchain choice, a machine that
has tried several channels keeps `--keep` installs for each of them — and a
runtime-only install never evicts a `--devel` one, since the two are separate
runtimes serving different purposes rather than newer and older versions of the
same thing. Anything it declines to remove is
listed with the reason, and `--dry-run` shows the whole plan without changing
anything. `remove-downloads` clears cached archives that rocm-cli can download
again; a cache folder that is a link to somewhere else is left alone rather
Expand Down
3 changes: 3 additions & 0 deletions apps/rocm/src/comfyui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2353,6 +2353,7 @@ mod tests {
wheel_composition: None,
read_only: false,
imported_from: None,
devel: true,
installed_at_unix_ms: 100,
};

Expand Down Expand Up @@ -2818,6 +2819,7 @@ mod tests {
wheel_composition: None,
read_only: false,
imported_from: None,
devel: true,
installed_at_unix_ms: 100,
};

Expand Down Expand Up @@ -2917,6 +2919,7 @@ mod tests {
wheel_composition: None,
read_only: false,
imported_from: None,
devel: true,
installed_at_unix_ms: 100,
})
}
Expand Down
Loading
Loading