Skip to content

fix: установка версий любого типа релиза и связь пакета с расширением базы - #1

Merged
johnnyshut merged 3 commits into
mainfrom
fix/ustanovka-nestabilnyh-versiy
Aug 31, 2026
Merged

johnnyshut merged 3 commits into
mainfrom
fix/ustanovka-nestabilnyh-versiy

Conversation

@johnnyshut

@johnnyshut johnnyshut commented Aug 31, 2026 •

Copy link
Copy Markdown
Member

Три связанные проблемы одного узла: менеджер считал, что имя пакета в
реестре и имя расширения в базе — одно и то же. Это не так.

1. Установка падала с «типом релиза stable»

Ошибка установки пакета BITAdapterIntegratsiyaProektnyy.
Причина: Версий пакета BITAdapterIntegratsiyaProektnyy с типом релиза stable не найдено.

Каталог формы заполняется с ФильтрВерсий = "" и показывает версии всех
типов, а параметры загрузки по умолчанию просят stable. Форма передаёт
выбранную версию, но не имя файла: у GitLab в списке версий file_name не
приходит и резолвится при установке. Из-за пустого имени файла установка
всегда уходила в повторный запрос версий у провайдера — уже под фильтром
stable. Версия с пререлизом или несемантическая (например 2026.08.28.0)
под фильтр не попадала.

Для явно запрошенной версии фильтр типа релиза больше не применяется
(ФильтрТипаРелизаДляПоиска). Поиск последней доступной версии работает как
прежде. Текст ошибки разделён: если версия была указана, сообщение говорит
о ненайденной версии, а не о типе релиза.

2. После установки версия не попадала в «Установленные»

Имя пакета в GitLab обязано быть ASCII, и пайплайн транслитерирует имя
расширения: БИТАдаптерИнтеграцияПроектный → BITAdapterIntegratsiyaProektnyy
(см. ИмяПакетаGitLab в макете пм_СкриптПубликацииGitLab).

Установка писала запись регистра под именем пакета, а сверка при старте
сеанса искала расширение с таким именем в базе, не находила и запись
снимала. Версия исчезала сразу после перезапуска.

Регистр пм_УстановленныеПакеты получил ресурс ИмяРасширения. Оно
читается из .cfe до установки (ИмяРасширенияИзФайла) — после записи
расширения разбирать файл поздно — и сверка идёт строго по нему.

3. Уже установленное расширение не подхватывалось

Расширение, поставленное мимо менеджера, показывалось как неустановленное:
связать его с пакетом было нечем.

При заполнении списка менеджер ищет расширение в базе по имени пакета либо
по транслитерации имени расширения — правило то же, что в пайплайне, только
в прямую сторону, поэтому файл скачивать не нужно. Версия берётся из свойств
расширения, найденное сразу пишется в регистр, иначе проверка обновлений и
автообновление продолжали бы считать пакет неустановленным. Если одно имя
пакета дают два расширения, версия не подставляется.

Прочее

  • Версия расширения и packagedef подняты до 0.1.1.
  • ЭтоСамообновление(ДвоичныеДанные, ИмяФайла) заменена на
    ЭтоРасширениеМенеджера(ИмяРасширения): файл теперь разбирается один раз.
  • Каталог переживает недоступный список расширений (виден не в каждом
    сеансе) — подхватывать нечего, но список пакетов не рушится. Сверка,
    наоборот, читает список напрямую: на ошибке она не должна снимать записи.
  • README: как подхватывается стороннее расширение и по какому имени идёт
    сверка.

Проверка

База пересоздана с нуля, как в CI (init-dev + три compileext), платформа
8.3.27.2214:

  • YAxUnit — 155 тестов, 0 failures / 0 errors, код возврата 0, в логе нет
    ошибок инициализации модулей;
  • новые тесты: транслитерация на реальном примере
    BITAdapterIntegratsiyaProektnyy, поиск расширения базы по имени пакета,
    сверка по имени расширения (оставляет стоящее, снимает отсутствующее),
    снятый фильтр типа релиза;
  • ibcmd config check для конфигурации и обоих расширений;
  • vrunner syntax-check — ошибок не обнаружено.

На что посмотреть

Ресурс регистра добавлен правкой XML напрямую; метаданные проверены ibcmd
и загрузкой в базу. Карта транслитерации продублирована в
пм_МенеджерПакетовКлиентСервер — оригинал живёт в макете скрипта
публикации, который исполняется в CI, а не в базе; расхождение карт сломает
подхват, поэтому в обоих местах стоит ссылка друг на друга.

@johnnyshut johnnyshut self-assigned this Aug 31, 2026
@johnnyshut
johnnyshut force-pushed the fix/ustanovka-nestabilnyh-versiy branch from 717b6c4 to 9e34658 Compare August 31, 2026 14:16
@johnnyshut johnnyshut changed the title fix: установка выбранной версии любого типа релиза fix: установка версий любого типа релиза и связь пакета с расширением базы Aug 31, 2026
@johnnyshut
johnnyshut force-pushed the fix/ustanovka-nestabilnyh-versiy branch from be7f85f to e645767 Compare August 31, 2026 15:10
@johnnyshut
johnnyshut force-pushed the fix/ustanovka-nestabilnyh-versiy branch from e645767 to acc9d06 Compare August 31, 2026 15:12
@johnnyshut
johnnyshut merged commit a1321c2 into main Aug 31, 2026
4 checks passed
@johnnyshut
johnnyshut deleted the fix/ustanovka-nestabilnyh-versiy branch August 31, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant