Read this first if you want to write code for FreeCAD
Posted: Thu May 24, 2012 2:53 am
If you want to write code for FreeCAD, you are very welcome, your work will be greatly appreciated. But you should also be aware of the following points:
- FreeCAD has a very small team of developers. We have not as much time as we would like to dedicate to FreeCAD, and things are not planned ahead, they are done when some developer sees it fit and when he finds time to do it. So we don't maintain a list of tasks to be done. It is up to you to find something you would like to do, for example a defect you would like to correct, or a small feature you think is missing.
- The issue tracker at http://www.freecadweb.org/tracker also contains some items that are not yet assigned to anybody, that you might be interested to work on. In this case, add a comment to the issue saying you would like to work on it.
- Before you start to code for FreeCAD, you must have a good knowledge of the application itself. This might seem obvious, but the OpenCascade kernel of FreeCAD is very complex, and you won't go very far if you don't know how it works, what it can do and what are its limitations.
- Almost everything can be done either in python or C++, depending on your preference. The internals work almost the same in both languages. You are strongly encouraged to read through the python documentation on the FreeCAD wiki, even if you plan to work in C++, since it will explain you the biggest part of the concepts used in the application.
- If you are going to work in C++, make sure you are able compile FreeCAD successfully. If you will work in python, this is not necessary.
- Present yourself to other developers. FreeCAD is before anything a social project, we discuss almost everything on this forum before implementing it, and it's always best to discuss your ideas and tell people what you are planning to do before actually doing it. Many users of this forum are long-time members of the FreeCAD community, have a deep knowledge of the application and can give you a lot of feedback. We also have an IRC channel, but this forum is the one and only place where you can meet all the developers and knowledgeable users.
- The best way to submit your work is to fork the official FreeCAD github repo, do your changes in a new branch, and create a pull request. More info about this process is available on the FreeCAD wiki. Alternatively, you can also post a patch on the FreeCAD [urlhttp://www.freecadweb.org/tracker]issues tracker[/url]. If nobody is assigned to the issue you are fixing, make sure you notify people about your fix (by posting on the forum, or citing a username with an @ on the tracker).