[Bf-committers] Blender Scripts Add-Ons Current Dev Model.

Brendon Murphy meta.androcto1 at gmail.com
Fri Mar 19 14:57:35 CET 2010


hi,
I'm Brendon Murphy,
Meta-Androcto
Scorpion on the Blender Wiki.

This is who I am & what I'm doing. > with lot's of help. :)
Sorry it's so long.

*My Goals:*
To provide the Blender Foundation with an advanced library of Trusted
scripts & plugins.
To promote the growth of python scripts in Blender.
To provide a non destructive way to add scripts to Blender.
To give the user options, in how they extend Blender & the tools they use.
To expose the Python API with practical working examples. (with the
knowledge it encourages development.)

You may have all seen the new scripts in the Add-Ons folder.
*how did they get here?*
Several years ago now, I wrote a simple list of scripts. From there after
advice from IanWill, 4? 5? years ago I cataloged 100's of scripts in the
wiki.
I often maintained them in the absence of the original Author. Many of whom
have returned & always say thanks, for looking after their scripts.
>From there releasing script packs full of gpl scripts, to starting a tracker
for external scripts to svn so everyone could get them.
To now, Blender 2.5

*The Current Process* for add-ons scripts is this:

You contact, or in many cases are contacted by myself/others & invited to
submit your python script.
>From there you are encouraged to develop your script so it's compatible with
Blender.

*1/* You must be a member here:
https://projects.blender.org/projects/bf-extensions/
Check the growing members list. Here you can develop your script, with
support from other script writers on irc & the forums.

*2/* You must have a wiki page for your script or I/others write them for
you.
http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts#Add-Ons_Menu_Scripts
Some documentation is mandatory as is a link Only to the wiki page, active
in the script.
Links to authors sites are ok in the script bpy docs, but are not visible to
users.
It's safer to maintain external links on the wiki, than to have them in
scripts.

*3/* The script must be non destructive to blender's internal
scripts/structure.
By this I mean, the scripts can call internal functions, but cannot "patch"
internal files.
This is beyond the current scope of the project.
Patches go to the patch tracker & follow the protocols there.
*
The System* for the bf-extensions tracker is this:
Select only open Trackers/Scripts. under the header of the page.

*Upload:* Start developing your script here.
This is where scripts can be worked on, feedback & suggestions to improve
content, others can work with you, getting the script into shape.

*Contrib:* Scripts here are stable & well maintained. They will be available
here:  https://svn.blender.org/svnroot/bf-extensions/contrib/py/scripts/
>From here people can download to test, put in graphicall builds & mirror
updates with the Tracker.
This is based on the test structure we did for Blender 2.49.
Note; there's not much in contrib atm, this will change very soon.

*Release:* This is where the scripts, that have been checked & double
checked make it to Trunk & into the Add-Ons folder.
There are several mandatory requirements here.
Usually the poor script author has had to jump through hoops to get to this
point.
The scripts currently in the add-ons menu, are constantly updated to the
current api. every time something breaks in the script, someone fixes it or
lets the author know.
Currently, this is done every few days!

http://wiki.blender.org/index.php/Dev:Py/Sharing explains the process also.
(better i'm told.)

If you use irc, drop in to #blenderpython, all the current script release
contributors drop in & have been helping this project mature.

*Who's doing this?*
The Current Team:
Meta-Androcto, Mindrones, JesterKing, Ideasman42, Bart Crouch, Pontiac,
Tuga3d & many more.
I help manage the project & i'm very happy now to have a small team, to help
me & equally make decisions.
Then We answer to Ideasman & Senior dev's.
Everything is monitored, checked, then double checked.
All the 2.5 scripts are considered, Open, which means,
Any of the core devs can go in & edit a script to improve it.
Of course we talk & ask permissions, but if someone is away, there's people
to step in & help.
The team changes as devs come in & out  but the core people have been around
for a while.

It has taken myself, Mindrones, Jesterking & others 2 to 3 years to get
External Scripts to this stage of Stable development for Blender.
It is a huge project & we all donate many hours to make this possible.
Also I have the trust of many Python Script developers, whom I keep in
contact with, encourage development & often maintain scripts for.
Usually I don't even add my name to scripts, even if i have maintained them
for several years.

*Security:*
I am over zealous in my attitude towards sceurity.
I don't like people writing or publicizing any function that I feel could
possibly be turned around to mischief.
I police this ideal of high security & minimize risks before they get off
the ground.
Even if others consider it wrong, usually i am right.
It's near impossible & takes several people to assure me something is ok
with regard to security.
Every thing is checked & made compatible with Blender or it does not get in.
This includes Licensing & the Wiki Only link in the Add-Ons folder.
Authors may put links to their site or repo within the script """Author
docs" but no active links in the interface.
It's easier to fix dodgy links on the wiki & much less risk than having
external links in scripts.
DingTo has helped here, writing in the fix for Wiki link in the Add-Ons
script drop down.
*
The Benefits:*
A comprehensive list of available scripts & soon plugins, available for safe
download via Blender Web sites.
All scripts are hosted on B.org websites. Projects or Extensions svn.
This is very encouraging to Script Writers, many of whom go on to become
committers for Blender.
This is a great & successful by-product of the scripts project.
If Ideasman or others get to move forward a contributor to better things. My
job's done.
The current scripts in the Add-ons folder are there as both proof of concept
& to expose the working api.
This helps in bug fixing, both Blender & Scripts.
It's a great system & i am always seeking out new writers, scripts &
helpers.

*Sandboxing?*
I guess I must say something here.
In 500 scripts i have seen,
maybe 5 had dubious content.
3 times by accident, due to the loss of original site.
2 times misguided content, that could have been misused but was not. I
discarded it anyway & did not promote that code.
These issues have been addressed.
Blender is no different from any other program with regards to malicious
code.
from .jpegs to action script to opening attachments in emails, there's
always a risk.

With the Add-Ons system:
You get Trusted, Maintained scripts from a known location.

If you download anything from an untrusted or unknown source:
You may be running a risk. You Know that & it's Your choice.

*Security Summary:*
During all the years I have been collecting & distributing scripts,
There's few scripts i have not located or been made aware of.
If there's any bad code out there, there's a very high chance it will be
reported very quickly.

*To Finish:*
The Blender Extensions project has been preparing for Blender 2.5 for a long
time.
We are prepared for a very large intake of scripts for Blender 2.6.
Already the amount of scripts for 2.5 grows, maintaining & managing these
scripts from the start is important.
Even though the api is not complete, people are writing some very good
scripts.
This of course was not entirely desired, but it was going to happen, so best
to help try & make it as practical as possible.
All the current contributors, are very involved in the project, special
thanks goes to them.
especially mindrones. thanks.

Sorry for the long mail.
In part, this mail is so some of you can get to know me & the Project a
little better.
*If you have feedback, please quote only the lines you refer to.*
Help, is always welcome.

Brendon.


More information about the Bf-committers mailing list