• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nvidia-holoscan / holoscan-cli / 29024370508
78%
main: 79%

Build:
Build:
LAST BUILD BRANCH: v4.5.0rc1
DEFAULT BRANCH: main
Ran 09 Jul 2026 02:12PM UTC
Jobs 1
Files 35
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Jul 2026 12:21PM UTC coverage: 78.498% (+0.6%) from 77.878%
29024370508

push

github

web-flow
fix: install CLI in one env and elevate only per-operation (#193)

* fix: install CLI in one env and elevate only per-operation

`./holohub setup` regressed on PEP 668 hosts (Jetson AGX Thor / IGX Thor):
`sudo ./holohub setup` failed with `externally-managed-environment`, and a
venv install then died in `sccache.sh` writing `/opt/sccache` unprivileged.

Rework the setup privilege model around two rules:

- One Python environment. The CLI runs in the interpreter you're already in
  (active venv, or the wrapper-managed venv), so build/run/setup and
  `sys.executable` stay consistent, and setup never installs into system
  Python.

- Elevate only the system steps. Replace the command-text sudo heuristic in
  `utils/io.py` with an explicit `run_command(..., as_root=True)` and a
  `write_system_file()` helper; delete `_classify_sudo_requirement` /
  `_process_command_with_sudo`. Route apt, the Kitware keyring/apt source,
  and the bash-completion copy through explicit elevation; install the ngc
  CLI into `~/.local/bin` (no root).

Setup scripts are plain, familiar bash (no helper library): they run as the
invoking user in the project's Python environment with sudo available --
`sudo apt-get ...` for system packages, `python3 -m pip ...` for Python. The
CLI runs them with the venv on PATH and prompts for sudo once on the default
path. `sccache` installs to a user-owned dir on the host (system-wide only
when root), so no elevation is needed to close the bug; `Dockerfile.util`
installs sudo so the scripts work in-container.

Signed-off-by: Wenqi Li <wenqil@nvidia.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

158 of 201 new or added lines in 8 files covered. (78.61%)

9 existing lines in 4 files now uncovered.

3125 of 3981 relevant lines covered (78.5%)

0.78 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
55.31
3.36% src/holoscan_cli/utils/host_setup.py
15
70.55
4.61% src/holoscan_cli/utils/io.py
3
91.78
-0.53% src/holoscan_cli/utils/env_info.py
2
84.75
4.31% src/holoscan_cli/commands/run.py
2
47.76
20.17% src/holoscan_cli/commands/setup_cmd.py

Coverage Regressions

Lines Coverage ∆ File
4
81.01
-5.06% src/holoscan_cli/utils/text.py
2
47.76
20.17% src/holoscan_cli/commands/setup_cmd.py
2
55.31
3.36% src/holoscan_cli/utils/host_setup.py
1
76.62
0.0% src/holoscan_cli/utils/holohub.py
Jobs
ID Job ID Ran Files Coverage
1 29024370508.1 09 Jul 2026 02:12PM UTC 35
78.5
GitHub Action Run
Source Files on build 29024370508
  • Tree
  • List 35
  • Changed 11
  • Source Changed 9
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29024370508
  • 2cfdd04e on github
  • Prev Build on main (#28948349701)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc