Skip to content

Import only the DIOS installation core - #4027

Closed
TomCC7 wants to merge 1 commit into
mainfrom
feat/installer-import
Closed

Import only the DIOS installation core#4027
TomCC7 wants to merge 1 commit into
mainfrom
feat/installer-import

Conversation

@TomCC7

@TomCC7 TomCC7 commented Sep 9, 2026

Copy link
Copy Markdown
Member

Superseded by the replacement Python dimup stack: #4042#4043#4044#4045#4046#4047. See the onboarding PRD for the current review map.


Imports only the DIOS installation core into an independent Rust workspace. Desktop/frontend examples, app and service management, self-update, global configuration, Docker/Nix packaging, and old publishing tooling are excluded from this base PR.

The core prepares uv/Pixi/Nix and explicit dependency profiles, with required failures treated as fatal. Includes the Python dependency corrections needed by those profiles and withdraws the old README installer command. SDK scaffolding, the public doctor command, and delivery automation are in the following stack layers.

Validation: this base snapshot passes 10 Rust tests and standalone Clippy. The rewritten base contains 16 installer files, not the complete upstream repository. Provenance records the source DIOS revision.

Repository-wide CI note: run 34419296236 hit dimos/utils/test_shm.py::test_create_or_attach_splits_owner_and_reader (an extra observed size 0). Its automatic retry passed; the job still reported failure. No shared-memory implementation or test code is changed here. The final stack's dedicated workspace-creator matrix is green.

@TomCC7
TomCC7 added this pull request to stack #4031 September 9, 2026 19:59
@TomCC7 TomCC7 changed the title feat/installer import Import DIOS into the DimOS repository Sep 9, 2026
@codecov

codecov Bot commented Sep 9, 2026

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
5178 1 5177 45
View the top 1 failed test(s) by shortest run time
dimos.utils.test_shm::test_create_or_attach_splits_owner_and_reader
Stack Traces | 0.424s run time
name = 'dimos_test_a8fee773f3e2'
slow_ftruncate = <function slow_ftruncate.<locals>.delayed at 0x7f0d353dccc0>

    def test_create_or_attach_splits_owner_and_reader(name, slow_ftruncate):
        """Concurrent symmetric callers: exactly one owns, the other waits and attaches."""
        out: list[tuple[bool, int]] = []
        lock = threading.Lock()
        barrier = threading.Barrier(2)
    
        def racer() -> None:
            barrier.wait()
            shm, owner = create_or_attach_shm(name, SIZE, timeout=5.0)
            with lock:
                out.append((owner, shm.size))
            shm.close()
    
        threads = [threading.Thread(target=racer, daemon=True) for _ in range(2)]
        for t in threads:
            t.start()
        for t in threads:
            t.join(timeout=8)
    
        assert len(out) == 2, f"a racer did not finish: {out}"
        assert sorted(owner for owner, _ in out) == [False, True]
>       assert {size for _, size in out} == {SIZE}
E       assert {0, 65536} == {65536}
E         
E         Extra items in the left set:
E         #x1B[0m#x1B[94m0#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E         
E         Full diff:
E         #x1B[0m#x1B[90m #x1B[39;49;00m {#x1B[90m#x1B[39;49;00m
E         #x1B[92m+     0,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E         #x1B[90m #x1B[39;49;00m     65536,#x1B[90m#x1B[39;49;00m
E         #x1B[90m #x1B[39;49;00m }#x1B[90m#x1B[39;49;00m

barrier    = <threading.Barrier at 0x7f0cc62316a0: waiters=0/2>
lock       = <unlocked _thread.lock object at 0x7f0d34ee1840>
name       = 'dimos_test_a8fee773f3e2'
out        = [(True, 65536), (False, 0)]
racer      = <function test_create_or_attach_splits_owner_and_reader.<locals>.racer at 0x7f0d353dcae0>
slow_ftruncate = <function slow_ftruncate.<locals>.delayed at 0x7f0d353dccc0>
t          = <Thread(Thread-4428 (racer), stopped daemon 139692100015808)>
threads    = [<Thread(Thread-4427 (racer), stopped daemon 139689633699520)>, <Thread(Thread-4428 (racer), stopped daemon 139692100015808)>]

dimos/utils/test_shm.py:149: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

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