Skip to content

fix: repair install.sh and add cross-platform installation CI - #4073

Merged
TomCC7 merged 18 commits into
cc/chore/isolated-graspgenxfrom
cc/fix/install-sh
Sep 17, 2026
Merged

TomCC7 merged 18 commits into
cc/chore/isolated-graspgenxfrom
cc/fix/install-sh

Conversation

@TomCC7

@TomCC7 TomCC7 commented Sep 11, 2026

Copy link
Copy Markdown
Member

Contribution path

Fix scripts/install.sh while the replacement in #4047 is pending.

Problem

install.sh is outdated and broken

Solution

  • Recommend the curl installer while retaining manual setup instructions; document platform support and local testing.
  • Fix shell quoting, tool setup, environment reuse, and checkout handling. Use Nix Python inside Nix shells.
  • Apply extras in both modes and exclude unsupported selections by platform. Keep refactor(grasping): isolate GraspGenX dependencies #4102’s locked dependencies, with only an ARM64 exclusion for optional embreex acceleration.
  • Report each verification step, stop early when required system packages are declined, and limit replay duration.
  • Run one install per Ubuntu 22.04/24.04 × x86_64/ARM64 × library/developer combination.
  • Skip blueprints and replay in CI. Remove the Python test harness; keep macOS jobs disabled until runners are available.

How to Test

curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/cc/fix/install-sh/scripts/install.sh | bash

AI assistance

Codex (GPT-6 and GPT-5) assisted with implementation, testing, and this description. Human review pending.

Checklist

  • I have read and approved the CLA.

Comment thread scripts/test-install.sh
Comment thread scripts/test_install.py Outdated
@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@@                       Coverage Diff                       @@
##           cc/chore/isolated-graspgenx    #4073      +/-   ##
===============================================================
+ Coverage                        79.00%   79.07%   +0.06%     
===============================================================
  Files                             1468     1466       -2     
  Lines                           139100   138851     -249     
  Branches                         11970    11956      -14     
===============================================================
- Hits                            109895   109791     -104     
+ Misses                           25824    25665     -159     
- Partials                          3381     3395      +14     
Components Coverage Δ
Tests 95.00% <100.00%> (+0.17%) ⬆️
Flag Coverage Δ
OS-ubuntu-24.04-arm 74.86% <100.00%> (+<0.01%) ⬆️
OS-ubuntu-latest 75.71% <100.00%> (ø)
Py-3.10 75.49% <100.00%> (+<0.01%) ⬆️
Py-3.11 75.69% <100.00%> (ø)
Py-3.12 75.70% <100.00%> (+<0.01%) ⬆️
SelfHosted-Large 30.77% <0.00%> (+<0.01%) ⬆️
SelfHosted-Linux 36.23% <0.00%> (+0.01%) ⬆️
SelfHosted-macOS 35.56% <0.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dimos/web/relay_bridge/test_relay_process.py 100.00% <100.00%> (ø)

... and 10 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dimos-bot

Copy link
Copy Markdown

==> python@3.14
Python is installed as
/opt/homebrew/bin/python3

Unversioned symlinks python, python-config, pip etc. pointing to
python3, python3-config, pip3 etc., respectively, are installed into
/opt/homebrew/opt/python@3.14/libexec/bin

idle3.14 requires tkinter, which is available separately:
brew install python-tk@3.14

dbm.gnu is available separately:
brew install python-gdbm@3.14

For more information about Homebrew and Python, see: https://docs.brew.sh/Homebrew-and-Python
✓ system dependencies ready
✓ uv already installed (0.12.9)
▸ python 3.12 will be installed by uv automatically

▸ developer mode: all extras (except dds)
▸ installing extras: agents,apriltag,base,drone,manipulation,misc,perception,sim,unitree,visualization,web,webrtc,scene,cpu
Where should we install DimOS? (git clone destination)
▸ developer install → /Users/dimensional/dimos
export PYTHONPATH='/Users/dimensional/.python_startup'
export UV_PYTHON_PREFERENCE='only-managed'
export DENO_NODE_SHIM_ACTIVE='1'
export NIXPKGS_ALLOW_UNFREE='1'
export TMPDIR='/var/folders/gm/2l658vjx1fv010ph6slv6jq40000gn/T/'
export XPC_SERVICE_NAME='0'
export STARSHIP_SESSION_KEY='1812204032998527'
export TERM='xterm-256color'
export SHLVL='2'
export LANG='en_US.UTF-8'
export OSLogRateLimit='64'
export PWD='/Users/dimensional'
export XDG_DATA_DIRS='/usr/local/share:/usr/share:/Users/dimensional/.nix-profile/share:/nix/var/nix/profiles/default/share'
export XPC_FLAGS='0x0'
export TERM_PROGRAM='Apple_Terminal'
export LOGNAME='dimensional'
export TERM_SESSION_ID='3F2CE3D2-3415-4F21-8725-4AFD708889CA'
export VISUAL='nano'
export USER='dimensional'
export __CFBundleIdentifier='com.apple.Terminal'
export PATH='/Users/dimensional/Library/Caches/deno/node_compat_bin:/opt/homebrew/bin:/Users/dimensional/Commands/:/Users/dimensional/.bun/bin:/Users/dimensional/.npm-global/bin:/Users/dimensional/.pixi/bin:/Users/dimensional/.openclaw/bin:/Users/dimensional/.deno/bin:/Users/dimensional/repos/rerun_pureish/.npm-global/bin:/Users/dimensional/.nix-profile/bin:/Users/dimensional/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/Users/dimensional/.cargo/bin:/Users/dimensional/.local/bin:/Users/dimensional/.cargo/bin:/Users/dimensional/gastown/gt:/Users/dimensional/gastown'
export NIX_SSL_CERT_FILE='/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt'
export HISTSIZE='50000'
export SAVEHIST='50000'
export __CF_USER_TEXT_ENCODING='0x1F5:0x0:0x0'
export SSH_AUTH_SOCK='/var/run/com.apple.launchd.KRjc3N2MaP/Listeners'
export __ETC_PROFILE_NIX_SOURCED='1'
export COLORTERM='truecolor'
export FPATH='/Users/dimensional/.zsh/completions:/Users/dimensional/completions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/5.9/functions'
export SHELL='/bin/zsh'
export EXA_COLORS='reset:
#
# file extensions
#
# hidden types
:.=2:
# doc types
:
.pdf=35:.md=35:.html=35:.tex=35:
# config types
:
.cfg=36:.json=36:.yaml=36:.toml=36:.xml:
# image types
:.png=36:.gif=36:.jpg=36:.jpeg=36:
# video types
:.mov=33:.mp4=33:.avi=33:
# TODO audio types and more video types
# code types
:
.js=32:.py=32:.rb=32:.rs=32:.sh=32:.bash=32:.zsh=32:.c=32:.cpp=32:.coffee=32:.h=32:.lua=32:.java=32:.ts=32:.ps1=32:.pl=32:.jsx=32:.jl=32:.hs=32:.cr=32:.css=32:.sass=32:.less=32:.ipynb=32:.nix=32:

# file kind
:ex=31:
:lp=35;4:

# read
:ur=32;2:gr=32;2:tr=32;2:
# write
:uw=33;2:gw=33;2:tw=33;2:
# execute
:ux=31;2:ue=31;2:gx=31;2:tx=31;2:
:xa=2:

# 
# file sizes
# 
    # small
    :sn=37;2:nb=37;2:nk=37;2:
    :ub=37;2:uk=37;2:
    # medium
    :nm=34:
    :um=34:
    # big
    :ng=32;1:nt=32;1:
    :ug=32;1:ut=32;1:

# user
:uu=;2:un=;2:gu=;2:gn=36;2:

# date
:da=35;1;2:
'

export STARSHIP_SHELL='zsh'
export EDITOR='nano'
export HISTFILE='/Users/dimensional/.zsh_history'
export LD_LIBRARY_PATH=''
export NIX_PATH='https://github.com/NixOS/nixpkgs/archive/refs/tags/25.05.tar.gz'
export ARCHFLAGS='-arch arm64'
export BUN_INSTALL='/Users/dimensional/.bun'
export HOME='/Users/dimensional'
export _='/Users/dimensional/Commands/env'
export GIT_LFS_SKIP_SMUDGE='1'
export TERM_PROGRAM_VERSION='470.2'
export NIX_PROFILES='/nix/var/nix/profiles/default /Users/dimensional/.nix-profile'
export ZSH='/Users/dimensional/.oh-my-zsh'
will run: uv sync --locked --python 3.12 --group tests --group lint --extra agents --extra apriltag --extra base --extra drone --extra manipulation --extra misc --extra perception --extra sim --extra unitree --extra visualization --extra web --extra webrtc --extra scene --extra cpu
bash: line 75: cd: /Users/dimensional/dimos: No such file or directory

✗ installation failed (exit 1)
✗ help: https://github.com/dimensionalOS/dimos/issues

@dimos-bot

Copy link
Copy Markdown

▇▇▇▇▇▇╗ ▇▇╗▇▇▇╗ ▇▇▇╗▇▇▇▇▇▇▇╗▇▇▇╗ ▇▇╗▇▇▇▇▇▇▇╗▇▇╗ ▇▇▇▇▇▇╗ ▇▇▇╗ ▇▇╗ ▇▇▇▇▇╗ ▇▇╗
▇▇╔══▇▇╗▇▇║▇▇▇▇╗ ▇▇▇▇║▇▇╔════╝▇▇▇▇╗ ▇▇║▇▇╔════╝▇▇║▇▇╔═══▇▇╗▇▇▇▇╗ ▇▇║▇▇╔══▇▇╗▇▇║
▇▇║ ▇▇║▇▇║▇▇╔▇▇▇▇╔▇▇║▇▇▇▇▇╗ ▇▇╔▇▇╗ ▇▇║▇▇▇▇▇▇▇╗▇▇║▇▇║ ▇▇║▇▇╔▇▇╗ ▇▇║▇▇▇▇▇▇▇║▇▇║
▇▇║ ▇▇║▇▇║▇▇║╚▇▇╔╝▇▇║▇▇╔══╝ ▇▇║╚▇▇╗▇▇║╚════▇▇║▇▇║▇▇║ ▇▇║▇▇║╚▇▇╗▇▇║▇▇╔══▇▇║▇▇║
▇▇▇▇▇▇╔╝▇▇║▇▇║ ╚═╝ ▇▇║▇▇▇▇▇▇▇╗▇▇║ ╚▇▇▇▇║▇▇▇▇▇▇▇║▇▇║╚▇▇▇▇▇▇╔╝▇▇║ ╚▇▇▇▇║▇▇║ ▇▇║▇▇▇▇▇▇▇╗
╚═════╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝

the agentive operating system for generalist robotics · installer v0.3.0

▸ detecting system...

OS: macOS 26.5.1 (arm64)
Python: not found (uv will install 3.12)
GPU: Apple Silicon (Metal/MPS)
Nix: nix (Determinate Nix 3.22.3) 2.35.2
RAM: 16 GB
Disk: 346 GB free

✓ will use system package manager
▸ checking system dependencies...
✓ all system dependencies already installed
✓ uv already installed (0.12.9)
▸ python 3.12 will be installed by uv automatically

bash: line 622: platform_sel[@]: unbound variable

@TomCC7
TomCC7 marked this pull request as ready for review September 11, 2026 04:29
Comment thread docs/installation/index.md Outdated
@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 3/5

Not safe to merge until the two installer failures are fixed; the action pins should also be made immutable before relying on this workflow.

Findings

  1. P1 Honor CPU-only developer installs
  2. P1 Respect skipped system packages
  3. P2 Security Pin workflow actions immutably

Summary

  • The new installer has two blocking failures: a CPU-only developer install still resolves CUDA PyTorch packages on Linux x86_64, and declining optional system packages later makes native verification fail the installation. The new installation workflow also uses mutable action tags, which should be pinned before relying on the workflow for pull-request execution.

Reviews (1) · Last reviewed commit: "fix: handle empty installer selections i..."

Comment thread docs/capabilities/manipulation/a1z.md Outdated
Comment thread docs/quickstart.md
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Sep 12, 2026
@TomCC7
TomCC7 added this pull request to stack #4091 September 12, 2026 03:30
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Sep 12, 2026
Comment thread docs/installation/index.md Outdated
@TomCC7
TomCC7 removed this pull request from stack #4091 September 16, 2026 00:15
@TomCC7
TomCC7 changed the base branch from main to cc/chore/isolated-graspgenx September 16, 2026 00:15
@TomCC7
TomCC7 added this pull request to stack #4176 September 16, 2026 00:15
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Sep 16, 2026
@TomCC7
TomCC7 added this pull request to the merge queue Sep 17, 2026
An error occurred while trying to automatically change base from cc/chore/isolated-graspgenx to main September 17, 2026 01:03
Merged via the queue into main with commit e9428dd Sep 17, 2026
46 checks passed
@TomCC7
TomCC7 deleted the cc/fix/install-sh branch September 17, 2026 01:06
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed for release/0.0.14, because it was unable to cherry-pick the commit(s).

Please cherry-pick the changes locally and resolve any conflicts.

git fetch origin release/0.0.14
git worktree add -d .worktree/backport/4073-to-release/0.0.14 origin/release/0.0.14
cd .worktree/backport/4073-to-release/0.0.14
git switch --create backport/4073-to-release/0.0.14
git cherry-pick -x e9428ddb3b1cdfc808964148e21137364ae90f2b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport release/0.0.14 ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants