Extensions: Support online extensions and move add-ons outside of Blender #121825

Manually merged
Dalai Felinto merged 2 commits from ideasman42/blender:pr-extensions-addons-core into main 2024-05-15 19:29:15 +02:00

The extensions system allows to extend Blender with connectivity to the internet. Right now it means Blender can discover and install add-ons and themes directly from the internet, and notify users about their updates.

By default this is disabled (opt-in), and users can enable it the first time they try to install an extension or visit the Prefences > Extensions tab. If this is enabled, Blender will automatically check for updates for extensions.blender.org upon startup.

When will Blender access the remote repositories:

  • Every time you open the Preferences → Extensions: ALL the enabled repositories get checked for the latest info (json).
  • Every time you try to install by dragging: ALL the enabled repositories get checked for the latest info (json).
  • Every time you start Blender: selected repositories get checked for the latest info (json).

From the Blender code point of view, this means that most of the add-ons and themes originally bundled with Blender will now be available from the online platform, instead of bundled with Blender. The exception are add-ons which are deemed core functionality which just happened to be written as Python add-ons.

Links:


This PR does the following.

  • Move extensions out of experimental.
  • No longer install scripts/addons & scripts/addons_contrib.
  • Add scripts/addons_core to blender's repository.

Core add-ons:

These add-ons will still be bundled with Blender and will be always enabled in the future, with their preferences moved to be more closely integrated with the rest of Blender. This will happen during the remaining bcon2 period. For more details, see #121830

From scripts/addons

  • copy_global_transform.py
  • hydra_storm
  • io_anim_bvh
  • io_curve_svg
  • io_mesh_uv_layout
  • io_scene_fbx
  • io_scene_gltf2
  • pose_library
  • ui_translate
  • viewport_vr_preview

Extra: bl_pkg (scripts/addons_contrib)

Note: The STL (legacy) add-on is going to be moved to the extensions platform. There is already a C++ version on core which is enabled by default.

Non-core add-ons:

All the other add-ons are already available at extensions.blender.org. To use them you need to:

  • Go to User Preferences > Extensions
  • You will be greated with an "Online Extensions" message, click on "Enable Repository".
  • Search the add-on you are looking for (e.g, Import Images as Planes).
  • Click on Install

Over time their maintaince will be transferred over to the community so their development can carry on. If you used to help maintain one of the bundled addons please read: https://devtalk.blender.org/t/changes-to-add-on-bundling-4-2-onwards/34593


Update

We cannot change the commit message, but for anyone landing here looking for the History/credits (to go back in git log) check the read-only Add-ons repository.

The extensions system allows to extend Blender with connectivity to the internet. Right now it means Blender can discover and install add-ons and themes directly from the internet, and notify users about their updates. By default this is disabled (opt-in), and users can enable it the first time they try to install an extension or visit the Prefences > Extensions tab. If this is enabled, Blender will automatically check for updates for extensions.blender.org upon startup. When will Blender access the remote repositories: * Every time you open the Preferences → Extensions: ALL the enabled repositories get checked for the latest info (json). * Every time you try to install by dragging: ALL the enabled repositories get checked for the latest info (json). * Every time you start Blender: selected repositories get checked for the latest info (json). --- From the Blender code point of view, this means that most of the add-ons and themes originally bundled with Blender will now be available from the online platform, instead of bundled with Blender. The exception are add-ons which are deemed core functionality which just happened to be written as Python add-ons. Links: * Original Extenesions Platform Announcement: https://code.blender.org/2022/10/blender-extensions-platform/ * Extensions website: https://extensions.blender.org/ * User Manual: https://docs.blender.org/manual/en/4.2/extensions/index.html#extensions-index * Technical specifications: https://developer.blender.org/docs/features/extensions/ * Changes on add-ons bundling: https://devtalk.blender.org/t/changes-to-add-on-bundling-4-2-onwards/34593 --- This PR does the following. * Move extensions out of experimental. * No longer install `scripts/addons` & `scripts/addons_contrib`. * Add `scripts/addons_core` to blender's repository. ## Core add-ons: These add-ons will still be bundled with Blender and will be always enabled in the future, with their preferences moved to be more closely integrated with the rest of Blender. This will happen during the remaining bcon2 period. For more details, see #121830 From scripts/addons - copy_global_transform.py - hydra_storm - io_anim_bvh - io_curve_svg - io_mesh_uv_layout - io_scene_fbx - io_scene_gltf2 - pose_library - ui_translate - viewport_vr_preview Extra: bl_pkg (scripts/addons_contrib) Note: The STL (legacy) add-on is going to be moved to the extensions platform. There is already a C++ version on core which is enabled by default. ## Non-core add-ons: All the other add-ons are already available at extensions.blender.org. To use them you need to: * Go to User Preferences > Extensions * You will be greated with an "Online Extensions" message, click on "Enable Repository". * Search the add-on you are looking for (e.g, Import Images as Planes). * Click on Install Over time their maintaince will be transferred over to the community so their development can carry on. If you used to help maintain one of the bundled addons please read: https://devtalk.blender.org/t/changes-to-add-on-bundling-4-2-onwards/34593 --------------------------- ## Update We cannot change the commit message, but for anyone landing here looking for the History/credits (to go back in git log) check the read-only [Add-ons repository](https://projects.blender.org/blender/blender-addons).
Author
Owner

@blender-bot build

@blender-bot build

Right now I ended up with two copies of the add-ons:

  • addons_core
  • addons

I understand that this is due to make install not deleting old files. But it may be good to make blender itself to ignore the 'addons' folder entirely from the install folder (as long as it doesn't influence Custom Paths).

Right now I ended up with two copies of the add-ons: * addons_core * addons I understand that this is due to make install not deleting old files. But it may be good to make blender itself to ignore the 'addons' folder entirely from the install folder (as long as it doesn't influence Custom Paths).
Campbell Barton force-pushed pr-extensions-addons-core from 1cabadaa14 to ac0e356058 2024-05-15 15:41:31 +02:00 Compare
Author
Owner

I understand that this is due to make install not deleting old files. But it may be good to make blender itself to ignore the 'addons' folder entirely from the install folder (as long as it doesn't influence Custom Paths).

"addons_core" now overrides "addons" which should resolve the issue.

> I understand that this is due to make install not deleting old files. But it may be good to make blender itself to ignore the 'addons' folder entirely from the install folder (as long as it doesn't influence Custom Paths). "addons_core" now overrides "addons" which should resolve the issue.

@blender-bot package

@blender-bot package
Member

Package build started. Download here when ready.

Package build started. [Download here](https://builder.blender.org/download/patch/PR121825) when ready.
Dalai Felinto changed title from WIP: move addons from the addons repo to "addons_core" to WIP: Move (most of) add-ons outside of Blender 2024-05-15 15:49:50 +02:00
Dalai Felinto changed title from WIP: Move (most of) add-ons outside of Blender to Extensions: Support online extensions and move add-ons outside of Blender 2024-05-15 15:53:23 +02:00
Campbell Barton force-pushed pr-extensions-addons-core from c8f1fb925d to c946d119fe 2024-05-15 16:16:14 +02:00 Compare
Campbell Barton force-pushed pr-extensions-addons-core from 3692a83ae8 to ea44987a46 2024-05-15 16:35:36 +02:00 Compare
Campbell Barton force-pushed pr-extensions-addons-core from ea44987a46 to 4cfbb0c766 2024-05-15 16:36:43 +02:00 Compare
Campbell Barton force-pushed pr-extensions-addons-core from 38302d6035 to 56dcf7e2e5 2024-05-15 16:51:03 +02:00 Compare

@blender-bot package

@blender-bot package
Member

Package build started. Download here when ready.

Package build started. [Download here](https://builder.blender.org/download/patch/PR121825) when ready.
Campbell Barton force-pushed pr-extensions-addons-core from 56dcf7e2e5 to 88c93e4a6f 2024-05-15 16:59:51 +02:00 Compare
Dalai Felinto force-pushed pr-extensions-addons-core from 88c93e4a6f to 00c31a8264 2024-05-15 17:11:21 +02:00 Compare

@blender-bot package

@blender-bot package
Member

Package build started. Download here when ready.

Package build started. [Download here](https://builder.blender.org/download/patch/PR121825) when ready.

@blender-bot package

@blender-bot package
Member

Package build started. Download here when ready.

Package build started. [Download here](https://builder.blender.org/download/patch/PR121825) when ready.
Dalai Felinto force-pushed pr-extensions-addons-core from ebf175d153 to 6208085679 2024-05-15 18:24:17 +02:00 Compare
Dalai Felinto manually merged commit c4a0bbb1f4 into main 2024-05-15 19:29:15 +02:00
Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#121825
No description provided.