For All Developers
You've been added as bf-blender project member with svn write access, welcome! You can use this access now to work on Blender. You're also welcome to work on other features or fixes as discussed with the team online. Please always verify before committing with the module owners in wiki, or with one of the bf-blender admins: Martin Poirier, Campbell Barton, Brecht van Lommel, Matt Ebb or with Ton Roosendaal. You can also consult the bf-committers email list or talk with us in IRC if in doubt.
Here's the standard checklist & guidelines all new devs need to read:
- The main rules for committing are:
- Always ensure that what you commit is either on your "own code", or you've verified the patch with the owner of the module. If you want to change things in other parts of the code, check with one of the developers who owns/maintains that.
- Always do a 'svn update' and 'svn status' before committing. Check carefully if the files marked "Modified" are actually what you want to commit. Do a 'svn diff' on files if in doubt.
- Always contribute code in the style as used in the code you've worked on. We just have a long history of software development, and can't restyle all code to a unified standard. Keeping style per file consistent at least keeps things readable.
Make sure you use real TABs (not spaces), and don't configure your editor to cleanup whitespace.
For new code, check on the style guidelines on blender.org.
- Blender is strictly cross-platform, and we only accept code that compiles for all current platforms correctly. for OpenGL (nothing newer than 1.4, or correctly wrapped), Python (3.3), gcc (4.2 should work), msvc (2008 should work), etc. If in doubt, send a patch to the bf-committers list.
- If you add new C files, check if those get included in SConstruct and CMakeLists.txt, if you think your commit may cause errors on others configurations, note this in your commit log, or better: notify the bf-committers mailing list or go to the irc.freenode.net #blendercoders channel.
- Subscribe to both mailing lists below Before committing:
- Blender has stages in development cycles called BCon levels, even if your patch is acceptable we may be about to release so check on the current BCon stage
- Blender Foundation -
- When making very large changes to blenders source, be available some time after (1-3 hrs), in case this breaks blender in some way.
- Don't make large changes before release
- Developers may reply to your commit logs, even if you don't read every message on the bf-committers mailing list, at least be sure to reply comments on your commit.
- When committing contributions from others, include their name in the log and the patch number from the tracker where applicable.
There's code style guidelines which should be followed when working on source code.
Some areas aren't ported to this code guidelines and when working on them, current style should be followed. Do not mix actual feature implementation / bugfix with style cleanup.
For python we follow pep8 where possible.
Commit (Best Practice)
- Don't combine code cleanup/refactoring commits with functional changes, since it makes it harder to investigate when a commit causes new bugs.
- Don't mix in your own changes when syncing branch merges, mistake sometimes made when merging trunk back into a branch.
- Store test files in: https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/
Commit (Subversion Usage)
- Be sure to use svn cp or svn mv (copy / move) when moving files so history isn't lost.
- Don't copy the bug report name verbatim if it's not descriptive, explain what exactly the problem was.
- Explain what you fixed on a user level, not just what was wrong in the code. Do explain those things too, but please do both then.
- Start the commit log with "Fix #12345: ", so it's immediately clear that it's a bugfix.
- Explain what the feature does on a user level, not just the code changes.
- Keep user level explanation and code changes explanation separate.
- Explain features in terms of their names in the user interface, not internal code terminology.
- If it's not obvious, explain what the feature is useful for or when it should be used.
- Make it clear when there are no functional changes, I like to start the commit with "Code cleanup: " then.