7.2 KiB
Raw Blame History

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 согласованно. Эти внешние правки в текущей задаче не выполнялись.