39 lines
3.5 KiB
Markdown
39 lines
3.5 KiB
Markdown
# Proposal
|
||
|
||
## Why
|
||
|
||
Копирование `arm_statements` в сервис требует синхронизации исходников и привязывает версию нормализатора к локальному `VERSION`. Общий код теперь поставляется библиотекой `pylib_ai_arm_statements==0.1.1`; шлюз должен устанавливать её из локального источника, поскольку публикации в PyPI нет.
|
||
|
||
## What Changes
|
||
|
||
- Установить библиотеку из `../pylib_ai_arm_statements` при `make venv`; добавить `make install` для переустановки и переменную `STATEMENTS_DIR` для пути.
|
||
- Закрепить `pylib_ai_arm_statements==0.1.1` в `api/requirements.txt`; при установке по requirements исключать `pylib_ai*` наряду с внутренними `raisa_*`.
|
||
- Удалить `api/arm_statements/`, его тесты из pytest и проверку `statements-check`; проверять собственный код шлюза.
|
||
- Сохранить импорт `arm_statements`, получать версию через API библиотеки `statements_version()` и записывать её в результат.
|
||
- Передавать библиотеку в Docker отдельным build context и устанавливать внутри образа.
|
||
- Обновить документацию, сообщения об ошибках, импорты и проверки версии установленного пакета.
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
Нет.
|
||
|
||
### Modified Capabilities
|
||
|
||
- `image-recognition-gateway`: библиотека вместо копии нормализатора, источник `service.statements_version`, локальная установка и сборка образа.
|
||
|
||
## Impact
|
||
|
||
Срез 3a из `../docs/context/09-delivery-plan.md`, сопровождение OCR-нормализатора. Изменяется только `arm-scan-gateway`; `../arm-core` служит примером, `../pylib_ai_arm_statements` — готовым источником зависимости. Таблицы DBML v5.17 не затрагиваются. Алгоритмы из `05-domain-rules.md` §11, §11.1 и §11.9 остаются в библиотеке; новых бизнес-правил нет.
|
||
|
||
Контракт `statementDocument` v2.0 сохраняется; значение версии отражает установленную библиотеку вместо коммита копии. Архивные change'и и основные спеки в рамках предложения не редактируются. Сквозных изменений в других сервисах этот change не вводит.
|
||
|
||
## Non-goals
|
||
|
||
- Публикация в PyPI, создание реестра пакетов или изменение библиотеки.
|
||
- Переработка нормализации, транспорта SMB/NATS/S3, эмулятора и модели данных.
|
||
- Редактирование общих JSON Schema из `../docs/contracts` или пересборка golden под изменённые результаты.
|
||
|
||
Это описание уже подготовленных изменений рабочего дерева; задачи оформлены для отдельной сверки на этапе apply.
|