Skip to content

Update docs to --all-groups#2065

Open
Dreamsorcerer wants to merge 2 commits into
mainfrom
all-groups
Open

Update docs to --all-groups#2065
Dreamsorcerer wants to merge 2 commits into
mainfrom
all-groups

Conversation

@Dreamsorcerer
Copy link
Copy Markdown
Collaborator

Having moved development dependencies from the extras into groups, developers will now need to install the groups.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 12, 2026

Greptile Summary

This PR updates developer documentation to replace --all-extras with --all-groups following a migration of development dependencies from uv extras into dependency groups.

  • docs/installation/osx.md and docs/installation/ubuntu.md now explicitly run uv sync --all-groups before the mypy and pytest steps, replacing the old comment that claimed uv run alone was sufficient.
  • docs/development/testing.md and README.md update their inline references from --all-extras to --all-groups to match the new project structure.

Confidence Score: 5/5

Documentation-only change with no runtime impact; all four files are internally consistent and accurately reflect the new group-based dependency layout.

All changes are confined to markdown docs and update a single flag (--all-extras--all-groups). The installation guides now explicitly run uv sync --all-groups before mypy and pytest, removing any ambiguity about what's required. No code, configs, or build scripts are touched.

No files require special attention.

Important Files Changed

Filename Overview
docs/installation/osx.md Replaces stale comment with explicit uv sync --all-groups command before mypy/pytest; accurate and consistent with ubuntu.md.
docs/installation/ubuntu.md Mirrors the osx.md change; explicit uv sync --all-groups now precedes mypy and pytest steps.
docs/development/testing.md Updates code block from --all-extras to --all-groups; opening sentence remains accurate for the default test suite only.
README.md Comment updated to reflect --all-groups and to note both self-hosted tests and mypy as motivators.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Clone repo] --> B[export GIT_LFS_SKIP_SMUDGE=1]
    B --> C[uv sync --all-groups]
    C --> D{Goal?}
    D -->|Type check| E[uv run mypy dimos]
    D -->|Default tests| F[uv run pytest --numprocesses=auto dimos]
    D -->|Self-hosted tests| G[uv sync --group tests-self-hosted]
    G --> H[pytest -m self_hosted dimos/...]
Loading

Reviews (2): Last reviewed commit: "Merge branch 'main' into all-groups" | Re-trigger Greptile

@paul-nechifor paul-nechifor enabled auto-merge (squash) May 13, 2026 01:33
@leshy
Copy link
Copy Markdown
Contributor

leshy commented May 13, 2026

some issue with CI with this @Dreamsorcerer

@codecov
Copy link
Copy Markdown

codecov Bot commented May 14, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
1740 1 1739 27
View the top 1 failed test(s) by shortest run time
dimos.protocol.rpc.test_spec::test_exception_handling_sync[lcm_rpc_context-lcm]
Stack Traces | 5.07s run time
rpc_context = <function lcm_rpc_context at 0x7f5c4e34d120>, impl_name = 'lcm'

    @pytest.mark.parametrize("rpc_context, impl_name", testdata)
    def test_exception_handling_sync(rpc_context, impl_name: str) -> None:
        """Test that exceptions are properly passed through sync RPC calls."""
        with rpc_context() as (server, client):
            # Serve the function that can raise exceptions
            unsub = server.serve_rpc(failing_function, "test_exc")
    
            try:
                # Test successful call
>               result, _ = client.call_sync("test_exc", (["ok"], {}), rpc_timeout=5.0)

client     = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7f5c4d8654c0>
impl_name  = 'lcm'
rpc_context = <function lcm_rpc_context at 0x7f5c4e34d120>
server     = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7f5c4d8641a0>
unsub      = <function LCMPubSubBase.subscribe.<locals>.unsubscribe at 0x7f5c4d03d6c0>

.../protocol/rpc/test_spec.py:212: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7f5c4d8654c0>
name = 'test_exc', arguments = (['ok'], {}), rpc_timeout = 5.0

    def call_sync(
        self, name: str, arguments: Args, rpc_timeout: float | None = None
    ) -> tuple[Any, Callable[[], None]]:
        if rpc_timeout is None:
            method = name.rsplit("/", 1)[-1]
            rpc_timeout = self.rpc_timeouts.get(name) or self.rpc_timeouts.get(
                method, self.default_rpc_timeout
            )
        event = threading.Event()
    
        def receive_value(val) -> None:  # type: ignore[no-untyped-def]
            event.result = val  # type: ignore[attr-defined]  # attach to event
            event.set()
    
        unsub_fn = self.call(name, arguments, receive_value)
        if not event.wait(rpc_timeout):
>           raise TimeoutError(f"RPC call to '{name}' timed out after {rpc_timeout} seconds")
E           TimeoutError: RPC call to 'test_exc' timed out after 5.0 seconds

arguments  = (['ok'], {})
event      = <threading.Event at 0x7f5c4d864650: unset>
name       = 'test_exc'
receive_value = <function RPCClient.call_sync.<locals>.receive_value at 0x7f5c4d03f2e0>
rpc_timeout = 5.0
self       = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7f5c4d8654c0>
unsub_fn   = <function PubSubRPCMixin.call_cb.<locals>.unsubscribe_callback at 0x7f5c4d03c220>

.../protocol/rpc/spec.py:80: 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.

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.

3 participants