BLENDER EXTENSIONS PLATFORM
Перевод https://code.blender.org/2022/10/blender-extensions-platform/
Ранее в этом году создатель Blender Тон Розендал опубликовал дорожную карту, в которой упоминается необходимость изучения полезных способов подключения Blender к Интернету. Одной из ключевых особенностей была возможность автоматического получения обновлений для дополнений Blender. Этот документ углубляется в эту тему.
Необходимым шагом для получения последних дополнений к Blender, не покидая Blender, является наличие общедоступного списка качественных дополнений, поддерживаемых и поддерживаемых сообществом Blender. Мы предлагаем, чтобы это стало возможным на новой платформе расширений Blender (BE), чтобы проживать на extensions.blender.org .
https://www.youtube.com/watch?v=mRi--yRR-IY
Слушай на русском в https://yandex.ru/promo/browser/video_translation/m/03
Цель
Цель BE - обслуживать пользователей Blender, помогая им находить и загружать дополнения, темы, карты ключей и библиотеки ресурсов, полностью в духе свободного и открытого исходного кода.
BE будет предлагать только программное обеспечение, совместимое с GNU GPL, или контент, совместимый с CC-BY–SA. Никакой коммерциализации на платформе не произойдет. Она предназначена для того, чтобы художники и разработчики дополнений могли свободно делиться своими работами над blender.org , даже если они предпочитают использовать сторонние сервисы, такие как Gumroad, BlenderMarket или Patreon, для получения доходов с помощью тех же или аналогичных расширений. Читайте об этом в разделе Политики надстроек ниже.
Всякий раз, когда в этом документе используется слово “расширение”, подразумевается одно из следующих:
Определяя план прототипа платформы, мы сосредоточимся на дополнительном типе расширения, поскольку он предоставляет наиболее полный набор функций и требований, которые затем могут быть применены к другим типам расширений.
Это предложение было рассмотрено несколькими заинтересованными сторонами, в том числе людьми, стоящими за аналогичными независимыми инициативами, такими как BlenderMarket и PolyHaven.
Дорожная карта
Расширения Blender можно разделить на следующие этапы, каждый из которых требует разработки и реализации определенного набора функций:
- Пользователи должны иметь возможность находить, загружать и оценивать различные дополнения.
- Разработчики должны иметь возможность загружать, изменять версии и управлять своими дополнениями, а также иметь возможность открыто общаться со своими пользователями.
- Группа рецензентов из сообщества Blender должна быть в состоянии помочь персоналу Blender Foundation с задачей поддержания общего качества и надежности перечисленных надстроек.
- Сам Blender должен иметь доступ к списку надстроек через API, что упрощает просмотр, установку и обновление надстроек.
Каждая веха оформлена с точки зрения заинтересованных сторон, таких как пользователи Blender в первой, разработчики расширений во второй и персонал Blender и рецензенты в третьей.
На данный момент мы будем считать четвертую веху вне рассмотрения. Blender, использующий список расширений сам по себе, запланирован на будущее, и его следует иметь в виду, но это не является предметом рассмотрения в этой статье.
Public Listing
Список дополнений — это веб-страница по адресу extensions.blender.org/add-ons/awesome-add-on/ с описанием функций дополнений и способом загрузки их последней версии.
В зависимости от типа расширения URL-адрес меняется, например, тема будет находиться в разделе extensions.blender.org/themes/awesome-theme
Каждый элемент списка должен содержать:
- Уникальное имя (также используется для создания URL-адреса)
- Подробное описание и скриншоты
- Поддерживаемые версии и лицензия Blender
- Ссылка для скачивания последней версии (а также ранее загруженной)
- Ссылки на (внешнюю) документацию и отслеживание проблем
- Категория/теги дополнения
- Рейтинг и отзывы
- Пути сообщения о злоупотреблениях
К определенным типам расширений, таким как ключевые карты и темы, часть вышеупомянутой информации неприменима.
Поддерживаемые версии блендера
В случае надстройки самая низкая совместимая версия может быть проанализирована из информации о надстройке (например, __init__.py ) и самая высокая совместимая версия может быть указана разработчиком расширения вручную.
Загрузка нового дополнения
Чтобы создать новую страницу надстройки на платформе расширений Blender, необходимо загрузить архив (.zip/.tar.gz ), содержащий дополнительные файлы.
В зависимости от типа загружаемого расширения перед созданием списка выполняется некоторая фоновая обработка, например:
- В случае дополнений наиболее важной частью архива (помимо функционального кода) является __init__.py файл, содержащий метаданные дополнения, которые анализируются и используются для создания списка и первой версии дополнения.
- В случае темы предварительный просмотр создается на основе XML темы.
Пуля, используемая в URL-адресе списка, генерируется на основе имени расширения и должна быть уникальной в сочетании с типом расширения. Слаг никогда не может быть использован повторно, даже если ранее загруженное расширение, использующее его, будет удалено.
Процесс обновления дополнения все еще исследуется (не стесняйтесь делиться идеями!) и будет задокументирован позже.
Обзор процесса
Очень важно, чтобы платформа расширений была разработана как здоровая и заслуживающая доверия экосистема. Это означает наличие чёткого набора приемлемых практик и рекомендаций по проверке. Blender Foundation создаст и поддержит группу рецензентов для управления и руководства процессом. Вот предложение основных политик для надстроек.
Add-on Policies
Бесплатные и с открытым исходным кодом
Загруженные дополнения должны быть полностью совместимы с GNU General Public License v2.0 или v3.0.
Никаких Сюрпризов
Дополнение должно иметь легко читаемое описание, в котором упоминается все, что оно делает. Из списка расширения должно быть совершенно ясно, какие функциональные возможности оно предлагает, и пользователи Blender не должны испытывать неожиданных ощущений при загрузке и установке расширения.
Контент
- Списки расширений должны соответствовать условиям использования сервисов Blender (будут опубликованы), в которых говорится, что нельзя использовать веб-сервисы Blender для совершения чего-либо незаконного, угроз, домогательств, нанесения вреда, обмана и т.д.
- Расширения, предлагаемые на blender.org должны быть полностью функциональными, документированными и активно обслуживаемыми продуктами.
- Расширения не должны требовать каких-либо внешних функциональных компонентов, которые необходимо загружать откуда-либо еще.
- Расширения, которые (должны) подключаться к интернет-сервисам за пределами blender.org , должны предлагать доступ к этим сайтам без дополнительных ограничений (таких как вход в систему или регистрация, платные брандмауэры и т.д.).
- Если расширение является ответвлением другого расширения, название должно четко отличать его от оригинала и обеспечивать существенную разницу в функциональности и /или коде.
- Расширения, предназначенные для внутреннего или частного использования, доступные только закрытой группе пользователей или для тестирования распространения, могут отсутствовать в списке на платформе.
- Ссылки на внешние платформы финансирования в описании разрешены. Не допускается наличие дополнительных требований (таких как регистрация, платежи или ключи), блокирующих функциональность расширения. (Альтернативное предложение: описание расширения должно раскрывать, требуется ли оплата для доступа к любой из его функций).
Приемлемые методы программирования
- Код расширения должен быть доступен для просмотра (запутанный код или байт-код не допускаются. Вопрос о том, как оценивать двоичные файлы, все еще остается открытым).
- Расширение должно быть автономным и не загружать удаленный код для выполнения.
- Расширение не должно отправлять данные в какие-либо удаленные местоположения без явного разрешения пользователя.
- Расширение должно избегать включения избыточного кода или файлов.
- Расширение не должно негативно влиять на производительность или стабильность Blender.
- Код расширения должен соответствовать https://wiki .blender.org/wiki/Process/Addons/Guidelines
Спецификации API
На данный момент мы не будем рассматривать API расширений. Blender, использующий список расширений сам по себе, - это то, что запланировано на будущее и должно учитываться, но в этом документе основное внимание уделяется первым трём этапам дорожной карты.
Текущая реализация
Незавершенная реализация доступна по адресу developer.blender.org .
В настоящее время проектом руководит Анна Сирота при поддержке веб-команды Blender (Франческо Сидди, Пабло Васкес). Эта работа черпает вдохновение из множества расширений и магазинов приложений, доступных в Интернете, а также различных менеджеров пакетов. В частности, веб-сайт расширений Mozilla использовался в качестве справочного материала для архитектуры.
Выводы
Отзывы о том, что было представлено в этой статье, приветствуются, в частности, в отношении процесса проверки представленных материалов, управления версиями контента и листинга.
