Repository navigation
fix: установка версий любого типа релиза и связь пакета с расширением базы - #1
Merged
Merged
Conversation
johnnyshut
force-pushed
the
fix/ustanovka-nestabilnyh-versiy
branch
from
August 31, 2026 14:16
717b6c4 to
9e34658
Compare
johnnyshut
force-pushed
the
fix/ustanovka-nestabilnyh-versiy
branch
from
August 31, 2026 15:10
be7f85f to
e645767
Compare
johnnyshut
force-pushed
the
fix/ustanovka-nestabilnyh-versiy
branch
from
August 31, 2026 15:12
e645767 to
acc9d06
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Три связанные проблемы одного узла: менеджер считал, что имя пакета в
реестре и имя расширения в базе — одно и то же. Это не так.
1. Установка падала с «типом релиза stable»
Каталог формы заполняется с
ФильтрВерсий = ""и показывает версии всехтипов, а параметры загрузки по умолчанию просят
stable. Форма передаётвыбранную версию, но не имя файла: у GitLab в списке версий
file_nameнеприходит и резолвится при установке. Из-за пустого имени файла установка
всегда уходила в повторный запрос версий у провайдера — уже под фильтром
stable. Версия с пререлизом или несемантическая (например2026.08.28.0)под фильтр не попадала.
Для явно запрошенной версии фильтр типа релиза больше не применяется
(
ФильтрТипаРелизаДляПоиска). Поиск последней доступной версии работает какпрежде. Текст ошибки разделён: если версия была указана, сообщение говорит
о ненайденной версии, а не о типе релиза.
2. После установки версия не попадала в «Установленные»
Имя пакета в GitLab обязано быть ASCII, и пайплайн транслитерирует имя
расширения:
БИТАдаптерИнтеграцияПроектный→BITAdapterIntegratsiyaProektnyy(см.
ИмяПакетаGitLabв макетепм_СкриптПубликацииGitLab).Установка писала запись регистра под именем пакета, а сверка при старте
сеанса искала расширение с таким именем в базе, не находила и запись
снимала. Версия исчезала сразу после перезапуска.
Регистр
пм_УстановленныеПакетыполучил ресурсИмяРасширения. Оночитается из
.cfeдо установки (ИмяРасширенияИзФайла) — после записирасширения разбирать файл поздно — и сверка идёт строго по нему.
3. Уже установленное расширение не подхватывалось
Расширение, поставленное мимо менеджера, показывалось как неустановленное:
связать его с пакетом было нечем.
При заполнении списка менеджер ищет расширение в базе по имени пакета либо
по транслитерации имени расширения — правило то же, что в пайплайне, только
в прямую сторону, поэтому файл скачивать не нужно. Версия берётся из свойств
расширения, найденное сразу пишется в регистр, иначе проверка обновлений и
автообновление продолжали бы считать пакет неустановленным. Если одно имя
пакета дают два расширения, версия не подставляется.
Прочее
packagedefподняты до 0.1.1.ЭтоСамообновление(ДвоичныеДанные, ИмяФайла)заменена наЭтоРасширениеМенеджера(ИмяРасширения): файл теперь разбирается один раз.сеансе) — подхватывать нечего, но список пакетов не рушится. Сверка,
наоборот, читает список напрямую: на ошибке она не должна снимать записи.
сверка.
Проверка
База пересоздана с нуля, как в CI (
init-dev+ триcompileext), платформа8.3.27.2214:
ошибок инициализации модулей;
BITAdapterIntegratsiyaProektnyy, поиск расширения базы по имени пакета,сверка по имени расширения (оставляет стоящее, снимает отсутствующее),
снятый фильтр типа релиза;
ibcmd config checkдля конфигурации и обоих расширений;vrunner syntax-check— ошибок не обнаружено.На что посмотреть
Ресурс регистра добавлен правкой XML напрямую; метаданные проверены
ibcmdи загрузкой в базу. Карта транслитерации продублирована в
пм_МенеджерПакетовКлиентСервер— оригинал живёт в макете скриптапубликации, который исполняется в CI, а не в базе; расхождение карт сломает
подхват, поэтому в обоих местах стоит ссылка друг на друга.