Skip to content

Add arm to test matrix#2268

Merged
leshy merged 7 commits into
mainfrom
Dreamsorcerer-patch-2
Jun 3, 2026
Merged

Add arm to test matrix#2268
leshy merged 7 commits into
mainfrom
Dreamsorcerer-patch-2

Conversation

@Dreamsorcerer
Copy link
Copy Markdown
Collaborator

Fixes #2263.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 27, 2026

Codecov Report

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

📢 Thoughts on this report? Let us know!

@Dreamsorcerer Dreamsorcerer marked this pull request as ready for review May 27, 2026 16:31
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 27, 2026

Greptile Summary

This PR adds an ARM (ubuntu-24.04-arm) runner to the GitHub Actions test matrix and guards the sqlite-vec-dependent tests so they are skipped on aarch64 (where the wheel ships a 32-bit binary) and on macOS (where the extension fails to load in CI).

  • The CI matrix now targets ubuntu-24.04-arm with Python 3.14, and the OS condition checks are updated from exact string equality to startsWith(...) to match both ubuntu-latest and ubuntu-24.04-arm.
  • A new _no_sqlite_vec() helper and skipif_no_sqlite_vec marker are added to the root conftest.py, and the same skip logic (duplicated inline) is applied imperatively inside the sqlite_store and sqlite_spy_session fixtures for tests that don't use the class-level marker.

Confidence Score: 5/5

The changes are safe to merge — they add a new CI runner and skip guards for a known-broken native extension on ARM, with no changes to production logic.

The CI matrix expansion is straightforward and correctly uses startsWith to match both Ubuntu runner variants. The sqlite-vec skip logic is applied consistently through both the marker system (collection-time) and imperative fixture skips (runtime), correctly isolating only the sqlite-vec tests. The duplication of the skip predicate across three files was already noted in a prior review thread and does not represent a new defect here.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Adds ubuntu-24.04-arm to the matrix with Python 3.14, changes OS values to full runner names, and updates OS conditional steps to use startsWith for broader matching.
dimos/conftest.py Adds _no_sqlite_vec() helper and registers/handles the skipif_no_sqlite_vec marker through the standard pytest_collection_modifyitems hook.
dimos/memory2/conftest.py Adds _SKIP_SQLITE_VEC flag (duplicates root conftest logic) and imperatively skips the sqlite_store fixture on aarch64/macOS.
dimos/memory2/test_registry.py Adds skipif_no_sqlite_vec marker to TestRegistryStore, TestStoreReopen classes and two individual test methods that open SQLite/sqlite-vec stores.
dimos/memory2/test_store.py Adds _SKIP_SQLITE_VEC flag, imperatively skips sqlite_spy_session fixture, and marks TestStandaloneComponents with skipif_no_sqlite_vec.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[CI Matrix Job Start] --> B{matrix.os}
    B -->|ubuntu-latest x 3.10-3.14| C[x86-64 Ubuntu Runner]
    B -->|ubuntu-latest x 3.14t| D[x86-64 Ubuntu Runner free-threaded Python]
    B -->|ubuntu-24.04-arm x 3.14| E[ARM64 Ubuntu Runner]

    C --> F[Install portaudio startsWith ubuntu]
    D --> F
    E --> F

    F --> G[uv sync + pytest]
    G --> H{platform.machine == aarch64?}
    H -->|Yes ARM runner| I[skipif_no_sqlite_vec tests skipped]
    H -->|No x86-64| J[All tests run incl. sqlite-vec]

    I --> K[sqlite_store fixture imperative pytest.skip]
    I --> L[Class marker skipif_no_sqlite_vec collection-time skip]
Loading

Reviews (2): Last reviewed commit: "Merge branch 'main' into Dreamsorcerer-p..." | Re-trigger Greptile

Comment thread dimos/memory2/test_store.py
Copy link
Copy Markdown
Member

@leshy leshy left a comment

Choose a reason for hiding this comment

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

actually @Dreamsorcerer "skip if no sqlite vec" is a bit unclear on where this happens,

can we have standardized skip tag per OS? like this would have skip_arm tag? so that we know which OS can cover which functionality

@Dreamsorcerer
Copy link
Copy Markdown
Collaborator Author

can we have standardized skip tag per OS? like this would have skip_arm tag? so that we know which OS can cover which functionality

We can, but this needs to be skipped in macos, so I was merging this skip. Can change to adding 2 skip markers if you prefer?

Copy link
Copy Markdown
Member

@leshy leshy left a comment

Choose a reason for hiding this comment

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

don't want to block too much on details, can move and reassess, but yeah generally a preferece for per-os ignores on tests, since then we can easily see our support per OS, could we fix in the follow ups?

@leshy leshy enabled auto-merge (squash) June 3, 2026 14:47
@leshy leshy merged commit 4c3810b into main Jun 3, 2026
22 checks passed
@leshy leshy deleted the Dreamsorcerer-patch-2 branch June 3, 2026 15:03
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.

ARM CI

2 participants