From BlenderWiki

Jump to: navigation, search

Addons

Blender builds and releases include python script addons that extend its functionality. This page has information for developers who want to have their addon bundled with Blender.

Blender3D FreeTip.gif
Mandatory Prerequisite to get an Addon accepted
You must be aware that your Addon will be integrated into the official Blender distribution. Therefor you must ensure there is continuous support for keeping your Addon working and fixing bugs as they appear. So you must commit yourself (or find a maintainer who does it for you) to do the maintenance (see General Guidelines for Addon Developers below)


Contact

  • bf-python mailing list for all python scripting and addon related questions
  • #blenderpython IRC channel on irc.freenode.net

Repositories

Addons are hosted in two Git repositories, that are automatically checked out as a submodule of the main Blender repository.

They can be found in these two directories of the main Blender repository:

release/scripts/addons
release/scripts/addons_contrib

Submitting an Addon

The reviewer will decide if the addon can be included in official release, included in the Contrib repository or can't be included. If the addon is in the Contrib repository and matures, you can later mail bf-python and ask for the Addon to be moved to the repository for official releases.

If the addon is on track to be included in official releases, you may be asked to submit it to our Code Review tool for a closer review.

External "Commercial" Addons

Blender Foundation will accept add-ons from commercial vendors or services (like 3d printing, web publishing, renderfarms) under the following conditions:

  1. Compliancy
    The add-on should comply to the same quality/design rules as we do for regular add-ons. That includes license compliancy, but also to not include banners, logos or advertisement.
  2. Clear user benefit
    The add-on should provide functionality to 3D artists that's useful to have inside Blender. It can't be for promotional usage of non-functional features (like linking to websites only, for tutorials, etc).
  3. The add-on will by default not be enabled
  4. Developed and maintained well
    The add-on is being created and maintained by the service provider (or a contracter managed by them).
  5. Development Fund support
    The service provider signs up for Diamond Sponsor level (250 euro per month). Cancelling a payment then also means we can drop the add-on. Any service that's not making this profits per month with an add-on, can be considered to be not interested to have such an add-on either.

General Guidelines for Addon Developers

If you attempt to submit your Addon either to the contrib section or to the release section of the Addon Repository, then your addon will undergo a review process. Within this process changes may be requested to keep inline with good coding practices. Those changes may be provided by you or by the reviewer. This will be clarified with the reviewer on a case by case basis.

Once your addon is accepted and hosted in the Blender release section or the contrib section, you become responsible for maintaining your Addon and you get commit permissions to the Addon repository...

Duties of an Addon maintainer

As soon as you got the commit permissions you...

Must Do
  • Maintain and further improve your addon by yourself.
  • Ensure your Addon keeps working with new Blender Releases and API changes. Therefor check regularly & keep up to date in between Blender Official release to ensure your addon is working in the next release of Blender.
  • Handle bug reports from users.
  • When you add new features then you also should add brief documentation and explanations to the Blender release notes.
  • Check regularly for patches to your addon from other users and eventually commit updates they make using the current git version of the addon as the base.
Blender3D FreeTip.gif
Avoid unmaintained Addons
Addons that are not supported (or no longer supported) by their Authors may be removed from Blender if they are broken & we can not find a maintainer.


Should Do
  • Join the bf-extensions-cvs mailing list to see what's going on, and optionally the bf-python mailing list.
  • Write good commit messages that explain which addon and what exactly you change (good example).
  • It's acceptable to test other developers’ addons, and commit small fixes to their code (like a typo or obvious bug fixes).
  • Optional: make your script pep8 compliant and follow best practice.
Never Do
  • Commit code that is not GPL2+ or compatible with it.
  • Commit code you are not the author of (unless you have the author’s authorization).
  • Commit big changes to other addons (unless you get the author’s permission).
  • Commit binary files like .exe, .pyc, .pyd, .dll, etc.
  • Add commit logs in your code (Git logs should be enough)

Working with Git

The same advice from our Git Usage page applies here.

If you have a full Blender checkout, you can go into the release/scripts/addons or release/scripts/addons_contrib directory, and it's as if you are working in the Blender Addons or Blender Addons Contrib repositories directly. You can do all the typical git commands there for adding files, committing changes, and fetching and rebasing updates.

Optionally you can choose to clone the individual repositories and work there:

git clone git://git.blender.org/blender-addons.git
git clone git://git.blender.org/blender-addons-contrib.git

Bug Reports

Bugs for all addons are reported to the Addons project on developer.blender.org. If a bug is filed for your addon, the bug will be assigned to you as the addon maintainer.

You can also help out with bugs that are marked as Needs Triage in the tracker, to assign them to the right maintainer, confirm the problem or even fix the bug yourself.