Skip to content

Migrate docker to new repository - #3724

Merged
paul-nechifor merged 5 commits into
mainfrom
sam/docker-migrate
Aug 29, 2026
Merged

Migrate docker to new repository#3724
paul-nechifor merged 5 commits into
mainfrom
sam/docker-migrate

Conversation

@Dreamsorcerer

Copy link
Copy Markdown
Collaborator

No description provided.

@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
4850 2 4848 87
View the top 1 failed test(s) by shortest run time
dimos.e2e_tests.test_manipulation_planning_groups::test_dual_arm_plans_and_dispatches_both_arms_through_control_coordinator
Stack Traces | 120s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a470d1520>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7ba0>

    def test_dual_arm_plans_and_dispatches_both_arms_through_control_coordinator(
        lcm_spy: LcmSpy,
        start_blueprint: Callable[..., DimosCliCall],
    ) -> None:
        """Plan one generated plan over both arms and dispatch through one trajectory task."""
>       _start_openarm_mock_planner(start_blueprint, lcm_spy)

lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a470d1520>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7ba0>

dimos/e2e_tests/test_manipulation_planning_groups.py:190: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/test_manipulation_planning_groups.py:151: in _start_openarm_mock_planner
    lcm_spy.wait_for_saved_topic(JOINT_STATE_TOPIC, timeout=120.0)
        lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a470d1520>
        start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7ba0>
dimos/e2e_tests/lcm_spy.py:97: in wait_for_saved_topic
    wait_until(
        condition  = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7f60>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a470d1520>
        timeout    = 120.0
        topic      = '/coordinator_joint_state#sensor_msgs.JointState'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

predicate = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7f60>

    def wait_until(
        predicate: Callable[[], bool],
        *,
        timeout: float,
        interval: float = 0.1,
        message: str | None = None,
    ) -> None:
        """Poll ``predicate`` until it returns truthy or ``timeout`` elapses."""
        deadline = time.monotonic() + timeout
        while time.monotonic() < deadline:
            if predicate():
                return
            time.sleep(interval)
>       raise TimeoutError(message or f"Timed out after {timeout}s waiting for condition")
E       TimeoutError: Timeout waiting for topic /coordinator_joint_state#sensor_msgs.JointState

deadline   = 4332390.343150922
interval   = 0.1
message    = 'Timeout waiting for topic /coordinator_joint_state#sensor_msgs.JointState'
predicate  = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7f60>
timeout    = 120.0

.../utils/testing/waiting.py:35: TimeoutError
View the full list of 1 ❄️ flaky test(s)
dimos.e2e_tests.test_manipulation_planning_groups::test_single_arm_plans_and_executes_through_control_coordinator

Flake rate in main: 7.69% (Passed 12 times, Failed 1 times)

Stack Traces | 120s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a45aa5820>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7600>

    def test_single_arm_plans_and_executes_through_control_coordinator(
        lcm_spy: LcmSpy,
        start_blueprint: Callable[..., DimosCliCall],
    ) -> None:
        """Plan with one arm and execute through its trajectory task."""
>       _start_openarm_mock_planner(start_blueprint, lcm_spy)

lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a45aa5820>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7600>

dimos/e2e_tests/test_manipulation_planning_groups.py:159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/test_manipulation_planning_groups.py:151: in _start_openarm_mock_planner
    lcm_spy.wait_for_saved_topic(JOINT_STATE_TOPIC, timeout=120.0)
        lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a45aa5820>
        start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x701a45cf7600>
dimos/e2e_tests/lcm_spy.py:97: in wait_for_saved_topic
    wait_until(
        condition  = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7880>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x701a45aa5820>
        timeout    = 120.0
        topic      = '/coordinator_joint_state#sensor_msgs.JointState'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

predicate = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7880>

    def wait_until(
        predicate: Callable[[], bool],
        *,
        timeout: float,
        interval: float = 0.1,
        message: str | None = None,
    ) -> None:
        """Poll ``predicate`` until it returns truthy or ``timeout`` elapses."""
        deadline = time.monotonic() + timeout
        while time.monotonic() < deadline:
            if predicate():
                return
            time.sleep(interval)
>       raise TimeoutError(message or f"Timed out after {timeout}s waiting for condition")
E       TimeoutError: Timeout waiting for topic /coordinator_joint_state#sensor_msgs.JointState

deadline   = 4332270.150472071
interval   = 0.1
message    = 'Timeout waiting for topic /coordinator_joint_state#sensor_msgs.JointState'
predicate  = <function LcmSpy.wait_for_saved_topic.<locals>.condition at 0x701a45cf7880>
timeout    = 120.0

.../utils/testing/waiting.py:35: TimeoutError

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

@Dreamsorcerer
Dreamsorcerer marked this pull request as ready for review August 27, 2026 17:29
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR moves development and CI container images from GitHub Container Registry to Docker Hub. The development launcher does not consistently select branch-built images: a build on dev produces dimensional/ros-dev:dev, but later startup and pull operations use dimensional/ros-dev:latest instead. This prevents developers from running the image they just built.

Confidence Score: 4/5

Not safe to merge until branch-specific builds and subsequent development commands use the same image tag.

An isolated execution exercised the build, startup, and pull flows on a simulated dev branch and directly showed that the build tag differs from the tag selected afterward.

Files Needing Attention: bin/dev needs to derive its operational image tag from the current branch, rather than retaining a fixed latest tag.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced proofs for two posted P1 findings and linked their review comments.
  • T-Rex completed the requested contract validation, but local artifact references were not uploaded.

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. General comment

    P1 Startup and pull ignore the branch-tagged image built by bin/dev build

    • Bug
      • On branch dev, the build path produces dimensional/ros-dev:dev, but later startup inspects/pulls dimensional/ros-dev:latest, and bin/dev pull also pulls :latest. The locally built branch image is therefore not selected for those paths.
    • Cause
      • IMAGE_TAG is initialized once as the literal $IMAGE:latest at bin/dev:5; only build_image derives get_branch_tag locally (bin/dev:59-66).
    • Fix
      • Set the operational image tag from get_branch_tag (for example after the function definition) or consistently derive it at every image operation, so build, inspection, startup, stop, and pull use the same branch-specific tag.

    T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "Migrate docker" | Re-trigger Greptile

Comment thread bin/dev Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 27, 2026
@github-actions github-actions Bot added ready-to-merge Required CI checks have passed on this PR and removed ready-to-merge Required CI checks have passed on this PR labels Aug 27, 2026
@paul-nechifor
paul-nechifor added this pull request to the merge queue Aug 29, 2026
Merged via the queue into main with commit 14002d9 Aug 29, 2026
28 of 30 checks passed
@paul-nechifor
paul-nechifor deleted the sam/docker-migrate branch August 29, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants