From 661a1b0ba2f7b4932f4e30298819521cfa5262d0 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Thu, 2 Apr 2026 09:21:37 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20exclude=20matrix=20from=20[all]=20extras?= =?UTF-8?q?=20=E2=80=94=20python-olm=20is=20upstream-broken=20(#4615)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit python-olm (required by matrix-nio[e2e]) fails to build on modern macOS: - CMake 4 rejects vendored libolm's cmake_minimum_required(VERSION 3.4) - Apple Clang 21+ rejects a C++ type error in include/olm/list.hh - Upstream libolm repo is archived, no fix forthcoming Including matrix in [all] causes the entire extras install to fail during `hermes update`, silently dropping all other extras (telegram, discord, slack, cron, etc.) when the fallback kicks in. The [matrix] extra is preserved for opt-in install: pip install 'hermes-agent[matrix]' Closes #4178 --- pyproject.toml | 5 ++++- tests/test_project_metadata.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2e7d5929d..2a970b898 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,10 @@ all = [ "hermes-agent[modal]", "hermes-agent[daytona]", "hermes-agent[messaging]", - "hermes-agent[matrix]", + # matrix excluded: python-olm (required by matrix-nio[e2e]) is upstream-broken + # on modern macOS (archived libolm, C++ errors with Clang 21+). Including it + # here causes the entire [all] install to fail, dropping all other extras. + # Users who need Matrix can install manually: pip install 'hermes-agent[matrix]' "hermes-agent[cron]", "hermes-agent[cli]", "hermes-agent[dev]", diff --git a/tests/test_project_metadata.py b/tests/test_project_metadata.py index 1a377f5f5..476834099 100644 --- a/tests/test_project_metadata.py +++ b/tests/test_project_metadata.py @@ -11,8 +11,12 @@ def _load_optional_dependencies(): return project["optional-dependencies"] -def test_all_extra_includes_matrix_dependency(): +def test_matrix_extra_exists_but_excluded_from_all(): + """matrix-nio[e2e] depends on python-olm which is upstream-broken on modern + macOS (archived libolm, C++ errors with Clang 21+). The [matrix] extra is + kept for opt-in install but deliberately excluded from [all] so one broken + upstream dep doesn't nuke every other extra during ``hermes update``.""" optional_dependencies = _load_optional_dependencies() assert "matrix" in optional_dependencies - assert "hermes-agent[matrix]" in optional_dependencies["all"] + assert "hermes-agent[matrix]" not in optional_dependencies["all"]