Creating an Extensions Repository

Les sites tiers qui souhaitent prendre en charge les extensions dans Blender peuvent le faire de deux manières :

  1. Forkez l’intégralité du Extensions Website comme point de départ; ou

  2. Héberger un fichier JSON listant tous les packages de votre dépôt.

Pour générer un fichier JSON valide, vous pouvez utiliser l’outil en ligne de commande :

blender --command extension server-generate --repo-dir=/path/to/packages

Cela crée une liste de tous les packages trouvés à l’emplacement spécifié.

Voir les documents server-generate.

Exemple de ce à quoi devrait ressembler le JSON :

 {
   "version": "v1",
   "blocklist": [],
   "data": [
    {
       "id": "blender_kitsu",
       "name": "Blender Kitsu",
       "tagline": "Pipeline management for projects collaboration",
       "version": "0.1.5-alpha+f52258de",
       "type": "add-on",
       "archive_size": 856650,
       "archive_hash": "sha256:3d2972a6f6482e3c502273434ca53eec0c5ab3dae628b55c101c95a4bc4e15b2",
       "archive_url": "https://extensions.blender.org/add-ons/blender-kitsu/0.1.5-alpha+f52258de/download/",
       "blender_version_min": "4.2.0",
       "maintainer": "Blender Studio",
       "tags": ["Pipeline"],
       "license": ["SPDX:GPL-3.0-or-later"],
       "website": "https://extensions.blender.org/add-ons/blender-kitsu/",
       "schema_version": "1.0.0"
    }
    ]
}

Tout comme pour le fichier manifeste, les champs facultatifs (par exemple, blender_version_max) doivent soit avoir une valeur, soit être omis des entrées.

Pour la plateforme d’extensions officielle, la valeur website est la page de l’extension dans la plateforme en ligne. Même si le manifeste pointe vers le site Web spécifique au projet.

Note

Tout référentiel distant doit suivre la dernière API.

Multiple Versions

When Blender fetches the extensions listing it passes the following arguments to make sure only compatible extensions are listed:

  • platform

  • blender_version

This means that servers which can handle these arguments will have a single entry per-extension on the listing.

For static generated JSONs this is not supported. Instead, the JSON generated with the server-generate command will display all available versions for all the unique combinations of platforms.

Tags and Translations

If you are planning to use a different set of tags than the ones used by Blender Extensions Platform, remember to submit a pull request to tags.py.

This way they can be shown translated within Blender.