Being a responsible developer means not committing code

A common question I’ve seen is “why isn’t dyntopo in trunk”? Sometimes it’s phrased more as a statement: “dyntopo is no more unstable than some other features in trunk, so it’s time to commit it!”

I want to reassure folks right now: there’s no secret cabal keeping dyntopo out of trunk. It hasn’t been code reviewed and found wanting. Rather, I don’t want it in trunk yet. As the owner of the code, it will be my responsibility to maintain the code more or less forever. I need to handle any bugs the code creates. I need to make sure the code is comprehensible for other developers. And in order for sculpt development to continue, I need to ensure that new features don’t make the code harder to develop further.

There is code I wrote years ago for Blender that still causes me (and other developers) headaches. I try to reduce the chances of that happening again by doing very careful review of my own work, writing documentation, getting user feedback, getting the code reviewed by another dev like Sergey or Brecht, and only then committing it.

I want to be clear that I don’t mind people asking the question “why is dyntopo not in trunk?”. Most people fully understand that I have a job and limited time for doing Blender work, and are asking an honest question about the process. Hopefully this post clears up any confusion.

12 thoughts on “Being a responsible developer means not committing code”

  1. These are wise words. Even if something works, it has to fit the program architecture, the coding style, etc, so further work can improve upon this feature, without turning blender into some sort of spaghetti code.

  2. As proof of what you have written:

    1) Start with the default cube scene, set “Cycles Render”, select the cube and go in “Sculpt Mode”, change the outliner to “3D view” with “Rendered” Viewport Shandig, enable, choose the “Snake Hook” brush, “Enable Dynamic”, “Collapse Short Edges” and save the file.
    2) Extrude two tentacles with the Snake Hook and save again.
    3) Now go to the “Rendered” Viewport, change the Shandig to “Solid”, change it back to “Rendered” and then press Ctrl+Z (Undo). The mesh literally implodes.

    Window 7 x64.

  3. Take your time man we are waiting by the way i sculpt a head starting from a cube in less than 30 mins wow dyntopo is just great.

Leave a Reply

Your email address will not be published. Required fields are marked *