Использование контроля пакетов с оффлайн-репо - PullRequest
0 голосов
/ 01 июня 2018

Какой рабочий процесс используется package control для возвышенного в автономной среде?Можно ли настроить свой собственный репозиторий, который можно использовать для перечисления и загрузки пакетов, доступных в вашем выделенном репо?

Я знаю, что вы можете добавить путь git к пакету, но я думал о более плавной интеграции, такой как перечисление пакетов, доступных в автономном репо.

1 Ответ

0 голосов
/ 05 июня 2018

Чтобы объяснить, как настроить автономный сайт, например, тот, который вам нужен, давайте сначала рассмотрим последовательность событий, которые (логически) происходят, когда вы сообщаете Package Control, что вы хотите установить пакет, выбрав Package Control: Install Package в палитре команд:

  1. С каждым пакетом channel, указанным в настройке channels файла Package Control.sublime-settings, осуществляется контакт с содержимым, загруженным для получения списка пакетов repositories

  2. Каждый repository, который возвращается, загружается для получения полного списка пакетов, доступных в этом хранилище.

  3. Списокиз репозиториев, установленных в ключе repositories файла Package Control.sublime-settings, загружается аналогичным образом.

  4. Содержимое всех различных репозиториев пакетов, которые возвращают эти запросы, объединяются в один списоки предоставил вам выбор пакета для установки.

  5. Особенности выбранного пакета используются для загрузки и установки пакета.уместно.

Package Control поставляется с настройкой channels, установленной на список, содержащий одну запись канала, которая представляет собой содержимое канала управления пакетом по умолчанию.

"channels":
[
    "https://packagecontrol.io/channel_v3.json"
],

Чтобы настроить автономное хранилище пакетов, вам нужно создать свои собственные пользовательские файлы channel и repository и разместить их на веб-сервере, который будет доступен каждому, кому нужен доступ к частномухранилище вместе со всеми пакетами, которые вы делаете доступными.


Важно: обязательно , что в Интернетесервер обслуживает файлы через https или Package Control, чтобы не загружать их по соображениям безопасности.


Документы управления пакетами имеют страницу, на которойНемного о каналах и репозиториях , включая пример канала файла канала и пример репозитория файла репозитория, чтобы показать вам структуру и доступные ключи.В дальнейшем вам следует обратиться к образцам файлов, чтобы увидеть, что доступно.

Оба файла channel и repository, которые необходимо создать, представлены в формате JSON и предоставят все подробности длядоступные пакеты, в том числе версии указанных пакетов, где они доступны, требования к версии и т. д.

Следует также отметить, что основная масса всех пакетов в канале управления пакетами по умолчанию составляетхранится в репозиториях GitHub или BitBucket, а во время установки Package Control загрузит с этих сайтов последний выпуск для установки.

Чтобы узнать, когда обновляются пакеты, packagecontrol.io (гдеканал по умолчанию размещен) имеет искатель, который посещает страницу хранилища для всех пакетов, которые он содержит (ежечасно), чтобы обнаружить новые версии пакетов.

При создании частного хранилища, такого кактот, который вы хотите создать, у вас, по-видимому, нет доступа к GitHub или BitBucket, и поэтому на вас будет возложена обязанность предоставить соответствующие sublime-package файлы для пакетов в вашем канале, а также быть в курсе новых версий пакетов и обновлять их по мере необходимости.

КакНапример, вот минимальный файл channel, который, как мы предполагаем, доступен по сети по URL-адресу https://example.com/channel.json.

{
    "schema_version": "3.0.0",

    "repositories": [
        "https://example.com/packages.json"
    ]
}

. Чтобы получить возможность управления пакетами для использования этого канала, необходимо изменитьпараметр channels в Package Control.sublime-settings, удаляющий канал по умолчанию (к которому вы, вероятно, не сможете получить доступ) и заменяющий его собственным URL-адресом канала.Это список, позволяющий вам создать столько каналов, сколько вам нужно.

"channels":
[
    "https://example.com/channel.json"
],

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

Когда Package Control загружает канал, он попытается получить repository, который он содержит, чтобы определить доступные пакеты и их версии.

Как отмечалось выше, файл канала будет искать файл по URL-адресу https://example.com/packages.json, который может выглядеть следующим образом:

{
    "schema_version": "3.0.0",

    "packages": [
        {
            "name": "PackageTheFirst",
            "description": "A package to do some things",
            "homepage": "https://somewebpage.com/",
            "author": "developer name",
            "releases": [
                {
                    "version": "1.0.0",
                    "url": "https://example.com/sublime3/PackageTheFirst.sublime-package",
                    "date": "2017-01-25 11:33:25",
                    "sublime_text": ">=3126",
                    "platforms": ["*"]
                }
            ]
        },
        {
            "name": "OtherPackage",
            "description": "A package for other things",
            "homepage": "https://someotherwebpage.com/",
            "author": "another author",
            "releases": [
                {
                    "version": "1.0.3",
                    "url": "https://example.com/sublime3/CommentGlory.sublime-package",
                    "date": "2018-04-11 16:32:27",
                    "sublime_text": ">=3176",
                    "platforms": ["windows"]
                }
            ]
        }
    ]
}

Это список пакетов с именем PackageTheFirst это версия 1.0.0, требует Sublime Text build 3126 или выше, и может быть найден по URL https://example.com/sublime3/PackageTheFirst.sublime-package.Существует также еще один пакет с именем OtherPackage, который является пакетом только для Windows и требует установки Sublime build 3176 или более поздней версии.

Если эти файлы на месте и ваша конфигурация будет изменена соответствующим образом, управление пакетами будетперечислите эти пакеты для установки пользователями.Если вы обновите версии в файле репозитория (и создадите соответствующий новый файл sublime-package), Package Control заметит и обновит пакеты так же, как обычно.

Это не объясняетгде вы получите файлы и соответствующие записи канала для пакетов, на которые вы хотите сослаться в своем пользовательском канале.

Если вы делаете доступными сторонние пакеты из канала по умолчанию, вы можете почерпнуть некоторую информацию из записей канала по умолчанию.Тем не менее, обратите внимание, что большинство записей канала содержат ссылку на GitHub или BitBucket репозиторий, в котором хранится пакет, и большая часть метаданных для пакета (автор, версия и т. Д.) Собирается оттуда, поэтому вам нужно будет ввести эту информацию вручную.

В случае, если вы делаете свои собственные пользовательские пакеты доступными, вам будет легче определить информацию, которая поступает в запись канала.

В качестве заключительного примечания, в зависимости от количестваиз репозиториев и пакетов, которые вы настраиваете, файл канала позволяет вам оптимизировать его, включая кэшированную копию всех пакетов, хранящихся в указанных репозиториях, что позволяет Package Control получать полный список пакетов и их информацию с помощьютолько один запрос.

Более подробная информация об этом содержится в файле примера канала, который указан выше.

...