Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
9ad6b01
SpatialMemory converted to Dask module, input LCM odom and video streams
spomichter Jul 21, 2025
80f1de1
Put all frame processing into dask _process_frame no output observabl…
spomichter Jul 21, 2025
001448a
Removed dimOS log supression
spomichter Jul 21, 2025
5171dcf
Spatial Memory module testfile
spomichter Jul 21, 2025
f951a6d
Testing fix CICD autoconf
spomichter Jul 21, 2025
5ecc395
testing self-hosted runner
spomichter Jul 22, 2025
28e66a7
Merge pull request #484 from dimensionalOS/self-hosted-runner-ec2
spomichter Jul 22, 2025
1470776
Testing only 1 Dask thread for cicd
spomichter Jul 22, 2025
bef9bca
Merge branch 'spatial-memory-lcm-dask' of github.com:dimensionalOS/di…
spomichter Jul 22, 2025
07cda7d
Added permission fix to self hosted runner workflow
spomichter Jul 22, 2025
33bbd46
Spatial memory moved to unitree go2 light
spomichter Jul 22, 2025
ea68d92
Full unitree FakeRTC/WebRTC modules working in devcontainer
spomichter Jul 22, 2025
1688fec
Object tracker cuda error handling
spomichter Jul 22, 2025
838437f
added .observable() helper method for RemoteOut LCM type
spomichter Jul 23, 2025
bcb752e
Added run-lcm-tests to CI
spomichter Jul 23, 2025
9ba0bec
Test Git LFS self-hosted runner fix
spomichter Jul 23, 2025
08768e6
test run spatial memory module without pytest
spomichter Jul 24, 2025
d38dcbf
Merge remote-tracking branch 'origin/fix/python-dev-docker-builds' in…
spomichter Jul 24, 2025
5d0dd91
Fix run spatial module with python directly
spomichter Jul 24, 2025
0ebd876
Merge remote-tracking branch 'origin/fix/python-dev-docker-builds' in…
spomichter Jul 24, 2025
6076022
Test lightweight spatialmemory 1hz
spomichter Jul 24, 2025
0d5995c
Fix devcontainer sysctl buffer configuration handling in LCMService
spomichter Jul 24, 2025
59839a4
fix lcmspy test dev container
spomichter Jul 24, 2025
f32612c
Merge pull request #487 from dimensionalOS/lcm-modules-devcontainers
spomichter Jul 24, 2025
598cbb7
Merge branch 'spatial-memory-lcm-dask' of github.com:dimensionalOS/di…
spomichter Jul 24, 2025
fdfca13
Test permission fix to build template docker workflow
spomichter Jul 24, 2025
7a7f7cb
Add CI check to lcm autoconf
spomichter Jul 24, 2025
67a4acb
Fix lcmservice test in CI
spomichter Jul 24, 2025
8ec9ac1
Fix ros-dev conditional build
spomichter Jul 24, 2025
cbcfb52
Fix cleanup needs
spomichter Jul 24, 2025
f207f58
Fix lcmservice autoconf in CI
spomichter Jul 25, 2025
0eb4171
Temp skip hanging test on t3.large ec2
spomichter Jul 25, 2025
265b8c7
Modules test added to 16gb runner
spomichter Jul 25, 2025
7d3118a
Un skip spatial memory module test
spomichter Jul 25, 2025
e3bad0b
revert spatial memory module to gpu only pytest
spomichter Jul 25, 2025
bc55c24
Added gpu, lcm, module pytest markers
spomichter Jul 25, 2025
481af48
Spatial memory test fixes, some issue with termination/cuda memory le…
spomichter Jul 25, 2025
eb444d4
Working unitree go2 module pytest for cpu CI 16gb
spomichter Jul 25, 2025
3cfba06
Test unitree module in 8gb CI runner
spomichter Jul 25, 2025
6d2d9cb
Skipping object detection/person tracking tests due to ONNX/CUDA memo…
spomichter Jul 25, 2025
c6e0fde
Merge pull request #488 - PersonTrack and ObjectTrack refactored as M…
spomichter Jul 25, 2025
4dd64df
Merge branch 'dev' into spatial-memory-lcm-dask
spomichter Jul 25, 2025
892cf01
Added missing __init__.py's
spomichter Jul 25, 2025
7f736df
Added tofix pytest tag back to addopts
spomichter Jul 25, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/_docker-build-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
# ./bin/dockerbuild [image-name]
jobs:
build:
runs-on: dimos-runner-ubuntu-2204
runs-on: [self-hosted, Linux]
permissions:
contents: read
packages: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ permissions:

jobs:
pre-commit:
runs-on: ubuntu-latest
runs-on: self-hosted
steps:
- name: Fix permissions
run: |
Expand Down
56 changes: 51 additions & 5 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,7 @@ jobs:
uses: ./.github/workflows/_docker-build-template.yml
with:
should-run: ${{
needs.check-changes.result == 'success' &&
((needs.ros-python.result == 'success') ||
(needs.ros-python.result == 'skipped' &&
needs.check-changes.outputs.dev == 'true'))
needs.check-changes.result == 'success' && ((needs.ros-python.result == 'success') || (needs.ros-python.result == 'skipped')) && (needs.check-changes.outputs.dev == 'true')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't remember what we decided here, this is not changed by accident?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is what worked

}}
from-image: ghcr.io/dimensionalos/ros-python:${{ needs.ros-python.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}
to-image: ghcr.io/dimensionalos/ros-dev:${{ needs.check-changes.outputs.branch-tag }}
Expand Down Expand Up @@ -181,9 +178,58 @@ jobs:
cmd: "pytest -m heavy"
dev-image: dev:${{ needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}

run-lcm-tests:
needs: [check-changes, dev]
if: always()
uses: ./.github/workflows/tests.yml
with:
should-run: ${{
needs.check-changes.result == 'success' &&
((needs.dev.result == 'success') ||
(needs.dev.result == 'skipped' &&
needs.check-changes.outputs.tests == 'true'))
}}
cmd: "pytest -m lcm"
dev-image: dev:${{ needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}

# Run module tests directly to avoid pytest forking issues
run-module-tests:
needs: [check-changes, dev]
if: ${{
always() &&
needs.check-changes.result == 'success' &&
((needs.dev.result == 'success') ||
(needs.dev.result == 'skipped' &&
needs.check-changes.outputs.tests == 'true'))
}}
runs-on: [self-hosted, x64]
container:
image: ghcr.io/dimensionalos/dev:${{ needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}
steps:
- name: Fix permissions
run: |
sudo chown -R $USER:$USER ${{ github.workspace }} || true

- uses: actions/checkout@v4
with:
lfs: true

- name: Configure Git LFS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not neccessary, if tests use utils.data, lfs autodownload will happen, I think this pre-downloads whole lfs store?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No this is needed in self hosted runner unfort

run: |
git config --global --add safe.directory '*'
git lfs install
git lfs fetch
git lfs checkout

- name: Run module tests
env:
CI: "true"
run: |
/entrypoint.sh bash -c "pytest -m module"

# TODO: Remove when merge to main as workflow_run needed
cleanup-runner:
needs: [run-tests, run-heavy-tests, run-ros-tests]
needs: [run-tests, run-heavy-tests, run-ros-tests, run-lcm-tests, run-module-tests]
if: always()
runs-on: [self-hosted, Linux]
steps:
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
# sudo rm -rf /usr/local/lib/android

run-tests:
runs-on: dimos-runner-ubuntu-2204
runs-on: [self-hosted, Linux]
container:
image: ghcr.io/dimensionalos/${{ inputs.dev-image }}

Expand All @@ -47,10 +47,18 @@ jobs:
sudo chown -R $USER:$USER ${{ github.workspace }} || true

- uses: actions/checkout@v4
with:
lfs: true

- name: Configure Git LFS
Copy link
Contributor

@leshy leshy Jul 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as below

run: |
git config --global --add safe.directory '*'
git lfs install
git lfs fetch
git lfs checkout

- name: Run tests
run: |
git config --global --add safe.directory '*'
/entrypoint.sh bash -c "${{ inputs.cmd }}"

- name: check disk space
Expand Down
13 changes: 13 additions & 0 deletions dimos/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,19 @@ class RemoteOut(RemoteStream[T]):
def connect(self, other: RemoteIn[T]):
return other.connect(self)

def observable(self):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tofix - observable needs to unsubscribe from the stream once observing stops, probably disposable needs to be returned

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

"""Create an Observable stream from this remote output."""
from reactivex import create

def subscribe(observer, scheduler=None):
def on_msg(msg):
observer.on_next(msg)

self._transport.subscribe(self, on_msg)
return lambda: None

return create(subscribe)


class In(Stream[T]):
connection: Optional[RemoteOut[T]] = None
Expand Down
Loading