После успешного uv sync на Linux установка остаётся несогласованной:
uv pip check сообщает, что для sherpa-onnx==1.13.5 отсутствует обязательный sherpa-onnx-core==1.13.5;
минимальный import sherpa_onnx падает с ImportError: libonnxruntime.so: cannot open shared object file;
сбой происходит до выбора ONNX Runtime provider и до любого обращения к CUDA;
изменения задачи #7 не затрагивают pyproject.toml, uv.lock, модуль диаризации или падающий тест и не являются причиной регрессии.
Цель
Восстановить корректную чистую установку проекта на Linux, при которой runtime-зависимость диаризации разрешается и импортируется согласованно.
Критерии приёмки
Причина расхождения между resolution, platform markers и метаданными wheel доказана по lock-файлу и метаданным пакетов.
pyproject.toml и uv.lock согласованы.
В чистом Linux-окружении проходят:
uv sync;
uv pip check;
import sherpa_onnx;
целевой тест диаризации;
полный набор тестов проекта.
Разрешение зависимостей для Windows не сломано; проверка и её ограничения зафиксированы явно.
Вне рамок
Поддержка аппаратно сломанной CUDA на текущем ноутбуке.
Поддержка старого GPU и старых драйверов.
Изменение поведения CUDA или выбор GPU provider.
## Проблема
После успешного `uv sync` на Linux установка остаётся несогласованной:
- `uv pip check` сообщает, что для `sherpa-onnx==1.13.5` отсутствует обязательный `sherpa-onnx-core==1.13.5`;
- минимальный `import sherpa_onnx` падает с `ImportError: libonnxruntime.so: cannot open shared object file`;
- сбой происходит до выбора ONNX Runtime provider и до любого обращения к CUDA;
- изменения задачи #7 не затрагивают `pyproject.toml`, `uv.lock`, модуль диаризации или падающий тест и не являются причиной регрессии.
## Цель
Восстановить корректную чистую установку проекта на Linux, при которой runtime-зависимость диаризации разрешается и импортируется согласованно.
## Критерии приёмки
- Причина расхождения между resolution, platform markers и метаданными wheel доказана по lock-файлу и метаданным пакетов.
- `pyproject.toml` и `uv.lock` согласованы.
- В чистом Linux-окружении проходят:
- `uv sync`;
- `uv pip check`;
- `import sherpa_onnx`;
- целевой тест диаризации;
- полный набор тестов проекта.
- Разрешение зависимостей для Windows не сломано; проверка и её ограничения зафиксированы явно.
## Вне рамок
- Поддержка аппаратно сломанной CUDA на текущем ноутбуке.
- Поддержка старого GPU и старых драйверов.
- Изменение поведения CUDA или выбор GPU provider.
В базовом uv.lock у sherpa-onnx==1.13.5 не было зависимости от core-пакета. Опубликованные артефакты этой версии содержат разные метаданные:
sdist не содержит Requires-Dist; в setup.py зависимость добавляется только при сборке с SHERPA_ONNX_SPLIT_PYTHON_PACKAGE;
sherpa_onnx-1.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl и sherpa_onnx-1.13.5-cp313-cp313-win_amd64.whl объявляют Requires-Dist: sherpa-onnx-core==1.13.5;
Linux armv7 wheel эту зависимость не объявляет.
В чистом минимальном проекте uv 0.12.6 при построении универсального lock-файла выбрал метаданные sherpa_onnx-1.13.5-cp313-cp313-linux_armv7l.whl, запросил .whl.metadata этого wheel и сообщил Received built distribution metadata. Этот wheel не объявляет Requires-Dist, поэтому core не попал в lock. На Linux x86_64 расширение _sherpa_onnx затем не находило libonnxruntime.so, который поставляется в wheel core-пакета. Сбой происходил при загрузке ELF, до выбора провайдера ONNX Runtime. Код CUDA в этом воспроизведении не выполнялся.
Исправление
sherpa-onnx закреплен на 1.13.5. Блок tool.uv.dependency-metadata для этой версии восстанавливает ребро sherpa-onnx -> sherpa-onnx-core==1.13.5, после чего lock сгенерирован заново. Этот override относится только к uv и не попадает в метаданные wheel самого проекта.
Версию в зависимости, версию в override и требование к core нужно считать одной настройкой. При обновлении sherpa их нужно менять или удалять вместе, затем проверять uv tree --locked --package sherpa-onnx. Контрольный uv lock --upgrade без точного ограничения выбрал sherpa-onnx==1.13.6 и снова потерял core.
Linux
Проверено на Linux, CPython 3.13.13, uv 0.12.6, в новом окружении:
uv sync --frozen: установлены 44 пакета, включая основной и core-пакет версии 1.13.5;
uv pip check --python <clean-env>/bin/python: все 44 пакета совместимы;
uv sync --locked --dry-run --python-platform windows, запущенный на Linux с uv 0.12.6, разрешил 45 пакетов и выбрал sherpa-onnx==1.13.5 вместе с sherpa-onnx-core==1.13.5. В lock есть core wheels для win32, win_amd64 и win_arm64.
Это только проверка разрешения зависимостей. Реальная установка на Windows, загрузка DLL и import sherpa_onnx не запускались. Оставшийся риск снимается отдельной проверкой на Windows: uv sync, uv pip check и прямой импорт.
## Диагностика #27
### Причина
В базовом `uv.lock` у `sherpa-onnx==1.13.5` не было зависимости от core-пакета. Опубликованные артефакты этой версии содержат разные метаданные:
- sdist не содержит `Requires-Dist`; в `setup.py` зависимость добавляется только при сборке с `SHERPA_ONNX_SPLIT_PYTHON_PACKAGE`;
- `sherpa_onnx-1.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl` и `sherpa_onnx-1.13.5-cp313-cp313-win_amd64.whl` объявляют `Requires-Dist: sherpa-onnx-core==1.13.5`;
- Linux armv7 wheel эту зависимость не объявляет.
В чистом минимальном проекте uv 0.12.6 при построении универсального lock-файла выбрал метаданные `sherpa_onnx-1.13.5-cp313-cp313-linux_armv7l.whl`, запросил `.whl.metadata` этого wheel и сообщил `Received built distribution metadata`. Этот wheel не объявляет `Requires-Dist`, поэтому core не попал в lock. На Linux x86_64 расширение `_sherpa_onnx` затем не находило `libonnxruntime.so`, который поставляется в wheel core-пакета. Сбой происходил при загрузке ELF, до выбора провайдера ONNX Runtime. Код CUDA в этом воспроизведении не выполнялся.
### Исправление
`sherpa-onnx` закреплен на `1.13.5`. Блок `tool.uv.dependency-metadata` для этой версии восстанавливает ребро `sherpa-onnx -> sherpa-onnx-core==1.13.5`, после чего lock сгенерирован заново. Этот override относится только к uv и не попадает в метаданные wheel самого проекта.
Версию в зависимости, версию в override и требование к core нужно считать одной настройкой. При обновлении sherpa их нужно менять или удалять вместе, затем проверять `uv tree --locked --package sherpa-onnx`. Контрольный `uv lock --upgrade` без точного ограничения выбрал `sherpa-onnx==1.13.6` и снова потерял core.
### Linux
Проверено на Linux, CPython 3.13.13, uv 0.12.6, в новом окружении:
- `uv sync --frozen`: установлены 44 пакета, включая основной и core-пакет версии 1.13.5;
- `uv pip check --python <clean-env>/bin/python`: все 44 пакета совместимы;
- прямой `import sherpa_onnx`: успешно;
- `pytest -q tests/test_speaker_diarizer.py`: 5 passed;
- `pytest -q`: 282 passed, 2 skipped.
### Windows
`uv sync --locked --dry-run --python-platform windows`, запущенный на Linux с uv 0.12.6, разрешил 45 пакетов и выбрал `sherpa-onnx==1.13.5` вместе с `sherpa-onnx-core==1.13.5`. В lock есть core wheels для win32, win_amd64 и win_arm64.
Это только проверка разрешения зависимостей. Реальная установка на Windows, загрузка DLL и `import sherpa_onnx` не запускались. Оставшийся риск снимается отдельной проверкой на Windows: `uv sync`, `uv pip check` и прямой импорт.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Проблема
После успешного
uv syncна Linux установка остаётся несогласованной:uv pip checkсообщает, что дляsherpa-onnx==1.13.5отсутствует обязательныйsherpa-onnx-core==1.13.5;import sherpa_onnxпадает сImportError: libonnxruntime.so: cannot open shared object file;pyproject.toml,uv.lock, модуль диаризации или падающий тест и не являются причиной регрессии.Цель
Восстановить корректную чистую установку проекта на Linux, при которой runtime-зависимость диаризации разрешается и импортируется согласованно.
Критерии приёмки
pyproject.tomlиuv.lockсогласованы.uv sync;uv pip check;import sherpa_onnx;Вне рамок
Диагностика #27
Причина
В базовом
uv.lockуsherpa-onnx==1.13.5не было зависимости от core-пакета. Опубликованные артефакты этой версии содержат разные метаданные:Requires-Dist; вsetup.pyзависимость добавляется только при сборке сSHERPA_ONNX_SPLIT_PYTHON_PACKAGE;sherpa_onnx-1.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whlиsherpa_onnx-1.13.5-cp313-cp313-win_amd64.whlобъявляютRequires-Dist: sherpa-onnx-core==1.13.5;В чистом минимальном проекте uv 0.12.6 при построении универсального lock-файла выбрал метаданные
sherpa_onnx-1.13.5-cp313-cp313-linux_armv7l.whl, запросил.whl.metadataэтого wheel и сообщилReceived built distribution metadata. Этот wheel не объявляетRequires-Dist, поэтому core не попал в lock. На Linux x86_64 расширение_sherpa_onnxзатем не находилоlibonnxruntime.so, который поставляется в wheel core-пакета. Сбой происходил при загрузке ELF, до выбора провайдера ONNX Runtime. Код CUDA в этом воспроизведении не выполнялся.Исправление
sherpa-onnxзакреплен на1.13.5. Блокtool.uv.dependency-metadataдля этой версии восстанавливает реброsherpa-onnx -> sherpa-onnx-core==1.13.5, после чего lock сгенерирован заново. Этот override относится только к uv и не попадает в метаданные wheel самого проекта.Версию в зависимости, версию в override и требование к core нужно считать одной настройкой. При обновлении sherpa их нужно менять или удалять вместе, затем проверять
uv tree --locked --package sherpa-onnx. Контрольныйuv lock --upgradeбез точного ограничения выбралsherpa-onnx==1.13.6и снова потерял core.Linux
Проверено на Linux, CPython 3.13.13, uv 0.12.6, в новом окружении:
uv sync --frozen: установлены 44 пакета, включая основной и core-пакет версии 1.13.5;uv pip check --python <clean-env>/bin/python: все 44 пакета совместимы;import sherpa_onnx: успешно;pytest -q tests/test_speaker_diarizer.py: 5 passed;pytest -q: 282 passed, 2 skipped.Windows
uv sync --locked --dry-run --python-platform windows, запущенный на Linux с uv 0.12.6, разрешил 45 пакетов и выбралsherpa-onnx==1.13.5вместе сsherpa-onnx-core==1.13.5. В lock есть core wheels для win32, win_amd64 и win_arm64.Это только проверка разрешения зависимостей. Реальная установка на Windows, загрузка DLL и
import sherpa_onnxне запускались. Оставшийся риск снимается отдельной проверкой на Windows:uv sync,uv pip checkи прямой импорт.