2024-05-21 - Extensions Project

Attendees:

  • Campbell Barton
  • Dalai Felinto

Recent changes

  • The main features are out of experimental!
  • Official support for Python wheels.
  • New platforms field on the manifest.

Feedback

  • A lot of feedback was shared, mainly on:
  • There will be a design meeting at HQ later today to go over the raised points and decide what to make of them. [done, its findings were merged with these notes]

Topics

  • Work offline !121994
    • Preferences > System > Network: [ ] Allow Online Access
    • Command-line options: --offline-mode / --online-mode
    • Python API: bpy.app.online_access (read-only).
    • The policy is an informal agreement: (not enforced)
      • Blender respects this settings.
      • Add-ons are expected to respect this as well.
      • Needs to be documented on Guidelines
      • Failing to adhere to the policy can be considered a bug.
    • Special case
      • If you launch Blender with the command-line option --offline-mode,
        it grays out the user preference option to change online/offline mode.
        This means (in this case) that you cannot switch to an “online” session on the fly.
    • Functionality:
      • Blocked:
        • Checking for updates on startup.
        • Manually checking for updates.
        • Install/Update extensions.
        • Installing via drag and drop.
      • Allowed:
        • Opening links in a browser (Help menu, accessing the manual, etc).
      • Command line sync/updates:
        • We require explicitly enabling online mode to override the preference:
          blender --online-mode -c extension update
          … note that we could have an exception here, for now don’t for consistency.
      • See further design topics on dedicated session.
  • Access Token for remote repositories !121886
    • Patch is good to go.
    • The option to use access token can be renamed:
      • Heading: Authentication
      • Label: Requires Access Token
  • 4.1-add-ons-bundle.zip
    • To help the transition from Blender 4.1 to 4.2, a bundle with all the 4.1 add-ons (which were moved to the extensions platform) will be available to download.
    • A single .zip with all the 4.1 add-ons.
    • We may update the .zip prior to release in case fixes were required for the 4.2 API.
    • Check popular add-ons (rigify/node-wrangler) work before publishing.
    • Remember to exclude the core add-ons.
  • Onboarding experience
  • Rigify/BlenderBIM import module externally
    • Check with BlenderBIM how they access blenderbim externally (Dalai will reach out to them).
  • Site upcoming changes (extensions.blender.org)
    • Tokens + version update API patches.
    • This will be used with the updater script to update the legacy extensions whenever they have a blender_manifest.toml version change compared to the website.
  • Install from Disk unification !121926
    • Patch contributed by Brecht (thanks!).
    • Unify install from Disk and Install Legacy Add-on.
    • Clunky user interface showing options for both Legacy and non-legacy add-ons (basically which repo to pick).
  • Improvements to build sub-command.
    • By default hardcoded excluding:
      • .git
      • .DS_STORE
      • __pycache__
  • Should we bundle Pillow in the future? Why are people using those heavy wheels anyways?
    • Technically Blender internally already has image processing capabilities.
    • Bundling pillow would increase Blender size (on the other hand, each extension that bundles it, adds this individually.
    • Topic postponed.

Design Topics:

  • Token access name !121886.
    • Heading: Authentication
    • Label: Requires Access Token
  • Splashscreen
    • “All Extensions are Up to Date”: also clickable.
    • If offline by cmd --offline-mode:
      • Shows “Offline mode” + icon world with slash.
    • If offline by preference:
      • Shows “Offline mode” + icon, makes it clickable (Preferences > Network > Allow Online Access).
  • Add-ons Tab
    • Bring back the design of having a separate add-ons tab to enable/disable + preferences
    • Needs “button” to let people see add-on settings.
  • Tags as categories
    • Bring the tags as categories.
    • Needs a mockup.

Online / offline mode

A new option to control whether Blender allows online access.

  • Offline by default.
  • Surface the preference option to the splash screen.
  • Name Allow Online Access
  • Rename bpy.app.internet_offline > bpy.app.online_access (read-only)

Tooltip: “Add-ons and extensions can check for this to prevent unauthorized internet access”

Install from Disk

In order to unify both installations (Install from Disk and Install Legacy Add-on), their preferences also need to be unified. Using sub-panels can help with the organization:

  • Sub-panel “Extension” (open by default)
    • Use column split
    • Property: Local Repository
    • Property: Enable on Install
  • Sub-panel “Legacy Add-on” (closed by default):
    • Icon on header aligned to the right: ? leading to the website.
    • Property: Target Path
    • Property: Overwrite
7 Likes

Will we be able to make our own bundles as well? That will be biggest improvement for teachers and TDs imho

2 Likes

Will we be able to make our own bundles as well? That will be biggest improvement for teachers and TDs imho

Yes, and of extensions even. If you go to the folder where your extensions are installed you can .zip it and install in other computers.

They will be installed as “Installed from Disk” though, so they won’t get updates from the internet. Unless they are “installed” by directly unzipping them where your remote repository add-ons are installed.

6 Likes