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 можно разделить на следующие этапы, каждый из которых требует разработки и реализации определенного набора функций:

  1. Пользователи должны иметь возможность находить, загружать и оценивать различные дополнения.
  2. Разработчики должны иметь возможность загружать, изменять версии и управлять своими дополнениями, а также иметь возможность открыто общаться со своими пользователями.
  3. Группа рецензентов из сообщества Blender должна быть в состоянии помочь персоналу Blender Foundation с задачей поддержания общего качества и надежности перечисленных надстроек.
  4. Сам Blender должен иметь доступ к списку надстроек через API, что упрощает просмотр, установку и обновление надстроек.

Каждая веха оформлена с точки зрения заинтересованных сторон, таких как пользователи Blender в первой, разработчики расширений во второй и персонал Blender и рецензенты в третьей.

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

Public Listing

Список дополнений — это веб-страница по адресу extensions.blender.org/add-ons/awesome-add-on/ с описанием функций дополнений и способом загрузки их последней версии.

В зависимости от типа расширения URL-адрес меняется, например, тема будет находиться в разделе extensions.blender.org/themes/awesome-theme

Каждый элемент списка должен содержать:

  • Уникальное имя (также используется для создания URL-адреса)
  • Подробное описание и скриншоты
  • Поддерживаемые версии и лицензия Blender
  • Ссылка для скачивания последней версии (а также ранее загруженной)
  • Ссылки на (внешнюю) документацию и отслеживание проблем
  • Категория/теги дополнения
  • Рейтинг и отзывы
  • Пути сообщения о злоупотреблениях

К определенным типам расширений, таким как ключевые карты и темы, часть вышеупомянутой информации неприменима.

BLENDER EXTENSIONS PLATFORM, image #1
BLENDER EXTENSIONS PLATFORM, image #2

Поддерживаемые версии блендера

В случае надстройки самая низкая совместимая версия может быть проанализирована из информации о надстройке (например, __init__.py ) и самая высокая совместимая версия может быть указана разработчиком расширения вручную.

Загрузка нового дополнения

Чтобы создать новую страницу надстройки на платформе расширений Blender, необходимо загрузить архив (.zip/.tar.gz ), содержащий дополнительные файлы.

BLENDER EXTENSIONS PLATFORM, image #3

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

  • В случае дополнений наиболее важной частью архива (помимо функционального кода) является __init__.py файл, содержащий метаданные дополнения, которые анализируются и используются для создания списка и первой версии дополнения.
  • В случае темы предварительный просмотр создается на основе XML темы.

Пуля, используемая в URL-адресе списка, генерируется на основе имени расширения и должна быть уникальной в сочетании с типом расширения. Слаг никогда не может быть использован повторно, даже если ранее загруженное расширение, использующее его, будет удалено.

Процесс обновления дополнения все еще исследуется (не стесняйтесь делиться идеями!) и будет задокументирован позже.

Обзор процесса

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

BLENDER EXTENSIONS PLATFORM, image #4

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 использовался в качестве справочного материала для архитектуры.

Выводы

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

456 views·9 shares