Changes to Add-on and Themes Bundling (4.2 onwards)

From Blender 4.2 onwards there will be no external add-ons repository integrated with the Blender source code. Instead these add-ons will either move into their own repository and shared on the extensions website or exceptionally, be converted into a “core” add-on.

Action points:

  • The blender-addons repositories will now be read-only.
  • The blender-addons-contrib will also now be read-only.
    • The reposority will stay archived, but the add-ons won’t be migrated since they were never bundled with Blender.
  • A few selected add-ons will be integrated with the blender code in a “addons_core” folder.
  • Users will need to install their desired (non core) add-ons from extensions.blender.org.

Core Add-ons

Most of the add-ons that were shipped with Blender will now be available instead on the Extensions platform.

There are a few exceptions which will be integrated as “core” add-ons in Blender. The core add-ons are to be treated like any other tool in Blender, which just happen to be written in Python.

  • Preferences defined on DNA_userdef_types.h/rna_userdef.cc.
    • These add-ons preferences will be defined together with the other preference settings.
  • By design it won’t be possible to disable these add-ons.
    • Add-ons which are intended to be disabled by default (VR, Storm Hydra engine, …) needs instead to have a new setting to hide them from the iterface instead.
  • They won’t show on the “Extensions” tab on the “Preferences”.
  • They will move to the main blender repository in a addons_core folder.

The initial proposal is to have the following add-ons as core:

  • BioVision Motion Capture (BVH) format
  • Copy Global Transform
  • Cycles Render Engine
  • FBX format
  • glTF 2.0 format
  • Hydra Storm render engine
  • Pose Library
  • Scalable Vector Graphics (SVG) 1.1 format
  • STL format (legacy)
  • UV Layout
  • VR Scene Inspection
  • UI Translation

Some of these add-ons will require some changes on their code.

Popular (Hacky) Add-ons

Some add-ons are widely used, however they were never to the quality standard expected of the core Blender code or usability. They will be moved to the extensions platform.

  • Node Wrangler
    • Some of its functionaility can eventually be integrated into Blender. But as a whole the add-on belongs elsewhere for now.
  • Import Images as Planes
    • It uses: bpy.app.driver_namespace, bpy.app.handlers.depsgraph_update_post & bpy.app.handlers.load_post in ways which runs too frequently.
  • Rigify
    • It is one of the many possible solutions for auto-rigging. The animation & rigging module is ok with being an extension for now.

Non-core Add-on Maintainers

All the non-core add-ons are now hosted on projects.blender.org/extensions.

Original maintainers (or new volunteers) interested on working further on them, you will need to:

  • Be added as contributor to the repository.
  • Be added as maintainer of the extension.

Optionally you can also make a case to take over its development entirely and even host it elsewhere if you want.

In either case, you will be responsible for re-generate the extension packages and uploading them as new versions online.

Please reach out to me (dalai at blender dot org).

Non-core Add-on Extensions

All the non-core add-ons now hosted on projects.blender.org/extensions will be automatically converted to extensions.

They will be uploaded as it is, and tested one-by-one to see which one is working. This is an exception to the Extensions platform guidelines where all add-ons are expected to be tested ahead of time.

Everyone is welcome to test them and report any issues (related to the add-on to extension conversion) on their respective issue tracker.

Themes

All the community themes that shipped with Blender have been moved to projects.blender.org/extensions and published in the Extensions Platform.

If you were a maintainer of these themes please feel free to get in touch so you can continue updating them through the repositories.

Legacy Add-ons Bundle

As part of Blender 4.2 download, there will be an option to download a separate package with all the non-core add-ons before they were moved to the extensions platform.

19 Likes

Is that worth doing at all? My take would be to just remove legacy STL addon.

2 Likes

There should be a way to notify users which built-in addons they had enabled in 4.1 were moved to platform

2 Likes

I was thinking along the same lines, but Bastien wanted to be conservative here and make sure we have at least one LTS with the old system still around.

It is open for debates if you can convince him :slight_smile:

2 Likes

Hmm I dunno. I’m fine either way. I can try promising to fix any & all issues that might come up with the built-in C++ STL I/O during the 4.2 LTS, if that helps to sway someone towards removing the legacy addon. But also, I don’t know how much my promise is worth :slight_smile:

Some reasons for removing duplicate/legacy addons that I can think of: 4.2 has new things like “drag and drop for file imports for python addons too” and (I think?) collections export. But these are not going to get implemented for the legacy addon, creating a bit of inconsistency.

8 Likes

This one seems to qualify as a … Redo some other code, and remove it. I believe all it does at present is create a button in a tab that says 'feature deprecated, press button to open library"?

(Can’t check at the moment, so going off memory)

Shouldnt there just be a straight forward command in the main software that can handle this, with the addon? (And, save some tab space…)

The Pose Library Add-on makes all the core pose asset functionality available to users. It defines most of the UI and a bunch of operators.
There’s an info text in the sidebar since 4.0 telling people that the pose library moved to the asset shelf, maybe that’s what you’re referring to.

1 Like

Where does the icon selector add-on for the Text Editor go(I’m using it often)?

1 Like

That’ss good, also a public service announcement will help the community transition smoothly.

They should be a way to let the community Know and also a public service announcement will help the community to transition smoothly.Thank you.

Now I understand the importance of pushing all the plugins to extensions platform.

So in a few ways I find this all a little concerning, especially in relation to the ‘Popular Addons’.

As such, let me ask a basic question.
You have a Blender ‘stable’ release ready to go and then someone posts an issue with Rigify or Node Wrangler that basically stops them from working or working properly or maybe even crashes Blender in some cases.
However, they aren’t ‘core’ any more, not part of a Blender release or download, basically just the same as any other addon that one may get from a market place or github or wherever.
Does this now mean Blender gets released as ‘stable’ and the huge number of people that use those addons either go without them or don’t install the latest ‘stable’ release and hope the addons get fixed?

While one assumes, in the mean time, the few people that may use the ‘VR Scene Inspection’ addon can rest assured that it’s core, stable and downloaded with Blender.

1 Like

Where does the icon selector add-on for the Text Editor go(I’m using it often)?

It is here: Icon Viewer — Blender Extensions

It does, but only if the corner pin compositing setup feature is used. I don’t have usage statistics but I wouldn’t think that’s the most common use case. I don’t mind having the add-on as an extension though, besides having to adapt the Camera Plane extension not to rely on it.

I contacted the original AnimAll author, @ZanQdo, who agreed with me continuing the maintenance. I extracted the repo before I saw this post but haven’t published it anywhere. Would you rather I be given commit rights and (force-)push to that repo, or push my version under my own name, and archive yours?

1 Like

Would you rather I be given commit rights and (force-)push to that repo, or push my version under my own name, and archive yours?

You are the maintainer, I’m glad to go whichever direction you prefer. Options:

  1. Remove the repository and the add-on and you handle your own version wherever you want to host it.
  2. Add you as colaborator to the existing repository, and transfer the ownership of the extension to you.

Or any combination of the above.

For now I added you already as collaborator to the repository, and transferred the extension to you. Let me know if this is enough.

1 Like

Does this now mean Blender gets released as ‘stable’ and the huge number of people that use those addons either go without them or don’t install the latest ‘stable’ release and hope the addons get fixed?

Hi Anthony, your assessment is correct. Moving forward, the responsibility to keep an extension improved and updated leans more heavily on the community of extension maintainers.

In the ideal world, the Blender Python API should be stable enough that add-ons will run without changes across multiple versions of Blender. In the reality we all know that is safer if add-on maintainers can start to check the state of their extensions during the Beta phase of upcoming Blender versions.

One thing that can be added retroactively to an extension version is its “maximum Blender version”. This way the moment the maintainer finds out a version is no longer running in a version of Blender, this can be set straight from the website. The community can also “Report” this, which will send a message to the extension Approval Queue.


You can also see from the other angle. If the Node Wrangler maintainers were not able to make it stable enough on time for a release, this doesn’t get on the way of a Blender release. Given how many popular add-ons are out there I think this is inevitable.

But, the Node Wrangler extension can still receive updates and fixes throughout the life-cycle of a Blender release.

8 Likes

Awesome, thanks Dalai!
Since the repository is created already, might as well use it. :slight_smile:

1 Like

The Icon Viewer is missing tags ex. Development and Text Editor?

Btw. a misplaced theme in the Sequencer add-on section:

I would strongy recommend avoiding force-pushes. These repositories are monitored by others as well, and force-pushes make it much harder to keep track of a git repo. This is why on the main Blender repository force-pushing to the main branch is not even possible.

Thanks, but I was thinking of force-pushing only once, for the initial push. This is because the histories are different, mine having kept more commits from the original repo. I figured since the repo was created yesterday, not that many people should be monitoring it yet.

2 Likes

Does this change require any further admin privileges to use the addons (aside from the Blender installation)? I work in a company that has strict policy; it’s a PITA every time I need to provide the admin password

2 Likes