2024-02-05 Extensions Project


  • Campbell Barton
  • Dalai Felinto

Recent changes

Updates since the previous meeting:

  • Improve UI for adding/removing repositories.
  • Update manifest to bl_info conversion.
  • Support addon_utils.module_bl_info() for enabled extensions.
  • Detect time-stamp changes to extensions manifest on refresh.
  • Using SPDX for licenses.
  • Manifest updates.

Server-specific changes:

  • Remove support level for add-ons, as well as documentation URL.
  • Pass the official (extensions) website as the individual extensions on the JSON.
  • The manifest website is still used to populate the extension page, but not passed to the JSON.
  • Make website and tracker url as optional
  • Get schema_version, tagline and other fields from manifest

Manifest changes:

  • author → maintaner (single string)
  • homepage/tracker/documentation_url → website

General Topics:

  • Aim at smaller more granular tasks.
    • For now closing the main UI task, and creating individual tasks for the remaining parts.
  • Dalai started working on the user documentation.


  • The pop-up is fine as it is.
    • It would be nice if we could have a directory button for custom folders
      (crashes at the moment).
    • Still misses a tooltip for the Custom Folder option.
  • Should check for updates after created.
  • From the UI is not possible to turn a remote repository into a local one (and vice-versa).
    • The “Use Remote URL” checkbox should only be accessible via the API.
  • Talked about renaming Remote/Local to Online/Offline (or Online/Local), but nothing conclusive.

User Interface

  • Error/warnings
    • Stick to the current solution (make it dismissible though).
    • Inquiry the UI team to get their green light or a better solution.
  • Enable checkbox for padding even for non-installed
    • To support the placeholder for non-installed extensions is part of the UI task.
    • For non-add-ons, for now, we show the enable button but inactive.
  • Proposal: to remove “(from file)” for the operators:
    • “Install Extensions (from file)…” → “Install from Disk”
    • “Install Legacy Add-on (from file)…” → “Install Legacy Add-on”
  • Bolder proposal: to remove ALL text under ():
    • Installed (Legacy) → Installed … but use Legacy for the name. e.g., “Legacy: Blender Kitsu”.
    • “Blender Kitsu (Outdated)” → “Blender Kitsu” (but uses the Update button).
  • Nit picky:
    • I would show the human-readable SPDX version of the (most common) license, not its slug:
      • “GPL-3.0-or-later” → “GNU General Public License v3.0 or later”


  • Implement drag & drop from URL.
    • https://extensions.blender.org/media/files/ed/1fec123.zip
  • Implement install from clipboard.
    • Support the same URL that can be dragged.


Next planned tasks:

  • Support deleting a version.
  • Support deleting a whole extension.

Follow ups: