Skip to content

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 24 Jul 18:42
· 1018 commits to main since this release
7c76212

Unica v0.9.1

v0.9.1 — крупное обновление Unica: безопасное точечное изменение BSL,
поддержка удаления элементов форм, единый профиль выгрузки 1С 8.3.27,
восстановление RLM-индекса и обновлённые правила проектирования форм и
метаданных.

В релиз вошли 32 pull request из диапазона v0.8.1..v0.9.1.

Главное

  • Новый unica.code.patch выполняет безопасную точечную вставку в существующий
    BSL-модуль: строгий selector по методу или anchor, структурная проверка через
    bsl-analyzer, dry-run, защита от stale preimage и типизированный результат
    (#162).
  • unica.form.edit получил строгий removeElements: удаляются точные поддеревья
    элементов и связанные companion-узлы, а висячие ссылки и конфликтующие цели
    блокируются до публикации
    (#195).
  • Все поддерживаемые XML-мутаторы переведены на фиксированный профиль
    1С 8.3.27 / формат выгрузки 2.20 с fail-closed проверкой владельца и
    версии исходников
    (#188).
  • Runtime умеет ограниченно запускать внешнюю EPF с ожиданием завершения,
    timeout, раздельными stdout/stderr и фактическим exit code
    (#189).
  • unica.meta.edit поддерживает LineNumberLength для табличных частей с
    проверкой диапазона и эффективной версии совместимости
    (#194,
    #196).

Изменение публичного API

Домен СКД переименован в официальный английский термин DCS:

  • unica.skd.*unica.dcs.*;
  • навыки skd-*dcs-*.

Это намеренное несовместимое изменение до 1.0: старые aliases не сохранены.
Имена платформенных XML-сущностей, включая DataCompositionSchema, не
менялись. Подробная таблица миграции включена в README плагина
(#169).

Формы и метаданные

  • В form-patterns добавлены адаптированные UX-правила из 1C Design Guide:
    поля, флажки, переключатели, кнопки, таблицы, диалоги, подсказки и
    условное оформление
    (#182).
  • Добавлен справочник соглашений по метаданным, а unica.meta.validate теперь
    учитывает владельца конфигурации, зарегистрированные языки и приоритет
    ListPresentation над Synonym
    (#184).
  • Внутренний publisher одного файла получил CAS по точному preimage, общие
    блокировки, atomic replace/no-clobber, сохранение portable permissions и
    fail-closed защиту от symlink, hard link и read-only целей
    (#163).

Исправления и устойчивость

  • RLM после stale (content) выполняет один полный rebuild и возвращает
    реальное terminal-состояние вместо бесконечного index building
    (#190).
  • Публичная схема unica.code.diagnostics снова показывает cwd,
    sourceDir, path, codes и timeout, поэтому диагностику можно привязать к
    выбранному worktree
    (#166).
  • Исправлена привязка внешней EPF без CONFIGURATION, а выгрузка исходников
    защищена от per-infobase CDFI state
    (#146,
    #150).
  • Development installer корректно определяет Windows x64 из Git Bash
    (#172).

Анализатор, toolchain и CI

  • bsl-analyzer обновлён до v0.2.62; в bundled analyzer вошла поддержка анализа
    расширений. Dependency-aware topology пока не включена и остаётся отдельной
    работой
    (#207).
  • v8-runner обновлён до закреплённого nightly build
    (#187).
  • Внешние инструменты теперь поставляются из unica-toolchain; RLM использует
    готовые release assets, а проверки больше не привязаны к захардкоженным тегам
    (#149,
    #151,
    #152).
  • CI получил единый required gate, маршрутизацию проверок по затронутому
    контуру и платформе, кэширование сборок и более узкий поток артефактов
    (#156,
    #160,
    #164).
  • Donor parity теперь хранит проверенные отношения для каждого кейса и
    поддерживает двухфазное обновление без публикации donor scripts в плагине
    (#197).

Обновление

Для канонической установки из публичного marketplace:

codex plugin marketplace upgrade unica
codex plugin remove unica@unica
codex plugin add unica@unica

Если установка локальная, дублированная или создана до публичного marketplace,
сначала используйте неизменяемый migration-мост v0.7.8.

Проверка

Релиз прошёл Python contract/dev suites, Rust fmt/clippy/tests, сборку runtime
для macOS, Linux и Windows, MCP/bootstrap smoke-тесты и повторную проверку
скачанных опубликованных артефактов.

Workflow: https://github.com/IngvarConsulting/unica/actions/runs/30117190305

Благодарности

Спасибо @korolevpavel за фундамент
безопасных изменений исходников: single-file publisher с атомарной публикацией
и CAS, а также первый публичный unica.code.patch со строгими selectors,
структурной проверкой BSL, dry-run и типизированным результатом
(#163,
#162).

Спасибо @Agrajaga за исправление публичного
контракта unica.code.diagnostics для worktree/sourceDir и глубокое исправление
RLM recovery: точные terminal-состояния, восстановление после stale content и
безопасное владение lock
(#166,
#190).

Спасибо @Oxotka за адаптацию практических UX-правил
1C Design Guide для навыков форм и за соглашения по метаданным, на основе
которых появилась owner-aware и language-aware проверка представлений
(#182,
#184).

Спасибо @zeegin за интеграцию релиза и основную
реализацию профиля 1С 8.3.27, перехода SKD → DCS, bounded EPF runtime,
безопасного удаления элементов форм, совместимости LineNumberLength,
обновления analyzer/toolchain, CI и release infrastructure.

Полный список изменений:
v0.8.1...v0.9.1