Skip to content

AI-EDT v0.2.36

Choose a tag to compare

@github-actions github-actions released this 27 Aug 14:52
· 16 commits to main since this release

Реестр поддержки поставщика

Инструмент support_registry. Операции: status, list_objects, object_mode, snapshot_modes, restore_modes, help.

Возвращает список конфигураций-поставщиков и их релизы, распределение объектов по UserSupportMode (ChangesNotAllowed, ChangesAllowed, Cancelled), правила следующего обновления, режим отдельного объекта и объекты, изменяемые вместе с ним. Учитываются подчинённые сущности: реквизиты, табличные части, формы, макеты.

list_objects принимает оба написания режима, ChangesAllowed и CHANGES_ALLOWED. Значение, не соответствующее ни одному режиму, даёт отказ.

snapshot_modes записывает соответствие «объект - режим» в файл в .settings. restore_modes возвращает записанные режимы; без apply=true не изменяет ничего. Объект, отсутствующий в новой поставке, попадает в список отказов.

Трёхстороннее сравнение и объединение

compare_three_way сравнивает открытый проект, новую поставку и общего предка.

intent: REPORT - чтение, MERGE - применение решений, UPDATE_UNCHANGED - взятие поставки целиком, UPDATE_KEEPING_OURS - обновление на поддержке, при котором узлы с атрибуцией VENDOR берутся по recommendedRule, а узлы с атрибуцией OURS и BOTH получают MergeRule.DO_NOT_MERGE.

methodLevel=true даёт узлы уровня метода: изменение приходит с полным именем вида CommonModule.X.Module.ИмяМетода и собственной атрибуцией. Решение о классе объектов задаётся записью {"select":"matching","rule":"..."}; правило каждого узла перечитывается после установки.

Узел с атрибуцией BOTH при сравнении без methodLevel получает MergeRule.DO_NOT_MERGE. Содержимое, заменённое объединением, перечисляется в ourContentLost и считается по каталогу объекта целиком.

Объединение не запускается при незавершённом построении модели и отказывает, если снимок режимов поддержки не записан. Смена версии платформы возвращается в ответе. Предок сверяется на происхождение от этого проекта.

Диагностика расширения перед обновлением

Возвращается список объектов расширения, которые после обновления перестанут применяться, с причиной по каждому.

Проверяется наличие цели перехвата и соответствие её сигнатуры. Заимствованный объект сверяется с поставкой пообъектно. Тип заимствованного реквизита читается из .mdo расширения.

Применимость расширения возвращает checkConfigurationExtensionsApplicability. borrow_child заимствует указанный дочерний объект. Перемещение объекта возвращает список перемещаемого вместе с ним и отдельно - виды ссылок, которые обход не покрывает.

Отказ валидатора на непостроенной модели

validate_query возвращает отказ с указанием причины, пока ProjectStateGuard.checkReadyOrError сообщает состояние, отличное от READY. Состояния: READY, BUILDING, NOT_AVAILABLE, UNKNOWN.

Проверка выполняется под IDerivedDataManager.addStatusListener и повторяется один раз при срабатывании слушателя.

Запрос в расширении проверяется моделью расширения и моделью родительской конфигурации. При недоступной модели родителя вызов возвращает отказ.

Поле isError в ответе

ToolCallResult возвращает поле isError при отказе инструмента. Поле сериализуется только при значении true.

Текст инструментов не изменён, YAML-заголовок успешного ответа сохранён, проверки на ведущее Error: работают.

Схемы СКД

dcs_workshop проверяет запрос или выражение перед записью на всех путях записи: set_dataset_property с property=query, set_calculated_field, set_total_field, add_user_field, set_user_field, обе стороны связи наборов данных. Свойство связи распознаётся по окончанию имени на Expression.

add_total проверяет aggregateFunction(expression) - текст, который записывается.

Диагностика с кодом Field not found в выражении понижается до WARNING. XtextSyntaxDiagnostic и org.eclipse.xtext.diagnostics.Diagnostic.Linking остаются ошибками. QlIssue возвращает код рядом с сообщением.