I will personally create manifest file for Blender addons by deceased developers. Users can send them to me.
I hope this alleviates some fears
I’ll give my two cents of feedback, after having tested Light Painter as an extension on 4.2 and uploaded to extensions.blender.org for testing:
- Creating the manifest was easy - just pulled in the online example and copied from
bl_info
(except for the license, but that’s just looking the tag up). I can’t speak for packing wheels as dependencies, but the manifest change + testing in 4.2 was straightforward. - Glad that
bl_info
can stay for backwards compatibility. I did notice if I dragged a.zip
file without a manifest into 4.2, it did the “Install?” prompt but nothing happened after confirming - failed to register, but no error. We’d need some warning/error if it fails, or have backwards compatibility so drag-and-drop supportsbl_info
only add-ons, as a legacy install. This was from the nightly build I found today on the site. - I noticed extensions.blender.org only accepted
.zip
files if the minimum supported Blender version was4.2.0
or higher. It would be nice to at least display support for older versions for add-ons that can, including a standard zip download option for “legacy” users.
Happy to discuss these points especially if the issues mentioned are known/intentional.
Many of my questions were answered from the docs, except one edge case. How will this affect installing add-ons via Python API? I currently run unit tests on some of my add-ons, which installs the add-on for the test session (you can see the install code here, if you’re curious). The module reference would need to change, from what I understand about relative imports. But any insight or examples would be greatly appreciated.
Attempting to install from disk with an extension that is eg. missing required keys in the manifest also fails silently with no error.
I mean … that’s a problem any Plugin solution to a non-core feature carries, I think. In Blender’s case at least there’s the benefit that any plugin that isn’t dependent on separate external executeables or art assets is by definition already entirely GPL and can at least be picked up by the community if needed. A benefit not all plugins from other software habe.
So I’ve been thinking a bit more about this and had some thoughts I wanted to share :
-
Zip files are certainly going to still be needed. Lots of add-ons include other files that when zipped reduce the size of the download significantly.
-
Currently, most of the best free add-ons are either shipped with Blender, hosted on Gumroad, or hosted on Blender Market or available on GitHub. Other than the free add-ons that ship with Blender, most of these others are not frequently updated nor are they well supported. It’s not exactly clear to me how those other platforms are to be included in this new infrastructure. I’ve tried reaching out to Blender Market and have not heard of any plans at the moment.
-
Assuming a plethora of new add-ons, why not take a more encompassing problem solving approach and figure out how to make the N panel something that actually works with add-ons? It seems to me that we’re going to be having a lot more cars yet nowhere to park them. I think we can all agree a scrolling N panel tabs list is an extremely poor UX. There is a thread about this but my idea would be to allow developers to create their own small icons and that way you could fit quite a number of them on the N panel. Also, allow for shortcut keys to be assigned to the tabs.
That said, I would ask kindly to please not resort to the horrible UX of multiple hierarchical menus as previous developers did for the 4.0 modifiers. I can’t believe that got through any sort of user experience testing as it is well known that that is a most difficult way to access any sort of regular used feature.
To that end, I would also hope that Blender at some time realizes the importance of UX and UI and seizes to make some of the horrific GUI mistakes that keep showing up.
Can’t wait for this to be finalized. It’s already great.
Just like I thought, this is basically Blender’s version of the Source Filmmaker Workshop. It’s only missing a way to get the add-on from the preview page. I really hope this takes off, and gets lots of support. I know a bunch of people who would gladly use Blender just because of the new Extensions Platform.
Hi,
I was reading Extension Licenses — Blender Manual for additional info on add-on licenses. This document makes it like the assets provided along with add-ons have to be licensed as public domain, which seems out of context to me. The CC0 lic is fine if someone wants to release them as such but requiring the included 2D/3D assets (which are generally creative outputs) to have CC0 seems a bit of overreach to me. Please bear in mind that CC0 means AI models can be trained on them freely as well.
This puts developers who creates add-ons that provide commercial libraries/assets in a tough situation. This page might need better definition of what falls under the CC0 assets category.
Thanks
Extension Licenses — Blender Manual
For add-ons and themes the recommended license is GNU General Public License v2.0 or later. For assets, the required license is Public Domain (CC0).
My intuitive understanding of the extensions platform is that users can just use it, without having to deal with license issues. Similar to when you add a monkey or a cube. You can just use them.
Any asset license stronger than CC0 would make this complicated for users.
Well, I can’t test as I can’t access the repository from Blender at work. Gives this error, must be our firewall.
“sync: URL error (<urlopen error [Errno 11001] getaddrinfo failed>) reading ‘https://extensions.blender.org’!”
This reinforces the point that some others have already made. It is crucial to keep on supporting zip/offline install, as many companies restrict internet access, and don’t allow just any program to access it directly. Meaning, changing 100% to the extensions plattform would mean the end of addons in (probably most) corporate settings.
Note: Loading the page on the extensions webpage and clicking and dragging the button onto Blender also does nothing unfortunately.
EDIT: I installed a few extensions manually. This works. However, there is no link to the Extensions page of the given addon. This would be nice to have, to check the version/what’s new/etc.
This already exist. you can download and install an addon manually. see example this addon on the extension page
Hi,
I was away for a week, but I want to address the feedback we got since. Thanks for them, and for everyone testing the site.
FAQ
I updated the original post with this FAQ:
- Working offline
- Extensions can be installed offline (see Install from Disk).
- Extensions installed this way don’t benefit from auto-update (for now).
- Legacy Add-ons
- Add-ons prior to 4.2 are considered legacy.
- These add-ons can still be installed, and used, however they do not support the new auto-update system.
- There is still a difference between Legacy add-ons (uses bl_info), and extensions installed from disk (uses manifest).
- Add-ons can support both manifest and bl_info for backward compatibility.
- Third-party stores + unique JSON
- Commercial third-party stores can also be integrated with Blender to leverage auto-updates.
- The details can be found on the documentation.
- The recommended way of doing this is by creating a unique token to be used to deliver a JSON with the relevant extensions the user has access to.
Bugs
- “I did notice if I dragged a .zip file without a manifest into 4.2, it did the “Install?” prompt but nothing happened after confirming - failed to register, but no error.” - @Spencer_M
- “Attempting to install from disk with an extension that is eg. missing required keys in the manifest also fails silently with no error.” - @scurest
I would ask you to please report these as bugs in projects.blender.org. Nothing should ever fail silently. You can mention me + @ideasman42 on the report.
Python convertion
bpy.ops.preferences.addon_enable(module='lightpainter')
bpy.ops.preferences.addon_install(filepath=get_zip_file_in_parent_dir())
@Spencer_M I poked Campbell about this to see if there is a proper way.
But since you need this as part of the unittest I would recommend just adding the repository name as part of the module name. It should work.
Other topics:
- UI to support multiple add-ons on the N-panel
- Add-ons should not get any special treatment compared to any other core feature. If Blender needs a better way to handle the tabs, than it is something to address on the Blender interface itself.
- CC0 license
- The idea is that anyone can bundle a bunch of extensions from the site and distribute them together with Blender without any restriction (besides Blender’s own GPL 3 or later).
- Companies and firewalls
- It is rare to have companies that allow employees to install “random” software (or plugins) on their workstation.
- So if the company is firewalling Blender extension site, it would probably not allow someone to install new extensions anyways.
- That said, companies can keep their own local set of pre-approved extensions (from extensions.blender.org or a third-party place) and serve them via a local JSON.
This doesn’t address the concern about extensions serving a library of commercial, non-CC0, assets
From what I understand, only bundled assets need to be CC0. If an addon downloads something from the internet, then that asset can have a different license of course.
I think what needs to be clarified is that this documentation page about licenses is only about extensions.blender.org. Maybe that page shouldn’t even be in the user manual, but rather only on the website.
Commercial assets would not be hosted on extensions.blender.org. But others can make repositories with assets under any license they choose.
There can be a question if extensions.blender.org should also support assets licensed under e.g. CC-BY or CC-BY-SA. But that would mean users would have to carefully check licenses and add attribution when e.g. sharing a render, which I think would be unexpected. So maybe those belong in separate repositories.
That page needs real clarification on this issue, because as of now it sounds like any add-on (regardless of its origin of the download) needs to provide CC0 for the included/downloaded assets.
Why CC0 or CC-BY, CC-BY-SA Licenses for the “extensions.blender.org” ?
For what i understand with the GPL license there is no need of the attribution of the OUTPUT like a render for example.
https://www.gnu.org/licenses/gpl-faq.html#GPLOutput
With GPL you need the attribution if you share the Extension/Addon and in the same time no attribution is needed for the Output ( renders for example ).
For what i understand If you share and Extension with CC-BY CC-BY-SA for example you need to give the attribution if you share the add-on but also for the output ( renders for example ) because the licenses do not have the output distinction.
And Why CC0 ? if you use Blender API you should follow the GPL Rule.
It is quite unusual ( even possible ?) for an extension to not use Blender API.
Conclusion i would stick with GPL only for the “extensions.blender.org”.
Commercial Extensions should follow GPL license too in the case of Blender API usage ( at least the part of the extension that use the Blender API ).
The CC0 license rule for extensions.blender.org is about assets (meshes, textures, materials, …). It’s not about source code.
yes i agree the Creative Commons license are suited more for assets.
thank you for the clarification.
So there is a GPL license for the extension code and eventually another CC license ( CC0, CC-BY, CC-BY-SA ) for the assets.
The question is : if an extension under only GPL license and have some assets ( textures for example ), do you need the attribution for the OUTPUT renders if the renders contain the assets references ( like textures) ? In other words are rendered textures considered an OUTPUT of the GPL licensed texture ?
GPL License is not well suited for assets.
I hope that this won’t have a negative side effect in the long run like forcing developers to implement and share shell extensions on the platform and requiring internet to function.
Not having CC0 as my asset license does not mean that my asset is commercial. I think the platform should encourage liberal licenses, but it should not alienate developers if possible.