Загрузка библиотеки менеджеру библиотеки из ветки Github

Я пытаюсь загрузить библиотеку в диспетчер библиотек Arduino. Я знаю GitHub - arduino/library-registry: репозиторий списков диспетчера библиотек Arduino и уже прочитал инструкции, но у меня есть вопрос, который, я надеюсь, кто-нибудь сможет мне объяснить.

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

В репозитории реестра библиотеки на шаге 7 говорится: " Это должен быть URL-адрес домашней страницы репозитория. Например: https://github.com/arduino-libraries/Servo" Мне интересно, если в этом раздел, могу поставить ссылку на ветку Arduino проекта.

Это означает включение: https://github.com/myProfileName/myProjectName/tree/Arduino

Вместо: https://github.com/myProfileName/myProjectName

По той причине, что второй URL-адрес будет содержать множество файлов, которые не нужны в среде Arduino

, 👍2

Обсуждение

Что произойдет, когда вы попробуете это сделать?, @Delta_G

Я имею в виду, что я не пробовал, потому что ни один из URL-адресов из repositories.txt, похоже, не имеет ветки. Я нажал ctrl+f с деревом ключевых слов и не нашел результатов, поэтому я открыл этот вопрос., @Cheche Romo


1 ответ


Лучший ответ:

4

Нет. Как указано в инструкциях по отправке библиотеки в реестр диспетчера библиотек Arduino, URL-адрес должен вести на домашнюю страницу. репозитория.

Как работает система создания индекса Library Manager:

  1. Клонировать репозиторий по URL-адресу, который был зарегистрированным URL-адресом.
  2. Проверьте каждый тег Git в репозитории.
  3. Проверьте, содержит ли репозиторий библиотеку Arduino по этому тегу.
  4. Проверьте, находится ли уже в индексе версия библиотеки по этому тегу.
  5. Если это действительная новая версия библиотеки, добавьте ее в индекс.

Таким образом, нет проблем с размещением библиотеки Arduino в разных ветках репозитория, поскольку индексатор не работает с ветками. Он работает с тегами, независимыми от ветвей. Вам необходимо только обязательно создать тег Git в ссылке на фиксацию в ветке библиотеки Arduino вашего репозитория в том месте истории изменений, где вы выпускаете версию библиотеки.

Если вы также хотите пометить другие ветки, это нормально. Несмотря на то, что теги являются единицей выпуска для Library Manager, управление версиями выпусков библиотеки осуществляется исключительно с использованием значения поля version файла library.properties файл метаданных. Таким образом, вы можете добавить что-нибудь к именам тегов, чтобы отличать теги выпуска библиотеки Arduino от тегов, созданных в других ветках (например, Arduino-1.2.3, 1.2.3).

Единственное соображение относительно стратегии выпуска, о которой я упоминал выше, заключается в том, что система проверки отправки, которая проверяет проблемы с библиотекой, когда вы отправляете ее для включения в проверки Менеджера библиотек выводит самый последний тег в репозитории и выполняет эта первоначальная проверка содержимого репозитория по этому конкретному тегу. Поэтому вам необходимо убедиться, что тег выпуска библиотеки Arduino является самым последним тегом на момент отправки библиотеки.

После того как отправка будет принята, все теги в репозитории всегда будут обрабатываться (игнорируя те, которые не прошли проверку библиотеки Arduino), поэтому не имеет значения, будут ли теги из веток, которые не содержат библиотеку Arduino, самые последние теги в репозитории после регистрации библиотеки.

,

Спасибо за Ваш ответ. Теперь этот процесс имеет больше смысла. Я не знал, что система генерации индексов Library Manager проверяет теги git. Мне предстоит внести некоторые коррективы и создать первый релиз проекта. Кроме того, теги дифференциации имен — отличная идея для дифференциации выпусков., @Cheche Romo