Synchronize your installed add-ons with a single click or by pressing OSKey+U (on Windows you must set it up in Blender Preferences - Keymap - 3DView (Global)).
DevAddonsSync helps you with the tedious task of testing every change you make to your extensions' source code, either by editing the installed add-ons directly, or with the source code in any other location (local or network).
Select the add-on you want to be "Default" from the list, edit the source code (with Text Editor or any other program) and press OSKey+U in View3D (on Windows you must set it up in Blender Preferences - Keymap - 3DView (Global)). The add-on is automatically installed, and a ZIP file is created ready for sharing (if "Create ZIP file" is enabled).
For Blender Add-ons developers, the task to test each code change is kind of tedious. After saving modified files, the folder must be compressed to a ZIP file, and then reinstalled in Blender. While now (Blender 4.2) we can drag and drop the zip into Blender directly, for a developer it is a waste of time. Developers tend to create scripts to automate that process, but DevAddonsSync will speed up your workflow like never before.
This extension requests the following permission:
Import/Export your recent add-ons list as JSON from/to disk
Hey everyone,
Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.
Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.
Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.
Thanks for understanding, and feel free to reach out if you have any questions.
I hate to tell you this, but this functionality is already in Blender.
You can add a local repository under Preferences->Get Extensions->Repositories->Add Local Repository. Then just browse the folder that contains your add-on, and your code is live in Blender. Every time you make a code change you can just run the Reload Scripts operator. I even have it bound to Ctrl+Shift+R, so I can make a code change in any of my add-ons, tab into Blender, and hit that key combo to see my changes. No add-ons required.
As for zipping and verifying extensions, it's the same situation. There are official built-in command line arguments to package extensions.
So, I would suggest removing any functionality that seems redundant knowing these pieces of information. To be honest, having a UI button so I don't have to use the command line stuff, would be pretty neat, actually.
Yeah, and I was quite confused tbh.
I see a list of my installed add-ons in the 3D View's sidebar. If I select one, I see 4 buttons next to it: Checkbox, Sync, Edit, Open.
I assumed the Checkbox toggles whether the add-on is enabled or not. But that's not the case. I mouse hover to get more info. No tooltip, but the Python command tells me it's doing action='DEFAULT'. Hmmm. Yep, no idea what that means. Genuinely, gun to my head, no clue what this button does.
Sync, also unclear, but I assume this is gonna reload the add-on. But when I run it on a disabled add-on, it also enables it. So, syncing means enabling an add-on? Also, in the sync process, it seems to disable the add-on for a moment, which is extremely uncool because now all my add-on preferences have been reset to default. Also, in some cases I have the same add-on installed twice; Once through the Extensions Platform, and once in a local repository. They could be different versions of the same extension. (ie. the one in my Local Repository is the one I'm working on) But it only shows up once in this list. My only way to tell which one it's showing me is by opening its folder. But then when I press Sync, it actually enables the other one, which is coming from a different folder. So, it's confused by having two copies of the same add-on.
If I Sync->Create zip file->Set custom output file (wrong capitalization btw), and browse a folder, it doesn't work for me, because I have the user preference Interface->Editors->Temporary Editors->File Browser=Maximized Area. This is technically a Blender bug, but it breaks this functionality so I thought I'd let you know.
Edit does nothing afaict. I don't know what to expect it to do. Open __init__.py
? But why would that be useful for my add-ons, which aren't single file add-ons? Either way, it does nothing.
Open could also mean open __init__.py
, but it actually opens the folder the add-on is located in. This I think is genuinely useful, and I wish it was in Blender.
So, just getting this far into the interface it left me confused and frustrated, and I had no interest in digging deeper. I'm really sorry. I'm not questioning the usefulness of your hard work to be a dick. I just don't think this is the one, mate.
Sorry by the tooltips, you are right, I missed them. But you have in the description (in this page) what they do.
"I assumed the Checkbox toggles whether the add-on is enabled or not.." Checkbox is meant to make an add-on the default one when you use CTRL+ATL+U shortcut. When pressed, a prompt is showed up with where you can decide to create a Zip file (and its path), and the default add-on will be synchronized (reinstalled).
"Sync, also unclear, but I assume this is gonna reload the add-on..." Synchronize add-on: Reinstall and enable it. Because, supposedly, you just edit the code of that add-on, and you want to test that changes.
"They could be different versions of the same extension. (ie. the one in my Local Repository is the one I'm working on)" I did not think on that... My bad! But External add-ons panel is meant to do something with that. When you expand that panel, you can choose a folder (that contains the add-on source code you're working on). And it adds it to the list just below, which is exactly the same as the Installed add-ons (same functionality). This way you have 2 different lists, and it is not necessary to have duplicated add-ons.
"it doesn't work for me, because I have the user preference Interface->Editors->Temporary Editors->File Browser=Maximized Area..." I never used that Blender option, I will check it. Thank you.
"Edit does nothing afaict..." It opens init.py file in Text Editor. I'm working on that right now, to show all editable files when that button is pressed...
"Open could also mean open init.py" It opens the folder of that add-on. Which is very useful as you said...
@OlyDJ not sure which features exactly you are referring to.
Your extension was zipping up the extension, then running the install action.
Personally I would not want that functionality, but if you do want to package and install an extension from elsewhere, then it makes sense to use Blender's build command to create the zip-file compared to simply zipping up the directory (which could include unrelated files .git
history etc).
Otherwise, I'm not sure what features your referring to.
Sign in to comment.
Ready for review