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
23 lines
904 B
Python
23 lines
904 B
Python
"""Regression tests for packaging metadata in pyproject.toml."""
|
|
|
|
from pathlib import Path
|
|
import tomllib
|
|
|
|
|
|
def _load_optional_dependencies():
|
|
pyproject_path = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
with pyproject_path.open("rb") as handle:
|
|
project = tomllib.load(handle)["project"]
|
|
return project["optional-dependencies"]
|
|
|
|
|
|
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]" not in optional_dependencies["all"]
|