New Version Available: update now?
from .addon_updater import Updater as updater
updater.user = "cgcookie"
updater.repo = "blender-addon-updater"
updater.current_version = bl_info["version"]
Thanks to the excellent work of Patrick W. Crawford I’m happy to announce the Blender Add-on Updater module is ready for integration into your add-ons!
blender-addon-updater - A module for enabling users to check for add-on updates and install new versions directly from…github.com
Over the years there have been a lot of proposals and attempts at creating add-on repositories for Blender. Some repositories included abilities to update add-ons, most did not. Most of these repositories also focused on Materials rather than add-ons, limiting the reach of developers that were trying to add new functionality.
At the end of the day the core issue has always been installing and updating add-ons is too damn hard.
Another problem with these repositories, including the official add-ons catalogue, is that they always added one more step to a developers release regimen. With a centralized add-on repository you have to update two (or more) sources each time you release a new version of your add-on. This is not a lot of work, but it’s enough of a barrier to result in many repositories quickly becoming out of sync with the respective Git repos for the add-ons. My own add-ons are no exception, I’m horrible at keeping them updated across Github and the official repo.
Additionally, these repositories don’t tend to blend nicely with any commercial ventures (such as paid add-ons).
Ultimately the user has been left with various add-ons from many different sources that become ever more difficult to keep updated. For many users this results in ignoring any add-on that doens’t ship with Blender by default.
And so we set out to try and begin solving this problem. We are not building an add-on repository, but we have taken a first step by creating a solution for letting users update to the latest version (or revert to a prior version) right within Blender.
The first step
I hope we will eventually see a true, centralized repository of add-ons, sanctioned and/or maintained by the Blender Foundation, which artists can connect to and download/update add-ons at anytime.
Until that happens, one of the first steps is enabling the updating of add-ons in Blender directly from the developers source-code repository. Which is what we’re introducing today.
We have created an add-on updater that enables users to be notified of new releases from within Blender, and to easily install those new versions, again without ever leaving Blender. The user can also revert to any prior release.
An artist should never be forced out of their tool simply to get updates.
How it works
What Patrick W. Crawford has built is a Python module that you, the developer, can integrate into your existing add-on. This integration handles the connection to Github, the removal and installation of add-on python files, and provides UI and utility functions for choosing how and where a user should be notified.
Once integrated all you have to do to publish a new add-on version is tag the release on Github. The user will then get a notification next time they start Blender (or once the timer has finished for Next Check), allowing them to download and install with one click. Slick!
If you’re a developer and you want to integrate the updater into your add-on then you should check out Patrick’s tutorial to get started:
As an active addon developer, it's important to be able to reach your users to notify them when critical bug fixes or…medium.com
Additionally….It’s free and available to all!
Have at it! Bug reports and Pull Requests welcome.
Inevitably this question will be raised: will you be integrating this into Blender officially?
The answer is…I hope so! Or at least something like it. From the get-go we’ve been tackling this as an independent project, entirely on our own, for the sake of creating a proof of concept.
Our hope right now is simply that fellow developers use it, improve it, and most of all that it eases the process of updating add-ons for users.