Extensions Platform

1.)Requesting directions (links) to the addon manager python code that establishes online connection for checking for updates(python file name(s) and relative paths) (Where are the files located and what are they called in the main repository).
*Yes i know, things may change, i want to test and see how easy it is to get rid of the online functionality.
*are those the ones under addon_core/bl_pkg?

2.)Asking once again , if any code related to the new add-on manager was added to blender’s C++ code (blender . exe).

Its hard to follow commits as about 1000 are made per day.
(For the follow-up question, “Can’t you do a simple search without spoon-feeding?” - No).

Hi @brecht, quick question regarding how the update function works with add-ons now in 4.2.

Previously, updating an add-on by installing a newer version with the install button would not actually update it until Blender was restarted. This was very bad, since I saw so many cases where users updated an old add-on that no longer worked to the latest version and got confused, as it was still not working, and then just removed the add-on, despite it working perfectly fine after a restart.

There were some exceptions where some add-ons took care of it and re-registered all classes and stuff, but it is not super common. Also, I have never seen an add-on update the bl_ stuff like version number and such, so the user could still think they were using an old version.

Will the new extension automatically update the add-ons when the update button is pressed without needing to restart Blender to get the latest version? Like re-register all the classes automatically and stuff? Or is a restart still required for the update to take place? I notice that the version number is updated, which is great! Can you confirm if the add-on itself also updates?

Also, are there any plans to make installing add-ons non-blocking for the UI? Currently, it can be very slow to install add-ons and even for small stuff Blender just freezes and the spinning wheel appears for a while, which feels quite bad when installing a lot of add-ons.

1 Like

I suspect this is just your internet connection. For me it’s instantaneous

I have a very good internet connection, so I do not think thats the issue. Still even if I had not, I still think it would be good if it did not freeze Blender. But thats mostly a nitpick.

All the online access code is in addons_core/bl_pkg. And the actual networking code in addons_core/bl_pkg/cli/blender_ext.py.

There’s some code for user preferences in C++, but I think all the parts you are concerned with are in Python.

2 Likes

Thank you sir, also,

Pentesting, should be a massive task here, when the next version comes up, we are gonna have some tests if we can write some bad code and bypass filtering and user reporting (By trying to hide malicious code from the users (yes it can be done in python)) and write generic malicious add-ons (Generic means it doesn’t really do anything bad but a variant of it can ).

*Sadly this will be an undertaking that will never end, so we are just going to test the most basic stuff, code obfuscation, random file writes anywhere we can, opening connections on whatever port possible, shoving some easy to miss function that keeps generating data and eating resources, encrypting data at random, loading other python scripts that aren’t loaded, etc…

See how many add-ons i can get to slip under the radar; if anyone want to help, let me know; I may make a github repo for transparency and for working in an organized way.

Not everyone will act in good faith and blender got many clients and many of them work in production companies , one bad ransomware slipping in , better test it now then later.

In case my statements are coming out wrong, pentesting is for helping, simulated and supervised attacks while informing the boss (well, blender devs) on any exploits founds.

I’m not familiar with this problem. If it still happens it sounds like a bug that can be reported.

Should be easy to test downloading and old and new version from extensions.blender.org and installing both from disk.

A continuing problem is that the system relies on add-ons correctly unregistering. I’ve often seen bugs in that code as authors may not test toggling add-on enable/disable much.

I guess this will be less of a problem with extensions, as at least on extensions.blender.org you have to change the version number to upload a new version.

Are you talking about the new extensions system or old add-ons?

I know the extensions do various things in a non-blocking way, but it wouldn’t surprise me if there are still some blocking things that are difficult to resolve. As add-ons can arbitrarily affect the UI it could be difficult to keep drawing the UI while they are being changed.

1 Like

Thank you for the fast and detailed replay! Appreciates it! I tested some extensions and they all updated correctly!

I also tested some leagacy addon in 4.2, and unfortently they did not update correctly, but I guess thats not a big deal anymore since they are legacy now :slight_smile:

A comment system would be nice so people can ask questions and help eachother as well as mention mistakes on the upload or bugs they find. Currently theres only the Review system to place comments but after leaving a review you cant seem to edit it and theres many things to say that wouldnt make sense in a review (i.e giving tips to other users, mentioning bugfixes, tips for the post itself like sharing a link to a tutorial or mentioning that the previews images are now outdated etc)

Bookmark Collections would also be a great feature so we can bookmark and share collections we name that can consist of addons we like for animating, collections for uv addons, collections for light themes, dark themes, etc. This would also help studios make a Studio Collection so new members of the studio can be sent a single link to the bookmarked collection of all the addons they use at the studio

5 Likes

i was trying to filter the list to see what i have, i just saw the new filters checklist and it works nice as the old filter, however i can imagine a situation were a user that has several repositories may try to filter by those repos to check what extension are enable or not in a X particular repository, maybe add a note in the manual to mention the behavior or a warning or add a eye icon next to the repository chekbox or filter by repo.

I think extension tags should be revised, they are too specific, outdated and there are too many of them.

Please don’t focus on specifics, the main point that I express is that tags must be reduced and generalized. Following few examples:


These could be united under single Modeling tag:

  • Add Curve
  • Add Mesh
  • Modeling
  • Mesh
  • Object

If extension that adds new objects has to be in a separate tag, then Add Curve and Add Mesh could be united into something like Create/Add to Scene/Add Object/Objects/Generate tag.


Blender does not have game engine for how many years?

  • Game Engine

What are these supposed to mean?

  • 3D View
  • System
  • Scene
  • Pipeline
  • Paint

A separate tag for baking?

  • Bake

Spelling.

  • Sculpt > Sculpting
  • Node > Nodes
  • Material > Materials

Pretty sure Text Editor tag could be included in Development tag.


Maybe new tags?

  • Management - for file/scene organizers can also replace Scene and Object tag.

In conclusion I again ask not to get caught in specifics. Examples above are thoughts that popped into my head immediately upon scanning excessively long list of available tags.

4 Likes

That would be for any addons that interface between Blender and Game Engines, like UE, Unity, Godot, etc.

As for all the rest, I guess it really comes down to ‘tags’ vs search terms and how you can or want to find/categorize stuff.

I tend to somewhat agree that something like ‘Add Curve’ is maybe a little too specific. Just Curves for anything that adds,edits, changes, works with curves in general would be enough.

While ‘Add Mesh’ is much the same, maybe along with Mesh and Object they could just all be Mesh or Object. I’d still say that Modeling would be its own, since it could be an addon that just adds new Mesh Objects or allows one to actually model by providing new tools to edit/move/change vertices/edges/faces and the like.

1 Like

And what about add-on that interfaces with 3D Coat, Zbrush or Substace? New tag for each software type that add-on can interface with?

Tags should generalize, not specialize.

2 Likes

That would be Paint/Texturing, so just like Game Engines that is generalized.

Keep in mind that more then one tag can apply. Consider say the Expy Kit addon, that could have say Rigging, Pipeline and Game Engine tags.
It allows one to import and map rigging/animation data from say Mixamo to Rigify, so that’s a rigging type tool.
It’s a pipeline tool as it helps to automate the production pipeline between software/systems.
And its a Game Engine tool, as it can import/export bone/rigging setups between Unreal Engine.

What generalized tag would you put Expy Kit under?

That would not describe add-on by its features. Its feature is to bridge to another software, not paint/texture.

I’m not familiar with Expy Kit, brief description on gumroad page suggests that it’s exports and uploads rigged models and creates/modifies rigs, so I guess Import-Export and Rigging.

I feel Pipeline is an odd one, technically every exporter falls into this category, maybe use this tag for all sort of connector add-ons? Or replace it with Bidge/Connector tag?

In that case it would just be Import-Export, but now that’s getting really generic. For example, the Painter addon (direct from Adobe, so never going to be on the Platform, but lets go with what it does for now), can also allow you to use and adjust substance texture files within Blender. So now we are texturing, sort of.

Connector really sounds more just like a live import/export, where you could have something like the Kitsu addon, that provides an actual Interface and features between Blender and Kitsu.

While what may or may not constitute a Pipeline addon could be debated, the term Pipeline as a part of the overall production system is well established term. So while Blender does like to do things ‘the Blender way’ at times, I’m not sure trying to create all new terms/tags is the best idea.

1 Like

Each of those are useful. 3D view represents objects that deal with visibility, like Synchronize Workspaces, Wireframe Color Tools, etc.

Paint is obviously useful? As well as bake. I don’t understand why you mentioned those.

Pipeline & system I think can be united as one. It can contain add-ons that are meant for production environments like Blender Kitsu, or shot managers.

Object is also useful, because not all add-ons that deal with object-level are modeling ones, for example ones dealing with object origin, about grouping objects, scatter, etc.

Rest I agree can go away.

I did not call them useless, I questioned their scope.

But you focus on specifics, these are just a few examples to show that currently available tags are not thought through, instead they were put out as is from previous Blender versions.

1 Like

I am not convinced that the more specific tags won’t be needed eventually anyway. Theoretically, as the repository gets larger it will be harder to navigate with general tags, especially if you have a rough idea of what you are looking for but are struggling to come up with useful search terms (a problem I have regularly with other things). Personally I’d find categories and subcategories easier for that reason, but since we are going with tags I’d say keep what you have for now.

Does the site have any statistics on what tags people select? If so you can always tweak things based on actual usage down the line.

Operations involving network access were written to be non-blocking from the beginning. So making them blocking was a choice - to avoid having to deal with additional issues users managed to find, although I never liked it being blocking.

Committed support for non-blocking operations.

2 Likes