7.2 KiB
7.2 KiB
Tasks
Change ретроспективно фиксирует работу в arm-tabular-parser. Отметки [x] основаны на текущих изменениях и проверках предыдущих шагов этой сессии; оставшиеся проверки не считаются выполненными. Каждая задача рассчитана не более чем на половину дня.
1. Тесты и исходные ожидания
- 1.1 Сохранить тесты адаптеров
api/tests/unit/parser/и проверки версии/ошибки словарей вapi/tests/unit/test_worker.py, обновить комментарий об установленной версии. Проверка: 1206 parser-тестов и 3 выбранных worker-теста прошли; 5 parser-тестов пропущены. - 1.2 Проверить реальные формы по
api/tests/statements_manifest.yaml,api/tests/fixtures/test_statements_adapter_real.pyи golden-снимкам../fixtures/golden/expected_statement_parse/с установленной библиотекой. Критерий: тесты реальных форм проходят без необъяснённых расхождений; существующие снимки автоматически не перезаписывать. Проверено: 27 тестов форм и 27 golden-тестов прошли, снимки не менялись.
2. Локальная установка и удаление копии
- 2.1 Обновить
Makefileиapi/requirements.txt: pin 0.1.1, фильтрraisa_*/pylib_ai*, STATEMENTS_DIR, установка черезmake venv, переустановка черезmake install. Проверка: dry-run обеих целей соответствует design, локальныйmake installустановил дистрибутив 0.1.1. - 2.2 Удалить
api/arm_statements/со словарями, VERSION и библиотечными тестами; удалитьstatements-checkи его вызов вMakefile. Проверка: каталога нет, импорт указывает на site-packages,check-fullбольше не запускает sync-statements. - 2.3 Обновить
api/pytest.ini,api/pyproject.toml, комментарийapi/requirements-dev.txt; перегруппировать сторонние импорты вapi/src/parser/и соответствующих тестах. Проверка: pytest не собирает библиотечные тесты,make lintпроходит, mypy проверяет src. - 2.4 Описать установку и обновление в
README.md,CLAUDE.md,api/rules/README.md. Проверка: описаны отсутствие PyPI,STATEMENTS_DIRиmake install, отсутствует инструкция синхронизировать копию. - 2.5 Проверить подготовку окружения полной командой
make venvи повторную установку библиотеки той же версии черезmake install STATEMENTS_DIR=<путь>. Критерий: обе команды успешны, импорт работает; пакет pylib_ai не запрашивается из индекса. Проверено: make venv и повторный make install с абсолютным STATEMENTS_DIR успешны; импорт из site-packages, версия 0.1.1.
3. Версия библиотеки при старте
- 3.1 Обновить docstring и диагностику
require_statements_versionвapi/src/parser/__init__.py, комментарий поля вapi/src/contract/common.py. Проверка: сохраняется API библиотеки и явный путь для тестов; RuntimeError предлагаетmake install; JSON-схемы не изменены. - 3.2 Проверить загрузку установленного пакета, его метаданных, словарей и создание парсера. Критерий: импорт из site-packages, версия дистрибутива и
statements_version()равны 0.1.1,get_parser()создаёт BookParser; проверено ранее сDEBUG=false ENV_FILE=.env.test.
4. Контейнерная поставка
- 4.1 Изменить
Makefile,Dockerfile,README.md: именованный контекст BuildKit, временный bind mount библиотеки и установка локального пакета, фильтрация requirements. Проверка реализации:make -n docker-buildпередаёт--build-context arm_statements, исходники подключаются только на шаге установки; требование к прямым сборкам документировано. - 4.2 Собрать образ через
make docker-buildи проверить в контейнере импорт,statements_version()иdefault_rules()без mount исходников при запуске. Критерий: образ содержит рабочую библиотеку 0.1.1 и словари. Предыдущая попытка заблокирована доступом к Docker socket. Проверено 24.10.2026: make docker-build успешен; docker run --network none без mount подтверждает импорт из site-packages, версию 0.1.1 и загрузку словарей.
5. Итоговые проверки
- 5.1 Завершить полный unit-прогон
api/tests/unitс корректным DEBUG, выяснив зависание worker-тестов. Критерий: зафиксированы итоговый результат и причины пропусков; предыдущий остановленный прогон не считать успешным. - 5.2 Выполнить доступные интеграционные проверки NATS/S3 через
make test-integrationи итоговыйmake check-full. Критерий: обработка реальных форм проходит контракт v2.0 и содержит версию библиотеки; lint, тесты и Docker-сборка успешны.
Workflow follow-up
- Основные
openspec/specs/остаются без правок до отдельной синхронизации/архивирования этого change; архивные changes не переписываются. - Финальное межрепозиторное согласование провести отдельным change в
../docs: проверить актуальность 03-architecture и 07-open-questions, согласовать описаниеservice.statements_versionв каноническом контракте; затем обновить копии контрактов и README согласованно. Эти внешние правки в текущей задаче не выполнялись.