Is it common for point versions to break scripts?

Hello!

I am a blender noob, coming from a long career as a Maya TD who wears many hats. I really like how far blender has come and am generally enjoying learning about it.

My question on this thread is: do you find that things break in your scripts between versions?

I ask because I’ve already seen breakage in my scripts caused by version changes, both between 2.80 - 2.82 (somewhere) and 2.82.7-2.83.0.

I haven’t had time to track down what changed yet, but these are two different scripts, not very large, 2-300 lines, dealing with separate applications.

That this happened twice in quick succession made me wonder if it’s a common occurrence.

I do plan to track these down and post them separately, but I wonder if this is the norm I should expect, working with blender. With Maya, it’s pretty rare for things to break between versions, and I have decade old procedures which still work.

Cheers,
Jackie

1 Like

It depends a lot on the kinds of actions the script does.
The answers people will give to this question depend a lot on the kinds of scripts they write.

  • If your script is using operators (bpy.ops.*) and that operator is updated, then the script could break.

    In general avoid using bpy.ops where possible and edit the data directly, as it’s less likely to change between releases.

  • If your script uses an area of Blender which is being heavily updated, the changes may mean the script needs updating too.

  • Blender’s Python API closely maps to the internal data, so larger updates sometimes change the Python API too.

  • We’re aware of this issue and avoid unnecessary breakages between point releases where possible.

If you want a guarantee things wont break, best stick with LTS versions, otherwise some testing is needed between point releases.

1 Like

All of the Python API changes are documented in the release notes. I haven’t noticed any big changes, recently, but 2.81 had a lot of miscellaneous changes which were essentially the result of bugs being fixed from 2.80.